From c5f6b7cfeb9da09d40c0da0844ae21c6dcbb2165 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Sat, 8 Mar 2014 21:39:28 +0100 Subject: [PATCH 1/4] bad copy/paste :( --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index bc551ac0..2b5a3a31 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,6 @@ 2014-03-08 - * Release v0.4.0 + * Release v0.5.0 * color settings panel * wallpaper settings panel * load themes from ~/.config/terminology/themes/ From 1b5c54d92425b0d6b087fdb290038678d582c914 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Sat, 17 May 2014 11:01:07 +0200 Subject: [PATCH 2/4] make terminology foward compatible with upcoming efl/elm 1.10 --- src/bin/app_server.c | 84 ++++++++++++++++++++++++++------------------ 1 file changed, 50 insertions(+), 34 deletions(-) diff --git a/src/bin/app_server.c b/src/bin/app_server.c index 17bba433..ec9056f8 100644 --- a/src/bin/app_server.c +++ b/src/bin/app_server.c @@ -6,7 +6,23 @@ #include "termio.h" #include "app_server_eet.h" -#if (ELM_VERSION_MAJOR > 1) || (ELM_VERSION_MINOR >= 8) +#if (ELM_VERSION_MAJOR > 1) || (ELM_VERSION_MINOR >= 10) + +#ifndef ELM_APP_SERVER_VIEW_EVENT_CLOSED +#define ELM_APP_SERVER_VIEW_EVENT_CLOSED ELM_APP_SERVER_VIEW_EV_CLOSED +#endif + +#ifndef ELM_APP_SERVER_VIEW_EVENT_RESUMED +#define ELM_APP_SERVER_VIEW_EVENT_RESUMED ELM_APP_SERVER_VIEW_EV_RESUMED +#endif + +#ifndef ELM_APP_SERVER_VIEW_EVENT_SAVE +#define ELM_APP_SERVER_VIEW_EVENT_SAVE ELM_APP_SERVER_VIEW_EV_SAVE +#endif + +#ifndef ELM_APP_SERVER_EVENT_TERMINATE +#define ELM_APP_SERVER_EVENT_TERMINATE ELM_APP_SERVER_EV_TERMINATE +#endif static Elm_App_Server *_server = NULL; static Eina_Bool _ignore_term_add = EINA_FALSE; @@ -31,13 +47,13 @@ void app_server_term_del(Evas_Object *term) { Elm_App_Server_View *view; - const char *id; + const char *id = NULL; view = evas_object_data_del(term, "app_view"); if (!view) return; - eo_do(view, elm_app_server_view_id_get(&id)); + eo_do(view, id = elm_app_server_view_id_get()); terminology_item_term_entries_del(views_eet, id); eo_del(view); @@ -49,7 +65,7 @@ _view_closed_cb(void *data, Eo *view, void *event_info EINA_UNUSED) { Term *term = data; - const char *id; + const char *id = NULL; if (term) { @@ -61,7 +77,7 @@ _view_closed_cb(void *data, Eo *view, term_object); } - eo_do(view, elm_app_server_view_id_get(&id)); + eo_do(view, id = elm_app_server_view_id_get()); terminology_item_term_entries_del(views_eet, id); eo_del(view); @@ -92,7 +108,7 @@ _view_save_cb(void *data EINA_UNUSED, { char dir[PATH_MAX]; Evas_Object *term_object; - const char *id; + const char *id = NULL; Term_Item *term_eet; term_object = main_term_evas_object_get(data); @@ -104,7 +120,7 @@ _view_save_cb(void *data EINA_UNUSED, evas_object_data_del(term_object, "app_view"); termio_cwd_get(term_object, dir, sizeof(dir)); - eo_do(view, elm_app_server_view_id_get(&id)); + eo_do(view, id = elm_app_server_view_id_get()); term_eet = terminology_item_term_entries_get(views_eet, id); if (term_eet) @@ -126,8 +142,8 @@ _view_resumed_cb(void *data, Eo *view, { Term *term = data; Win *wn; - Eina_List **wins; - const char *title, *id; + Eina_List **wins = NULL; + const char *title, *id = NULL; Evas_Object *term_object; const char *dir = NULL; Term_Item *term_eet; @@ -138,9 +154,8 @@ _view_resumed_cb(void *data, Eo *view, return EINA_TRUE; } - eo_do(_server, eo_base_data_get("wins", (void **)&wins)); - wn = eina_list_data_get(*wins); - if (!wn) + eo_do(_server, wins = eo_key_data_get("wins")); + if (!wins || !(wn = eina_list_data_get(*wins))) { ERR("There is no window open"); return EINA_TRUE; @@ -148,7 +163,7 @@ _view_resumed_cb(void *data, Eo *view, term = eina_list_data_get(main_win_terms_get(wn)); - eo_do(view, elm_app_server_view_id_get(&id)); + eo_do(view, id = elm_app_server_view_id_get()); term_eet = terminology_item_term_entries_get(views_eet, id); if (term_eet) { @@ -179,15 +194,15 @@ _view_resumed_cb(void *data, Eo *view, eo_do(view, elm_app_server_view_title_set(title), elm_app_server_view_window_set( main_win_evas_object_get(main_term_win_get(term))), - eo_event_callback_del(ELM_APP_SERVER_VIEW_EV_CLOSED, _view_closed_cb, + eo_event_callback_del(ELM_APP_SERVER_VIEW_EVENT_CLOSED, _view_closed_cb, NULL), - eo_event_callback_del(ELM_APP_SERVER_VIEW_EV_RESUMED, _view_resumed_cb, + eo_event_callback_del(ELM_APP_SERVER_VIEW_EVENT_RESUMED, _view_resumed_cb, NULL), - eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_CLOSED, _view_closed_cb, + eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_CLOSED, _view_closed_cb, term), - eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_RESUMED, _view_resumed_cb, + eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_RESUMED, _view_resumed_cb, term), - eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_SAVE, _view_save_cb, + eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_SAVE, _view_save_cb, term)); evas_object_smart_callback_add(term_object, "title,change", @@ -245,14 +260,14 @@ app_server_win_del_request_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Eina_List **wins; + Eina_List **wins = NULL; if (!_server) return; - eo_do(_server, eo_base_data_get("wins", (void **)&wins)); + eo_do(_server, wins = eo_key_data_get("wins")); - if (eina_list_count(*wins) > 1) + if (wins && eina_list_count(*wins) > 1) return; /* @@ -283,11 +298,11 @@ _app_server_term_add(Term *term) elm_app_server_view_window_set( main_win_evas_object_get(main_term_win_get(term))), elm_app_server_view_resume(), - eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_CLOSED, + eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_CLOSED, _view_closed_cb, term), - eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_RESUMED, + eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_RESUMED, _view_resumed_cb, term), - eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_SAVE, + eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_SAVE, _view_save_cb, term)); evas_object_smart_callback_add(term_object, "title,change", @@ -321,11 +336,10 @@ _app_server_create_view_cb(Elm_App_Server *server, const Eina_Value *args EINA_U { Win *wn; Term *term; - Eina_List **wins; + Eina_List **wins = NULL; - eo_do(server, eo_base_data_get("wins", (void **)&wins)); - wn = eina_list_data_get(*wins); - if (!wn) + eo_do(server, wins = eo_key_data_get("wins")); + if (!wins || !(wn = eina_list_data_get(*wins))) { ERR("There is no window open"); *error_name = eina_stringshare_add("There is no window open"); @@ -355,12 +369,14 @@ void app_server_init(Eina_List **wins, Eina_Bool restore_views) { Win *wn; - Eina_Iterator *views; + Eina_Iterator *views = NULL; Elm_App_Server_View *view; const char *title; char lock_file[PATH_MAX], eet_dir[PATH_MAX]; FILE *f; + if (!wins) + return; wn = eina_list_data_get(*wins); if (!wn) return; @@ -392,9 +408,9 @@ app_server_init(Eina_List **wins, Eina_Bool restore_views) _app_server_create_view_cb)); eo_do(_server, elm_app_server_title_set(title), - eo_base_data_set("wins", wins, NULL), - elm_app_server_views_get(&views), - eo_event_callback_add(ELM_APP_SERVER_EV_TERMINATE, + eo_key_data_set("wins", wins, NULL), + views = elm_app_server_views_get(), + eo_event_callback_add(ELM_APP_SERVER_EVENT_TERMINATE, _server_terminate_cb, wins)); //views saved EINA_ITERATOR_FOREACH(views, view) @@ -402,9 +418,9 @@ app_server_init(Eina_List **wins, Eina_Bool restore_views) if (restore_views) ecore_idler_add(_restore_view_cb, view); eo_do(view, - eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_CLOSED, + eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_CLOSED, _view_closed_cb, NULL), - eo_event_callback_add(ELM_APP_SERVER_VIEW_EV_RESUMED, + eo_event_callback_add(ELM_APP_SERVER_VIEW_EVENT_RESUMED, _view_resumed_cb, NULL)); } eina_iterator_free(views); From d0264c347f210cc17796438600e1bc3a623e5ee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleksandar=20Popadi=C4=87?= Date: Sat, 15 Mar 2014 18:19:22 +0100 Subject: [PATCH 3/4] Fix disappearing prompt on resize ...and break reflow of multiline prompt lines. --- src/bin/termpty.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/src/bin/termpty.c b/src/bin/termpty.c index 21f6a531..71d47a68 100644 --- a/src/bin/termpty.c +++ b/src/bin/termpty.c @@ -768,23 +768,7 @@ termpty_resize(Termpty *ty, int new_w, int new_h) new_back = calloc(sizeof(Termsave *), ty->backmax); y_end = ty->state.cy; - y_start = termpty_line_find_top(ty, y_end); - if (ty->w == 1) - { - new_y_start = new_h - 1; - new_y_end = new_y_start - 1; - } - else - { - new_y_start = new_h - 1 - (y_end - y_start); - new_y_end = new_y_start - 1; - if (new_y_end < 0) - { - new_y_start = 0; - new_y_end = -1; - } - } - y_end = y_start - 1; + new_y_end = new_h - 1; while ((y_end >= -ty->backscroll_num) && (new_y_end >= -ty->backmax)) { y_start = termpty_line_find_top(ty, y_end); @@ -802,6 +786,8 @@ termpty_resize(Termpty *ty, int new_w, int new_h) ty->w = new_w; ty->h = new_h; ty->state.cy = MIN((new_h - 1) - new_y_start, new_h - 1); + ty->state.cx = termpty_line_length(new_screen + ((new_h - 1) * new_w), + new_w); ty->circular_offset = MAX(new_y_start, 0); ty->backpos = 0; ty->backscroll_num = MAX(-new_y_start, 0); From b22db0430d05135b825a9b92b7436af3a6fe0ab4 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Sat, 17 May 2014 11:28:32 +0200 Subject: [PATCH 4/4] Terminology 0.5.1 --- ChangeLog | 6 ++++++ NEWS | 10 +++++++++- README | 2 +- configure.ac | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2b5a3a31..9d7e8b8e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2014-05-17 + + * Release v0.5.1 + * Make terminology compatible with upcoming efl/elm 1.10 + * Fix disappearing prompt on resize + 2014-03-08 * Release v0.5.0 diff --git a/NEWS b/NEWS index efcdad2d..ffd4e40f 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,15 @@ ================= -Terminology 0.5.0 +Terminology 0.5.1 ================= +Changes since 0.5.0: +-------------------- + +Fixes: + * Make terminology compatible with upcoming efl/elm 1.10 + * Fix disappearing prompt on resize + + Changes since 0.4.0: -------------------- diff --git a/README b/README index a3a0fa9d..a290a01d 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Terminology 0.5.0 +Terminology 0.5.1 ****************************************************************************** diff --git a/configure.ac b/configure.ac index 3afc656d..d61674da 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ dnl Process this file with autoconf to produce a configure script. # get rid of that stupid cache mechanism rm -f config.cache -AC_INIT([terminology], [0.5.0], [enlightenment-devel@lists.sourceforge.net]) +AC_INIT([terminology], [0.5.1], [enlightenment-devel@lists.sourceforge.net]) AC_PREREQ([2.60]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_MACRO_DIR([m4])