diff -Nru terminology-1.2.0/ChangeLog terminology-1.2.1/ChangeLog --- terminology-1.2.0/ChangeLog 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/ChangeLog 2018-05-14 20:20:41.000000000 +0000 @@ -1,3 +1,11 @@ +2018-05-14 + + * Release v1.2.1 + * Fix focus issues when input was not registering + * User-defined tab titles stay even when terminal wants change it + * Themes no longer have glow when unfocused + + 2018-04-15 * Release v1.2.0 @@ -17,6 +25,7 @@ * Escape code fixes * More focus fixes + 2017-09-02 * Release v1.1.1 diff -Nru terminology-1.2.0/data/themes/default.edc terminology-1.2.1/data/themes/default.edc --- terminology-1.2.0/data/themes/default.edc 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/data/themes/default.edc 2018-05-14 20:20:41.000000000 +0000 @@ -1245,10 +1245,6 @@ target: "shine_focused"; target: "shine_unfocused"; sequence { - action: STATE_SET "focused2" 0.0; - target: "glow"; - } - sequence { action: STATE_SET "custom" 0.0; target: "shine_unfocused"; } diff -Nru terminology-1.2.0/debian/changelog terminology-1.2.1/debian/changelog --- terminology-1.2.0/debian/changelog 2018-04-15 18:57:24.000000000 +0000 +++ terminology-1.2.1/debian/changelog 2018-05-18 11:46:30.000000000 +0000 @@ -1,3 +1,9 @@ +terminology (1.2.1-0precise0) precise; urgency=low + + * New upstream release + + -- Arthur (Niko2040) Nikitenko Fri, 18 May 2018 14:46:30 +0300 + terminology (1.2.0-0precise0) precise; urgency=low * New upstream release diff -Nru terminology-1.2.0/man/terminology.1 terminology-1.2.1/man/terminology.1 --- terminology-1.2.0/man/terminology.1 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/man/terminology.1 2018-05-14 20:20:41.000000000 +0000 @@ -1,5 +1,5 @@ .\" Manpage for Terminology -.TH man 1 "11 Mar 2018" "1.2.0" "Terminology man page" +.TH man 1 "14 May 2018" "1.2.1" "Terminology man page" .SH NAME Terminology \- Terminal Emulator written with EFL (Enlightenment Foundation Libraries). .SH SYNOPSIS diff -Nru terminology-1.2.0/meson.build terminology-1.2.1/meson.build --- terminology-1.2.0/meson.build 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/meson.build 2018-05-14 20:20:41.000000000 +0000 @@ -1,5 +1,5 @@ project('terminology', 'c', - version: '1.2.0', + version: '1.2.1', default_options: ['c_std=gnu99'], license: 'BSD') diff -Nru terminology-1.2.0/NEWS terminology-1.2.1/NEWS --- terminology-1.2.0/NEWS 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/NEWS 2018-05-14 20:20:41.000000000 +0000 @@ -1,7 +1,16 @@ ================= -Terminology 1.2.0 +Terminology 1.2.1 ================= +Changes since 1.2.0: +-------------------- + +Fixes: + * Fix focus issues when input was not registering + * User-defined tab titles stay even when terminal wants change it + * Themes no longer have glow when unfocused + + Changes since 1.1.1: -------------------- diff -Nru terminology-1.2.0/README.md terminology-1.2.1/README.md --- terminology-1.2.0/README.md 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/README.md 2018-05-14 20:20:41.000000000 +0000 @@ -1,4 +1,4 @@ -Terminology 1.2.0 +Terminology 1.2.1 ================= This is an EFL terminal emulator with some extra bells and whistles. diff -Nru terminology-1.2.0/src/bin/main.c terminology-1.2.1/src/bin/main.c --- terminology-1.2.0/src/bin/main.c 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/src/bin/main.c 2018-05-14 20:20:41.000000000 +0000 @@ -550,6 +550,8 @@ eina_log_print_cb_set(_log_to_syslog, NULL); #endif + elm_config_item_select_on_focus_disabled_set(EINA_TRUE); + elm_language_set(""); elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED); elm_app_compile_bin_dir_set(PACKAGE_BIN_DIR); diff -Nru terminology-1.2.0/src/bin/termio.c terminology-1.2.1/src/bin/termio.c --- terminology-1.2.0/src/bin/termio.c 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/src/bin/termio.c 2018-05-14 20:20:41.000000000 +0000 @@ -369,25 +369,38 @@ { Termio *sd = evas_object_smart_data_get(obj); EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); + if (sd->pty->prop.user_title) + return sd->pty->prop.user_title; return sd->pty->prop.title; } +const char * +termio_user_title_get(const Evas_Object *obj) +{ + Termio *sd = evas_object_smart_data_get(obj); + EINA_SAFETY_ON_NULL_RETURN_VAL(sd, NULL); + return sd->pty->prop.user_title; +} + void -termio_title_set(Evas_Object *obj, const char *title) +termio_user_title_set(Evas_Object *obj, const char *title) { Termio *sd = evas_object_smart_data_get(obj); size_t len = 0; EINA_SAFETY_ON_NULL_RETURN(sd); - if (sd->pty->prop.title) - eina_stringshare_del(sd->pty->prop.title); + if (sd->pty->prop.user_title) + { + eina_stringshare_del(sd->pty->prop.user_title); + sd->pty->prop.user_title = NULL; + } if (title) - len = strlen(title); - if (len) { - sd->pty->prop.title = eina_stringshare_add_length(title, len); + len = strlen(title); } + if (len) + sd->pty->prop.user_title = eina_stringshare_add_length(title, len); if (sd->pty->cb.set_title.func) sd->pty->cb.set_title.func(sd->pty->cb.set_title.data); } diff -Nru terminology-1.2.0/src/bin/termio.h terminology-1.2.1/src/bin/termio.h --- terminology-1.2.0/src/bin/termio.h 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/src/bin/termio.h 2018-05-14 20:20:41.000000000 +0000 @@ -39,7 +39,8 @@ Evas_Object *termio_textgrid_get(const Evas_Object *obj); Evas_Object *termio_win_get(const Evas_Object *obj); const char *termio_title_get(const Evas_Object *obj); -void termio_title_set(Evas_Object *obj, const char *title); +const char *termio_user_title_get(const Evas_Object *obj); +void termio_user_title_set(Evas_Object *obj, const char *title); const char *termio_icon_name_get(const Evas_Object *obj); void termio_media_mute_set(Evas_Object *obj, Eina_Bool mute); void termio_media_visualize_set(Evas_Object *obj, Eina_Bool visualize); diff -Nru terminology-1.2.0/src/bin/termpty.c terminology-1.2.1/src/bin/termpty.c --- terminology-1.2.0/src/bin/termpty.c 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/src/bin/termpty.c 2018-05-14 20:20:41.000000000 +0000 @@ -800,6 +800,7 @@ if (ty->hand_exe_exit) ecore_event_handler_del(ty->hand_exe_exit); if (ty->hand_fd) ecore_main_fd_handler_del(ty->hand_fd); if (ty->prop.title) eina_stringshare_del(ty->prop.title); + if (ty->prop.user_title) eina_stringshare_del(ty->prop.user_title); if (ty->prop.icon) eina_stringshare_del(ty->prop.icon); if (ty->back) { diff -Nru terminology-1.2.0/src/bin/termpty.h terminology-1.2.1/src/bin/termpty.h --- terminology-1.2.0/src/bin/termpty.h 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/src/bin/termpty.h 2018-05-14 20:20:41.000000000 +0000 @@ -87,7 +87,13 @@ } change, set_title, set_icon, cancel_sel, exited, bell, command; } cb; struct { - const char *title, *icon; + const char *icon; + /* dynamic title set by xterm, keep it in case user don't want a + * title any more by setting a empty title + */ + const char *title; + /* set by user */ + const char *user_title; } prop; const char *cur_cmd; Termcell *screen, *screen2; diff -Nru terminology-1.2.0/src/bin/win.c terminology-1.2.1/src/bin/win.c --- terminology-1.2.0/src/bin/win.c 2018-04-10 20:55:36.000000000 +0000 +++ terminology-1.2.1/src/bin/win.c 2018-05-14 20:20:41.000000000 +0000 @@ -995,6 +995,7 @@ tc, tc->is_focused, wn->child == relative); if (relative != wn->child) { + DBG("focus tc:%p", tc); wn->child->focus(wn->child, tc); elm_win_keyboard_mode_set(wn->win, ELM_WIN_KEYBOARD_TERMINAL); if (wn->khdl.imf) @@ -1542,6 +1543,10 @@ if (wn->on_popover || wn->group_input) return; + /* Focus In event will handle that */ + if (!tc->is_focused) + return; + term_mouse = tc->find_term_at_coords(tc, ev->canvas.x, ev->canvas.y); term = tc->focused_term_get(tc); if (term_mouse == term) @@ -1554,6 +1559,7 @@ } tc_child = term_mouse->container; + DBG("focus tc_child:%p", tc_child); tc_child->focus(tc_child, tc); } @@ -1569,7 +1575,7 @@ Term_Container *tc = (Term_Container*) wn; Term_Container *tc_child = NULL; - if (wn->on_popover || wn->group_input) + if (wn->on_popover || wn->group_input || !tc->is_focused) return; if (!wn->config->mouse_over_focus) @@ -4278,7 +4284,7 @@ if (!title || !strlen(title)) title = NULL; - termio_title_set(term->termio, title); + termio_user_title_set(term->termio, title); elm_object_focus_set(entry, EINA_FALSE); elm_popup_dismiss(popup); } @@ -4315,6 +4321,7 @@ Evas_Object *o; Evas_Object *popup; Term_Container *tc = term->container; + const char *prev_title; EINA_SAFETY_ON_NULL_RETURN(term); term->wn->on_popover++; @@ -4341,6 +4348,13 @@ o = elm_entry_add(popup); elm_entry_single_line_set(o, EINA_TRUE); + elm_entry_editable_set(o, EINA_TRUE); + prev_title = termio_user_title_get(term->termio); + if (prev_title) + { + elm_entry_entry_set(o, prev_title); + elm_entry_cursor_pos_set(o, strlen(prev_title)); + } evas_object_smart_callback_add(o, "activated", _set_title_ok_cb, popup); evas_object_smart_callback_add(o, "aborted", _set_title_cancel_cb, popup); elm_object_content_set(popup, o);