[EGIT] [core/elementary] master 01/01: gengrid: fix duplicate edje signal (elm, state, focused) to item on focus
ami pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=544d2a078ddd59a750aa28fff7768dc31d006cfe commit 544d2a078ddd59a750aa28fff7768dc31d006cfe Author: Amitesh Singh Date: Wed Sep 23 12:20:05 2015 +0530 gengrid: fix duplicate edje signal (elm,state,focused) to item on focus @fix --- src/lib/elm_gengrid.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index c55fd3f..50d901c 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -2020,7 +2020,6 @@ _elm_gengrid_item_focused(Elm_Object_Item *eo_it) sd->focused_item = eo_it; - if (it->realized) _elm_gengrid_item_focus_raise(it); eo_do(obj, eo_event_callback_call(ELM_GENGRID_EVENT_ITEM_FOCUSED, eo_it)); if (_elm_config->atspi_mode) elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, ELM_ATSPI_STATE_FOCUSED, EINA_TRUE); --
[EGIT] [core/efl] master 01/01: ecore_evas_extn: remove old buffer in evas render post function.
jypark pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f823d9c2ccb528f9df0a87a2d5ab13ae8a43ef47 commit f823d9c2ccb528f9df0a87a2d5ab13ae8a43ef47 Author: Ji-Youn Park Date: Wed Sep 23 15:04:02 2015 +0830 ecore_evas_extn: remove old buffer in evas render post function. Before, ipc_server_data(fd handler callback) is not runned between evas_render_pre callback and evas_render_post callback. but after async mode, hd handler can be called between render_pre and render_post. we should remove buffer which can be used render thread, after render finished --- src/modules/ecore_evas/engines/extn/ecore_evas_extn.c | 18 -- 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c index c8ef291..e280bbc 100644 --- a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c +++ b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c @@ -116,6 +116,12 @@ _ecore_evas_extn_plug_render_post(void *data, Evas *e EINA_UNUSED, void *event_i extn = bdata->data; if (!extn) return; _extnbuf_unlock(extn->b[extn->cur_b].buf); + if (extn->b[extn->cur_b].obuf) + { +_extnbuf_unlock(extn->b[extn->cur_b].obuf); +_extnbuf_free(extn->b[extn->cur_b].obuf); +extn->b[extn->cur_b].obuf = NULL; + } } static void @@ -1015,12 +1021,6 @@ _ipc_server_data(void *data, int type EINA_UNUSED, void *event) extn->cur_b = n; if (extn->b[pn].buf) _extnbuf_unlock(extn->b[pn].buf); - if (extn->b[pn].obuf) - { -_extnbuf_unlock(extn->b[pn].obuf); -_extnbuf_free(extn->b[pn].obuf); -extn->b[pn].obuf = NULL; - } evas_object_image_colorspace_set(bdata->image, EVAS_COLORSPACE_ARGB); if (extn->b[n].buf) @@ -1258,6 +1258,12 @@ ecore_evas_extn_plug_new_internal(Ecore_Evas *ee_target) extn_ee_list = eina_list_append(extn_ee_list, ee); ee_target->sub_ecore_evas = eina_list_append(ee_target->sub_ecore_evas, ee); + + evas_event_callback_add(ee_target->evas, EVAS_CALLBACK_RENDER_PRE, + _ecore_evas_extn_plug_render_pre, ee); + evas_event_callback_add(ee_target->evas, EVAS_CALLBACK_RENDER_POST, + _ecore_evas_extn_plug_render_post, ee); + return o; } --
[EGIT] [core/efl] master 01/01: edje_edit: remove a redundant API declaration.
jaehwan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3e5fddd72bcc6759e836bf7de80917f6bc0bf4d8 commit 3e5fddd72bcc6759e836bf7de80917f6bc0bf4d8 Author: Jaehwan Kim Date: Wed Sep 23 15:22:44 2015 +0900 edje_edit: remove a redundant API declaration. edje_edit_state_font_get has twice declaration in same header file. --- src/lib/edje/Edje_Edit.h | 16 ++-- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h index 448d27a..7a5ae05 100644 --- a/src/lib/edje/Edje_Edit.h +++ b/src/lib/edje/Edje_Edit.h @@ -4663,6 +4663,8 @@ EAPI Eina_Bool edje_edit_state_text_set(Evas_Object *obj, const char *part, cons /** Get font name for a given part state. * + * Remember to free the returned string using edje_edit_string_free(). + * * @param obj Object being edited. * @param part The name of the part to get the font of. * @param state The state of the part to get the font of. @@ -5131,20 +5133,6 @@ EAPI Eina_Bool edje_edit_font_del(Evas_Object *obj, const char* alias); */ EAPI const char *edje_edit_font_path_get(Evas_Object *obj, const char *alias); - -/** Get font name for a given part state. - * - * Remember to free the returned string using edje_edit_string_free(). - * - * @param obj Object being edited. - * @param part Part that contain state. - * @param state The name of the state to get the name of the font used (not including the state value). - * @param value The state value. - * - * @return The name of the font used in the given part state. - */ -EAPI const char * edje_edit_state_font_get(Evas_Object *obj, const char *part, const char *state, double value); - //@} /**/ /** IMAGES API / --
[EGIT] [core/efl] master 01/01: evas gl engines - remove TIMDBG code that is unused entirely
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=601273522e5844c18ed74c2fdb3d39fa57032f2b commit 601273522e5844c18ed74c2fdb3d39fa57032f2b Author: Carsten Haitzler (Rasterman) Date: Wed Sep 23 14:03:33 2015 +0900 evas gl engines - remove TIMDBG code that is unused entirely --- src/modules/evas/engines/gl_generic/evas_engine.c | 6 --- src/modules/evas/engines/gl_x11/evas_engine.c | 51 --- 2 files changed, 57 deletions(-) diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index 5d5603b..f4c7233 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -1,12 +1,6 @@ #include "evas_common_private.h" #include "evas_gl_core_private.h" -//#define TIMDBG 1 -#ifdef TIMDBG -# include -# include -#endif - #include "software/Ector_Software.h" #include "ector_cairo_software_surface.eo.h" diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c index bd8ad7e..b43fc22 100644 --- a/src/modules/evas/engines/gl_x11/evas_engine.c +++ b/src/modules/evas/engines/gl_x11/evas_engine.c @@ -1,12 +1,6 @@ #include "evas_common_private.h" /* Also includes international specific stuff */ #include "evas_engine.h" -//#define TIMDBG 1 -#ifdef TIMDBG -# include -# include -#endif - #ifdef HAVE_DLSYM # include /* dlopen,dlclose,etc */ #else @@ -118,51 +112,6 @@ void (*glsym_glXReleaseBuffersMESA) (Display *a, XID b) = NULL; #endif -#ifdef TIMDBG -static double -gettime(void) -{ - struct timeval timev; - - gettimeofday(&timev, NULL); - return (double)timev.tv_sec + (((double)timev.tv_usec) / 100); -} - -static void -measure(int end, const char *name) -{ - FILE *fs; - static unsigned long user = 0, kern = 0, user2 = 0, kern2 = 0; - static double t = 0.0, t2 = 0.0; - unsigned long u = 0, k = 0; - - fs = fopen("/proc/self/stat", "rb"); - if (fs) { - fscanf(fs, "%*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s %*s " - "%lu %lu %*s", &u, &k); - fclose(fs); - } - if (end) - { -long hz; - -t2 = gettime(); -user2 = u; -kern2 = k; -hz = sysconf(_SC_CLK_TCK); -fprintf(stderr, "(%8lu %8lu) k=%4lu u=%4lu == tot=%4lu@%4li in=%3.5f < %s\n", -user, kern, kern2 - kern, user2 - user, -(kern2 - kern) + (user2 - user), hz, t2 - t, name); - } - else - { -user = u; -kern = k; -t = gettime(); - } -} -#endif - static inline Outbuf * eng_get_ob(Render_Engine *re) { --
[EGIT] [core/elementary] elementary-1.15 01/01: elm_conformant: display mode set fix
hermet pushed a commit to branch elementary-1.15. http://git.enlightenment.org/core/elementary.git/commit/?id=44c3baaee1103ca309248b89874222a075017886 commit 44c3baaee1103ca309248b89874222a075017886 Author: Shilpa Singh Date: Wed Sep 23 09:51:04 2015 +0900 elm_conformant: display mode set fix Summary: Set the display mode to none only when both clipboard and keypad is hidden. Signed-Off By: Shashank Pandey Signed-Off By: Shilpa Singh @fix Test Plan: Keypad opened, Clipboard opened, close clipboard Reviewers: woohyun, CHAN, Hermet Reviewed By: Hermet Subscribers: CHAN, Jaehyun, shashank0990 Differential Revision: https://phab.enlightenment.org/D2968 --- src/lib/elm_conform.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c index 543aa7d..9143b47 100644 --- a/src/lib/elm_conform.c +++ b/src/lib/elm_conform.c @@ -762,7 +762,8 @@ _virtualkeypad_state_change(Evas_Object *obj, Ecore_X_Event_Window_Property *ev) evas_object_size_hint_min_set(sd->virtualkeypad, -1, 0); evas_object_size_hint_max_set(sd->virtualkeypad, -1, 0); _conformant_part_sizing_eval(obj, ELM_CONFORMANT_VIRTUAL_KEYPAD_PART); -elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE); +if (!sd->clipboard_state) + elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE); eo_do(obj, eo_event_callback_call( ELM_CONFORMANT_EVENT_VIRTUALKEYPAD_STATE_OFF, NULL)); } @@ -801,7 +802,8 @@ _clipboard_state_change(Evas_Object *obj, Ecore_X_Event_Window_Property *ev) { evas_object_size_hint_min_set(sd->clipboard, -1, 0); evas_object_size_hint_max_set(sd->clipboard, -1, 0); -elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE); +if (!sd->vkb_state) + elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE); eo_do(obj, eo_event_callback_call( ELM_CONFORMANT_EVENT_CLIPBOARD_STATE_OFF, NULL)); } --
[EGIT] [core/elementary] master 01/01: elm_conformant: display mode set fix
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=66852fb942325d341ddf6e30f3162470ec27a539 commit 66852fb942325d341ddf6e30f3162470ec27a539 Author: Shilpa Singh Date: Wed Sep 23 09:51:04 2015 +0900 elm_conformant: display mode set fix Summary: Set the display mode to none only when both clipboard and keypad is hidden. Signed-Off By: Shashank Pandey Signed-Off By: Shilpa Singh @fix Test Plan: Keypad opened, Clipboard opened, close clipboard Reviewers: woohyun, CHAN, Hermet Reviewed By: Hermet Subscribers: CHAN, Jaehyun, shashank0990 Differential Revision: https://phab.enlightenment.org/D2968 --- src/lib/elm_conform.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c index dd32aa4..12d3477 100644 --- a/src/lib/elm_conform.c +++ b/src/lib/elm_conform.c @@ -766,7 +766,8 @@ _virtualkeypad_state_change(Evas_Object *obj, Ecore_X_Event_Window_Property *ev) evas_object_size_hint_min_set(sd->virtualkeypad, -1, 0); evas_object_size_hint_max_set(sd->virtualkeypad, -1, 0); _conformant_part_sizing_eval(obj, ELM_CONFORMANT_VIRTUAL_KEYPAD_PART); -elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE); +if (!sd->clipboard_state) + elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE); eo_do(obj, eo_event_callback_call( ELM_CONFORMANT_EVENT_VIRTUALKEYPAD_STATE_OFF, NULL)); } @@ -805,7 +806,8 @@ _clipboard_state_change(Evas_Object *obj, Ecore_X_Event_Window_Property *ev) { evas_object_size_hint_min_set(sd->clipboard, -1, 0); evas_object_size_hint_max_set(sd->clipboard, -1, 0); -elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE); +if (!sd->vkb_state) + elm_widget_display_mode_set(obj, EVAS_DISPLAY_MODE_NONE); eo_do(obj, eo_event_callback_call( ELM_CONFORMANT_EVENT_CLIPBOARD_STATE_OFF, NULL)); } --
[EGIT] [core/efl] efl-1.15 01/01: eldbus: add dbus_pending NULL check
hermet pushed a commit to branch efl-1.15. http://git.enlightenment.org/core/efl.git/commit/?id=6a604f15490832bcec18757db64fa597cbd2c6b4 commit 6a604f15490832bcec18757db64fa597cbd2c6b4 Author: Thiep Ha Date: Wed Sep 23 09:19:59 2015 +0900 eldbus: add dbus_pending NULL check Summary: When we call dbus_connection_send_with_reply, the dbus_pending can be NULL. In this case, the next call dbus_pending_call_set_notify will cause application crash. We should check if dbus_pending is NULL before calling dbus API. @fix Reviewers: cedric Subscribers: englebass, cedric, seoz Differential Revision: https://phab.enlightenment.org/D3081 --- src/lib/eldbus/eldbus_pending.c | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/eldbus/eldbus_pending.c b/src/lib/eldbus/eldbus_pending.c index fa68d03..69ea322 100644 --- a/src/lib/eldbus/eldbus_pending.c +++ b/src/lib/eldbus/eldbus_pending.c @@ -157,6 +157,13 @@ _eldbus_connection_send(Eldbus_Connection *conn, Eldbus_Message *msg, Eldbus_Mes eldbus_pending_dispatch(pending, error_msg); return NULL; } + if (!pending->dbus_pending) + { +error_msg = eldbus_message_error_new(msg, "org.enlightenment.DBus.Error", + "dbus_pending is NULL."); +eldbus_pending_dispatch(pending, error_msg); +return NULL; + } if (dbus_pending_call_set_notify(pending->dbus_pending, cb_pending, pending, NULL)) return pending; @@ -238,7 +245,8 @@ eldbus_pending_dispatch(Eldbus_Pending *pending, Eldbus_Message *msg) if (msg) eldbus_message_unref(msg); eldbus_message_unref(pending->msg_sent); - dbus_pending_call_unref(pending->dbus_pending); + if (pending->dbus_pending) + dbus_pending_call_unref(pending->dbus_pending); pending->cb = NULL; pending->dbus_pending = NULL; --
[EGIT] [core/elementary] elementary-1.15 01/01: [elm_win] Possible memory leak Fixed.
hermet pushed a commit to branch elementary-1.15. http://git.enlightenment.org/core/elementary.git/commit/?id=f281b3f1f748bd854a732e399668e5a8739f20b2 commit f281b3f1f748bd854a732e399668e5a8739f20b2 Author: Prince Kumar Dubey Date: Wed Sep 23 09:40:31 2015 +0900 [elm_win] Possible memory leak Fixed. Summary: Memory assigned to variable "sd->wm_rot.rots" is not freed on window deletion. Test Plan: Valgrind catch this memory leak. Reviewers: raster, cedric, Hermet Reviewed By: Hermet Subscribers: govi, rajeshps Differential Revision: https://phab.enlightenment.org/D3041 --- src/lib/elm_win.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index 6e478f6..53c2ce9 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -1921,6 +1921,8 @@ _elm_win_evas_object_smart_del(Eo *obj, Elm_Win_Data *sd) _elm_win_profile_del(sd); _elm_win_available_profiles_del(sd); + free(sd->wm_rot.rots); + /* Don't let callback in the air that point to sd */ ecore_evas_callback_delete_request_set(sd->ee, NULL); ecore_evas_callback_resize_set(sd->ee, NULL); --
[EGIT] [core/elementary] master 01/01: [elm_win] Possible memory leak Fixed.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=aebbc66503f53477076400a9102b7ab5d5d2d3da commit aebbc66503f53477076400a9102b7ab5d5d2d3da Author: Prince Kumar Dubey Date: Wed Sep 23 09:40:31 2015 +0900 [elm_win] Possible memory leak Fixed. Summary: Memory assigned to variable "sd->wm_rot.rots" is not freed on window deletion. Test Plan: Valgrind catch this memory leak. Reviewers: raster, cedric, Hermet Reviewed By: Hermet Subscribers: govi, rajeshps Differential Revision: https://phab.enlightenment.org/D3041 --- src/lib/elm_win.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index c918b51..e6de231 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -1941,6 +1941,8 @@ _elm_win_evas_object_smart_del(Eo *obj, Elm_Win_Data *sd) _elm_win_profile_del(sd); _elm_win_available_profiles_del(sd); + free(sd->wm_rot.rots); + /* Don't let callback in the air that point to sd */ ecore_evas_callback_delete_request_set(sd->ee, NULL); ecore_evas_callback_resize_set(sd->ee, NULL); --
[EGIT] [core/efl] master 01/01: eldbus: add dbus_pending NULL check
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ffbda5add5a871fdc9f9e4d0078d814240cd59ff commit ffbda5add5a871fdc9f9e4d0078d814240cd59ff Author: Thiep Ha Date: Wed Sep 23 09:19:59 2015 +0900 eldbus: add dbus_pending NULL check Summary: When we call dbus_connection_send_with_reply, the dbus_pending can be NULL. In this case, the next call dbus_pending_call_set_notify will cause application crash. We should check if dbus_pending is NULL before calling dbus API. @fix Reviewers: cedric Subscribers: englebass, cedric, seoz Differential Revision: https://phab.enlightenment.org/D3081 --- src/lib/eldbus/eldbus_pending.c | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/eldbus/eldbus_pending.c b/src/lib/eldbus/eldbus_pending.c index fa68d03..69ea322 100644 --- a/src/lib/eldbus/eldbus_pending.c +++ b/src/lib/eldbus/eldbus_pending.c @@ -157,6 +157,13 @@ _eldbus_connection_send(Eldbus_Connection *conn, Eldbus_Message *msg, Eldbus_Mes eldbus_pending_dispatch(pending, error_msg); return NULL; } + if (!pending->dbus_pending) + { +error_msg = eldbus_message_error_new(msg, "org.enlightenment.DBus.Error", + "dbus_pending is NULL."); +eldbus_pending_dispatch(pending, error_msg); +return NULL; + } if (dbus_pending_call_set_notify(pending->dbus_pending, cb_pending, pending, NULL)) return pending; @@ -238,7 +245,8 @@ eldbus_pending_dispatch(Eldbus_Pending *pending, Eldbus_Message *msg) if (msg) eldbus_message_unref(msg); eldbus_message_unref(pending->msg_sent); - dbus_pending_call_unref(pending->dbus_pending); + if (pending->dbus_pending) + dbus_pending_call_unref(pending->dbus_pending); pending->cb = NULL; pending->dbus_pending = NULL; --
[EGIT] [core/enlightenment] enlightenment-0.19 01/01: fix systray implementation of notifier watcher (StatusNotifierItem)
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6f4d1268d159013ab17ff097acfef673cf76ebd2 commit 6f4d1268d159013ab17ff097acfef673cf76ebd2 Author: Mike Blumenkrantz Date: Tue Sep 22 18:38:34 2015 -0400 fix systray implementation of notifier watcher (StatusNotifierItem) previously, this would throw dbus errors (or not) and then do nothing in many cases. now it manages bus/path names more effectively and falls back to binary image data when an icon path is not available fix T2626 and probably some others --- src/modules/systray/e_mod_notifier_host.c | 21 - src/modules/systray/e_mod_notifier_host_dbus.c| 96 --- src/modules/systray/e_mod_notifier_host_private.h | 4 + src/modules/systray/e_mod_notifier_watcher.c | 21 ++--- 4 files changed, 116 insertions(+), 26 deletions(-) diff --git a/src/modules/systray/e_mod_notifier_host.c b/src/modules/systray/e_mod_notifier_host.c index 0cd7a26..065c82f 100644 --- a/src/modules/systray/e_mod_notifier_host.c +++ b/src/modules/systray/e_mod_notifier_host.c @@ -42,6 +42,8 @@ systray_notifier_item_free(Notifier_Item *item) e_dbusmenu_unload(item->menu_data); eina_stringshare_del(item->bus_id); eina_stringshare_del(item->path); + free(item->imgdata); + free(item->attnimgdata); if (item->attention_icon_name) eina_stringshare_del(item->attention_icon_name); if (item->icon_name) @@ -64,7 +66,7 @@ systray_notifier_item_free(Notifier_Item *item) } static void -image_load(const char *name, const char *path, Evas_Object *image) +image_load(const char *name, const char *path, uint32_t *imgdata, int w, int h, Evas_Object *image) { const char **ext, *exts[] = { @@ -96,7 +98,18 @@ image_load(const char *name, const char *path, Evas_Object *image) } } } - if (!e_util_icon_theme_set(image, name)) + if (name && name[0] && e_util_icon_theme_set(image, name)) return; + if (imgdata) + { +Evas_Object *o; + +o = evas_object_image_filled_add(evas_object_evas_get(image)); +evas_object_image_alpha_set(o, 1); +evas_object_image_size_set(o, w, h); +evas_object_image_data_set(o, imgdata); +e_icon_image_object_set(image, o); + } + else e_util_icon_theme_set(image, "dialog-error"); } @@ -261,7 +274,7 @@ jump_search: { case STATUS_ACTIVE: { - image_load(item->icon_name, item->icon_path, ii->icon); + image_load(item->icon_name, item->icon_path, item->imgdata, item->imgw, item->imgh, ii->icon); if (!evas_object_visible_get(ii->icon)) { systray_edje_box_append(host_inst->inst, ii->icon); @@ -280,7 +293,7 @@ jump_search: } case STATUS_ATTENTION: { - image_load(item->attention_icon_name, item->icon_path, ii->icon); + image_load(item->attention_icon_name, item->icon_path, item->attnimgdata, item->attnimgw, item->attnimgh, ii->icon); if (!evas_object_visible_get(ii->icon)) { systray_edje_box_append(host_inst->inst, ii->icon); diff --git a/src/modules/systray/e_mod_notifier_host_dbus.c b/src/modules/systray/e_mod_notifier_host_dbus.c index f5de199..77ae5b5 100644 --- a/src/modules/systray/e_mod_notifier_host_dbus.c +++ b/src/modules/systray/e_mod_notifier_host_dbus.c @@ -14,6 +14,8 @@ extern const char *Category_Names[]; extern const char *Status_Names[]; +static Eina_Stringshare *DBUS_PATH; + typedef struct _Notifier_Host_Data { Instance_Notifier_Host *host_inst; void *data; @@ -57,6 +59,36 @@ id_find(const char *s, const char *names[]) } static void +icon_pixmap_deserialize(Eldbus_Message_Iter *variant, uint32_t **data, int *w, int *h) +{ + Eldbus_Message_Iter *iter, *struc; + + *data = NULL; + *w = *h = 0; + eldbus_message_iter_arguments_get(variant, "a(iiay)", &iter); + while (eldbus_message_iter_get_and_next(iter, 'r', &struc)) + { +Eldbus_Message_Iter *imgdata; + +if (eldbus_message_iter_arguments_get(struc, "iiay", w, h, &imgdata)) + { + uint32_t *img; + int len; + + if (eldbus_message_iter_fixed_array_get(imgdata, 'y', &img, &len)) + { + unsigned int pos; + + *data = malloc(len * sizeof(int)); + for (pos = 0; pos < (unsigned int)len; pos++) +(*data)[pos] = eina_swap32(img[pos]); + return; + } + } + } +} + +static void item_prop_get(void *data, const void *key, Eldbus_Message_Iter *var) { Notifier_Item *item = data; @@ -73,6 +105,16 @@ item_prop_get(void *data, const void *key, Eldbus_Message_Iter *var) eldbus_message_iter_arguments_get(var, "s", &name); eina_stringshare_replace(&item->
[EGIT] [core/enlightenment] master 01/01: fix systray implementation of notifier watcher (StatusNotifierItem)
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0978d22f8e354176052d19acd10143b7fb79c11d commit 0978d22f8e354176052d19acd10143b7fb79c11d Author: Mike Blumenkrantz Date: Tue Sep 22 18:38:34 2015 -0400 fix systray implementation of notifier watcher (StatusNotifierItem) previously, this would throw dbus errors (or not) and then do nothing in many cases. now it manages bus/path names more effectively and falls back to binary image data when an icon path is not available fix T2626 and probably some others --- src/modules/systray/e_mod_notifier_host.c | 21 - src/modules/systray/e_mod_notifier_host_dbus.c| 96 --- src/modules/systray/e_mod_notifier_host_private.h | 4 + src/modules/systray/e_mod_notifier_watcher.c | 21 ++--- 4 files changed, 116 insertions(+), 26 deletions(-) diff --git a/src/modules/systray/e_mod_notifier_host.c b/src/modules/systray/e_mod_notifier_host.c index 3fe3340..e3420b4 100644 --- a/src/modules/systray/e_mod_notifier_host.c +++ b/src/modules/systray/e_mod_notifier_host.c @@ -42,6 +42,8 @@ systray_notifier_item_free(Notifier_Item *item) e_dbusmenu_unload(item->menu_data); eina_stringshare_del(item->bus_id); eina_stringshare_del(item->path); + free(item->imgdata); + free(item->attnimgdata); if (item->attention_icon_name) eina_stringshare_del(item->attention_icon_name); if (item->icon_name) @@ -64,7 +66,7 @@ systray_notifier_item_free(Notifier_Item *item) } static void -image_load(const char *name, const char *path, Evas_Object *image) +image_load(const char *name, const char *path, uint32_t *imgdata, int w, int h, Evas_Object *image) { const char **ext, *exts[] = { @@ -96,7 +98,18 @@ image_load(const char *name, const char *path, Evas_Object *image) } } } - if (!e_util_icon_theme_set(image, name)) + if (name && name[0] && e_util_icon_theme_set(image, name)) return; + if (imgdata) + { +Evas_Object *o; + +o = evas_object_image_filled_add(evas_object_evas_get(image)); +evas_object_image_alpha_set(o, 1); +evas_object_image_size_set(o, w, h); +evas_object_image_data_set(o, imgdata); +e_icon_image_object_set(image, o); + } + else e_util_icon_theme_set(image, "dialog-error"); } @@ -261,7 +274,7 @@ jump_search: { case STATUS_ACTIVE: { - image_load(item->icon_name, item->icon_path, ii->icon); + image_load(item->icon_name, item->icon_path, item->imgdata, item->imgw, item->imgh, ii->icon); if (!evas_object_visible_get(ii->icon)) { systray_edje_box_append(host_inst->inst, ii->icon); @@ -280,7 +293,7 @@ jump_search: } case STATUS_ATTENTION: { - image_load(item->attention_icon_name, item->icon_path, ii->icon); + image_load(item->attention_icon_name, item->icon_path, item->attnimgdata, item->attnimgw, item->attnimgh, ii->icon); if (!evas_object_visible_get(ii->icon)) { systray_edje_box_append(host_inst->inst, ii->icon); diff --git a/src/modules/systray/e_mod_notifier_host_dbus.c b/src/modules/systray/e_mod_notifier_host_dbus.c index f5de199..77ae5b5 100644 --- a/src/modules/systray/e_mod_notifier_host_dbus.c +++ b/src/modules/systray/e_mod_notifier_host_dbus.c @@ -14,6 +14,8 @@ extern const char *Category_Names[]; extern const char *Status_Names[]; +static Eina_Stringshare *DBUS_PATH; + typedef struct _Notifier_Host_Data { Instance_Notifier_Host *host_inst; void *data; @@ -57,6 +59,36 @@ id_find(const char *s, const char *names[]) } static void +icon_pixmap_deserialize(Eldbus_Message_Iter *variant, uint32_t **data, int *w, int *h) +{ + Eldbus_Message_Iter *iter, *struc; + + *data = NULL; + *w = *h = 0; + eldbus_message_iter_arguments_get(variant, "a(iiay)", &iter); + while (eldbus_message_iter_get_and_next(iter, 'r', &struc)) + { +Eldbus_Message_Iter *imgdata; + +if (eldbus_message_iter_arguments_get(struc, "iiay", w, h, &imgdata)) + { + uint32_t *img; + int len; + + if (eldbus_message_iter_fixed_array_get(imgdata, 'y', &img, &len)) + { + unsigned int pos; + + *data = malloc(len * sizeof(int)); + for (pos = 0; pos < (unsigned int)len; pos++) +(*data)[pos] = eina_swap32(img[pos]); + return; + } + } + } +} + +static void item_prop_get(void *data, const void *key, Eldbus_Message_Iter *var) { Notifier_Item *item = data; @@ -73,6 +105,16 @@ item_prop_get(void *data, const void *key, Eldbus_Message_Iter *var) eldbus_message_iter_arguments_get(var, "s", &name); eina_stringshare_replace(&item->icon_name, n
[EGIT] [core/enlightenment] enlightenment-0.19 01/02: e - fix crash in desktop lookup+fixup where exe_inst is null
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d7fdb67488661580080bc6dd9b843a597c646f5d commit d7fdb67488661580080bc6dd9b843a597c646f5d Author: Carsten Haitzler (Rasterman) Date: Sun Jun 14 17:50:14 2015 +0900 e - fix crash in desktop lookup+fixup where exe_inst is null --- src/bin/e_client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index ac59968..160d1a7 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2185,7 +2185,7 @@ _e_client_eval(E_Client *ec) e_comp_object_frame_icon_update(ec->frame); if ((ec->new_client || ec->re_manage) && ec->desktop && (!ec->exe_inst)) e_exec_phony(ec); -else if (ec->desktop && (!ec->exe_inst->desktop)) +else if (ec->desktop && ec->exe_inst && (!ec->exe_inst->desktop)) { efreet_desktop_ref(ec->desktop); ec->exe_inst->desktop = ec->desktop; --
[EGIT] [core/enlightenment] master 01/01: improve client exe_inst creation
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c9c880ec596ce65cc831aab76208e99e19f5ef1d commit c9c880ec596ce65cc831aab76208e99e19f5ef1d Author: Mike Blumenkrantz Date: Tue Sep 22 16:00:09 2015 -0400 improve client exe_inst creation ref T2679 --- src/bin/e_client.c | 13 - 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 664a8b2..c001edd 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2182,12 +2182,15 @@ _e_client_eval(E_Client *ec) } e_comp_object_frame_icon_update(ec->frame); -if ((ec->new_client || ec->re_manage) && ec->desktop && (!ec->exe_inst)) - e_exec_phony(ec); -else if (ec->desktop && ec->exe_inst && (!ec->exe_inst->desktop)) +if (ec->desktop) { - efreet_desktop_ref(ec->desktop); - ec->exe_inst->desktop = ec->desktop; + if (!ec->exe_inst) + e_exec_phony(ec); + if (!ec->exe_inst->desktop) + { + efreet_desktop_ref(ec->desktop); + ec->exe_inst->desktop = ec->desktop; + } } ec->changes.icon = 0; prop |= E_CLIENT_PROPERTY_ICON; --
[EGIT] [core/enlightenment] enlightenment-0.19 02/02: improve client exe_inst creation
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=eeda49735c6de625de706072fc5e4cb7e7a511ee commit eeda49735c6de625de706072fc5e4cb7e7a511ee Author: Mike Blumenkrantz Date: Tue Sep 22 16:00:09 2015 -0400 improve client exe_inst creation ref T2679 --- src/bin/e_client.c | 13 - 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 160d1a7..6e663db 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2183,12 +2183,15 @@ _e_client_eval(E_Client *ec) } e_comp_object_frame_icon_update(ec->frame); -if ((ec->new_client || ec->re_manage) && ec->desktop && (!ec->exe_inst)) - e_exec_phony(ec); -else if (ec->desktop && ec->exe_inst && (!ec->exe_inst->desktop)) +if (ec->desktop) { - efreet_desktop_ref(ec->desktop); - ec->exe_inst->desktop = ec->desktop; + if (!ec->exe_inst) + e_exec_phony(ec); + if (!ec->exe_inst->desktop) + { + efreet_desktop_ref(ec->desktop); + ec->exe_inst->desktop = ec->desktop; + } } ec->changes.icon = 0; prop |= E_CLIENT_PROPERTY_ICON; --
[EGIT] [core/enlightenment] master 01/01: add weekeyboard edj files
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4173bd0c0c9595a4f472aab975e545d9ee798c2f commit 4173bd0c0c9595a4f472aab975e545d9ee798c2f Author: Mike Blumenkrantz Date: Tue Sep 22 15:03:39 2015 -0400 add weekeyboard edj files --- .../wl_weekeyboard/themes/default/default_1080.edj | Bin 0 -> 484848 bytes .../wl_weekeyboard/themes/default/default_600.edj | Bin 0 -> 484760 bytes .../wl_weekeyboard/themes/default/default_720.edj | Bin 0 -> 484760 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/modules/wl_weekeyboard/themes/default/default_1080.edj b/src/modules/wl_weekeyboard/themes/default/default_1080.edj new file mode 100644 index 000..63db8a5 Binary files /dev/null and b/src/modules/wl_weekeyboard/themes/default/default_1080.edj differ diff --git a/src/modules/wl_weekeyboard/themes/default/default_600.edj b/src/modules/wl_weekeyboard/themes/default/default_600.edj new file mode 100644 index 000..ccde12c Binary files /dev/null and b/src/modules/wl_weekeyboard/themes/default/default_600.edj differ diff --git a/src/modules/wl_weekeyboard/themes/default/default_720.edj b/src/modules/wl_weekeyboard/themes/default/default_720.edj new file mode 100644 index 000..0327ddf Binary files /dev/null and b/src/modules/wl_weekeyboard/themes/default/default_720.edj differ --
[EGIT] [core/enlightenment] enlightenment-0.19 02/02: attempt to maintain currently-selected kbd layout when modifying kbd list
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f19a122605446bc4cf501384af303e7c7799eb6c commit f19a122605446bc4cf501384af303e7c7799eb6c Author: Mike Blumenkrantz Date: Tue Sep 22 14:17:35 2015 -0400 attempt to maintain currently-selected kbd layout when modifying kbd list the previous behavior would just set up the new layouts, resulting in the first layout in the list being applied. now it should be the case that if the current layout has not been deleted, it will continue to remain in effect; alternatively if the current layout has been modified, it's now more likely to be picked up and used --- src/modules/xkbswitch/e_mod_config.c | 32 ++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/modules/xkbswitch/e_mod_config.c b/src/modules/xkbswitch/e_mod_config.c index e2c17fa..a4ab756 100644 --- a/src/modules/xkbswitch/e_mod_config.c +++ b/src/modules/xkbswitch/e_mod_config.c @@ -225,6 +225,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) E_Config_XKB_Layout *cl, *nl; E_Config_XKB_Option *oc; E_XKB_Dialog_Option *od; + Eina_Bool cur_ok = EINA_FALSE, sel_ok = EINA_FALSE; EINA_LIST_FREE(e_config->xkb.used_layouts, cl) { @@ -243,6 +244,34 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) e_config->xkb.used_layouts = eina_list_append(e_config->xkb.used_layouts, nl); +if (e_config_xkb_layout_eq(e_config->xkb.current_layout, nl)) + cur_ok = EINA_TRUE; +if (e_config_xkb_layout_eq(e_config->xkb.sel_layout, nl)) + sel_ok = EINA_TRUE; + } + if (!cur_ok) + { +E_FREE_FUNC(e_config->xkb.current_layout, e_config_xkb_layout_free); +EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl) + if (e_config->xkb.cur_layout == cl->name) +{ + e_config->xkb.current_layout = e_config_xkb_layout_dup(cl); + break; +} +if (!e_config->xkb.current_layout) + eina_stringshare_replace(&e_config->xkb.cur_layout, NULL); + } + if (!sel_ok) + { +E_FREE_FUNC(e_config->xkb.sel_layout, e_config_xkb_layout_free); +EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl) + if (e_config->xkb.selected_layout == cl->name) +{ + e_config->xkb.sel_layout = e_config_xkb_layout_dup(cl); + break; +} +if (!e_config->xkb.sel_layout) + eina_stringshare_replace(&e_config->xkb.selected_layout, NULL); } eina_stringshare_replace(&e_config->xkb.default_model, cfdata->default_model); @@ -266,8 +295,7 @@ _basic_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) e_config->xkb.used_options = eina_list_append(e_config->xkb.used_options, oc); } - e_xkb_update(-1); - _xkb_update_icon(0); + e_xkb_init(); e_config_save_queue(); return 1; --
[EGIT] [core/enlightenment] enlightenment-0.19 01/02: only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already occurred
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c4f31818956ee899202ca86dc3ba92960dea859c commit c4f31818956ee899202ca86dc3ba92960dea859c Author: Mike Blumenkrantz Date: Tue Sep 22 14:16:20 2015 -0400 only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already occurred allows xkb init to be called repeatedly --- src/bin/e_xkb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c index e80e542..13d7b20 100644 --- a/src/bin/e_xkb.c +++ b/src/bin/e_xkb.c @@ -31,7 +31,8 @@ _e_xkb_init_timer(void *data) E_API int e_xkb_init(void) { - E_EVENT_XKB_CHANGED = ecore_event_type_new(); + if (!E_EVENT_XKB_CHANGED) + E_EVENT_XKB_CHANGED = ecore_event_type_new(); if (e_config->xkb.dont_touch_my_damn_keyboard) return 1; e_xkb_update(-1); if (e_config->xkb.cur_layout) --
[EGIT] [core/enlightenment] master 01/02: only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already occurred
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f1faab997fcf88d5687feedb5856b2128189a66c commit f1faab997fcf88d5687feedb5856b2128189a66c Author: Mike Blumenkrantz Date: Tue Sep 22 14:16:20 2015 -0400 only init E_EVENT_XKB_CHANGED during xkb init if xkb init hasn't already occurred allows xkb init to be called repeatedly --- src/bin/e_xkb.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c index 24583fd..7c21221 100644 --- a/src/bin/e_xkb.c +++ b/src/bin/e_xkb.c @@ -32,7 +32,8 @@ _e_xkb_init_timer(void *data) E_API int e_xkb_init(void) { - E_EVENT_XKB_CHANGED = ecore_event_type_new(); + if (!E_EVENT_XKB_CHANGED) + E_EVENT_XKB_CHANGED = ecore_event_type_new(); if (e_config->xkb.dont_touch_my_damn_keyboard) return 1; e_xkb_update(-1); if (e_config->xkb.cur_layout) --
[EGIT] [core/enlightenment] master 02/02: attempt to maintain currently-selected kbd layout when modifying kbd list
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4ef9d9e5189a9fbd18fe0ec3516f49109f06d4a8 commit 4ef9d9e5189a9fbd18fe0ec3516f49109f06d4a8 Author: Mike Blumenkrantz Date: Tue Sep 22 14:17:35 2015 -0400 attempt to maintain currently-selected kbd layout when modifying kbd list the previous behavior would just set up the new layouts, resulting in the first layout in the list being applied. now it should be the case that if the current layout has not been deleted, it will continue to remain in effect; alternatively if the current layout has been modified, it's now more likely to be picked up and used --- src/modules/xkbswitch/e_mod_config.c | 32 ++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/modules/xkbswitch/e_mod_config.c b/src/modules/xkbswitch/e_mod_config.c index 28b00f1..4ac2eae 100644 --- a/src/modules/xkbswitch/e_mod_config.c +++ b/src/modules/xkbswitch/e_mod_config.c @@ -225,6 +225,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata) E_Config_XKB_Layout *cl, *nl; E_Config_XKB_Option *oc; E_XKB_Dialog_Option *od; + Eina_Bool cur_ok = EINA_FALSE, sel_ok = EINA_FALSE; EINA_LIST_FREE(e_config->xkb.used_layouts, cl) { @@ -243,6 +244,34 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata) e_config->xkb.used_layouts = eina_list_append(e_config->xkb.used_layouts, nl); +if (e_config_xkb_layout_eq(e_config->xkb.current_layout, nl)) + cur_ok = EINA_TRUE; +if (e_config_xkb_layout_eq(e_config->xkb.sel_layout, nl)) + sel_ok = EINA_TRUE; + } + if (!cur_ok) + { +E_FREE_FUNC(e_config->xkb.current_layout, e_config_xkb_layout_free); +EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl) + if (e_config->xkb.cur_layout == cl->name) +{ + e_config->xkb.current_layout = e_config_xkb_layout_dup(cl); + break; +} +if (!e_config->xkb.current_layout) + eina_stringshare_replace(&e_config->xkb.cur_layout, NULL); + } + if (!sel_ok) + { +E_FREE_FUNC(e_config->xkb.sel_layout, e_config_xkb_layout_free); +EINA_LIST_FOREACH(e_config->xkb.used_layouts, l, cl) + if (e_config->xkb.selected_layout == cl->name) +{ + e_config->xkb.sel_layout = e_config_xkb_layout_dup(cl); + break; +} +if (!e_config->xkb.sel_layout) + eina_stringshare_replace(&e_config->xkb.selected_layout, NULL); } eina_stringshare_replace(&e_config->xkb.default_model, cfdata->default_model); @@ -266,8 +295,7 @@ _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata) e_config->xkb.used_options = eina_list_append(e_config->xkb.used_options, oc); } - e_xkb_update(-1); - _xkb_update_icon(0); + e_xkb_init(); e_config_save_queue(); return 1; --
[EGIT] [core/enlightenment] master 01/01: fix shot module compile without x11 support
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=81ea29a715ba0c4f11a22dca3f416429ae9afbff commit 81ea29a715ba0c4f11a22dca3f416429ae9afbff Author: Mike Blumenkrantz Date: Tue Sep 22 13:54:28 2015 -0400 fix shot module compile without x11 support --- src/modules/shot/e_mod_main.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/modules/shot/e_mod_main.c b/src/modules/shot/e_mod_main.c index 5189a73..c7b9075 100644 --- a/src/modules/shot/e_mod_main.c +++ b/src/modules/shot/e_mod_main.c @@ -1020,6 +1020,11 @@ _wl_shot_now(E_Zone *zone, E_Client *ec, const char *params) static void _x_shot_now(E_Zone *zone, E_Client *ec, const char *params) { +#ifdef HAVE_WAYLAND_ONLY + (void)zone; + (void)ec; + (void)params; +#else Ecore_X_Image *img; unsigned char *src; unsigned int *dst; @@ -1117,6 +1122,7 @@ _x_shot_now(E_Zone *zone, E_Client *ec, const char *params) free(dst); ecore_x_image_free(img); +#endif } static Eina_Bool --
[EGIT] [core/enlightenment] master 01/01: update xkb settings and send xkb update event when calling e_xkb_layout_set()
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8b932b053e563ce2cf083a21e8fcaf21c14f3b96 commit 8b932b053e563ce2cf083a21e8fcaf21c14f3b96 Author: Mike Blumenkrantz Date: Tue Sep 22 13:44:18 2015 -0400 update xkb settings and send xkb update event when calling e_xkb_layout_set() resolves issue where setting a specific kbd would fail to make settings permanent as well as not propagating the kbd change to the rest of enlightenment fix T1810 --- src/bin/e_xkb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c index 7ea6ecc..24583fd 100644 --- a/src/bin/e_xkb.c +++ b/src/bin/e_xkb.c @@ -233,10 +233,13 @@ e_xkb_layout_set(const E_Config_XKB_Layout *cl) if (e_config_xkb_layout_eq(cl, cl2)) { INF("Setting keyboard layout: %s|%s|%s", cl2->name, cl2->model, cl2->variant); + eina_stringshare_replace(&e_config->xkb.cur_layout, cl->name); + eina_stringshare_replace(&e_config->xkb.selected_layout, cl->name); e_xkb_update(cur_group); break; } } + _e_xkb_update_event(e_config->xkb.cur_group); e_config_save_queue(); } --
[EGIT] [core/enlightenment] enlightenment-0.19 01/01: update xkb settings and send xkb update event when calling e_xkb_layout_set()
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=cce8a47a7e4e0a01cce77d20fab22416b4f32b9c commit cce8a47a7e4e0a01cce77d20fab22416b4f32b9c Author: Mike Blumenkrantz Date: Tue Sep 22 13:44:18 2015 -0400 update xkb settings and send xkb update event when calling e_xkb_layout_set() resolves issue where setting a specific kbd would fail to make settings permanent as well as not propagating the kbd change to the rest of enlightenment fix T1810 --- src/bin/e_xkb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c index 9847419..e80e542 100644 --- a/src/bin/e_xkb.c +++ b/src/bin/e_xkb.c @@ -231,10 +231,13 @@ e_xkb_layout_set(const E_Config_XKB_Layout *cl) if (e_config_xkb_layout_eq(cl, cl2)) { INF("Setting keyboard layout: %s|%s|%s", cl2->name, cl2->model, cl2->variant); + eina_stringshare_replace(&e_config->xkb.cur_layout, cl->name); + eina_stringshare_replace(&e_config->xkb.selected_layout, cl->name); e_xkb_update(cur_group); break; } } + _e_xkb_update_event(e_config->xkb.cur_group); e_config_save_queue(); } --
[EGIT] [core/efl] master 01/01: edje: return immediately when deleting a color class if no users exist
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=57d6231b3aee7e9e74b6d6e1d929d710b7ac9ef6 commit 57d6231b3aee7e9e74b6d6e1d929d710b7ac9ef6 Author: Mike Blumenkrantz Date: Tue Sep 22 13:20:06 2015 -0400 edje: return immediately when deleting a color class if no users exist --- src/lib/edje/edje_util.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index c0bb3f5..c238c13 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -735,6 +735,7 @@ edje_color_class_del(const char *color_class) free(cc); members = eina_hash_find(_edje_color_class_member_hash, color_class); + if (!members) return; it = eina_hash_iterator_data_new(members); EINA_ITERATOR_FOREACH(it, er) { --
[EGIT] [core/enlightenment] enlightenment-0.19 01/02: do not emit client iconify signal when reapplying compositor theme
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7a142970cbc1fc6766f2c4b81a6c3f9d91c538fe commit 7a142970cbc1fc6766f2c4b81a6c3f9d91c538fe Author: Mike Blumenkrantz Date: Tue Sep 22 13:07:15 2015 -0400 do not emit client iconify signal when reapplying compositor theme this has no effect other than breaking the animation counter for the client and preventing it from being deleted --- src/bin/e_comp_object.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 772f8e0..205130c 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -590,8 +590,9 @@ _e_comp_object_shadow_setup(E_Comp_Object *cw) else e_comp_object_signal_emit(cw->smart_obj, "e,state,hidden", "e"); - if (cw->ec->iconic) - e_comp_object_signal_emit(cw->smart_obj, "e,action,iconify", "e"); + /* breaks animation counter */ + //if (cw->ec->iconic) + //e_comp_object_signal_emit(cw->smart_obj, "e,action,iconify", "e"); if (!cw->zoomap_disabled) e_zoomap_child_set(cw->zoomobj, NULL); if (cw->frame_object) --
[EGIT] [core/enlightenment] enlightenment-0.19 02/02: calculate comp object visibility regardless of pending damages
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=52c66793f13e39e895ab6d839bbf9cc333d6515f commit 52c66793f13e39e895ab6d839bbf9cc333d6515f Author: Mike Blumenkrantz Date: Tue Sep 22 13:14:51 2015 -0400 calculate comp object visibility regardless of pending damages in the case of clients on non-visible vdesks, this improves the reliability of mirrored rendering --- src/bin/e_comp_object.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 205130c..52b1e8f 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3281,6 +3281,7 @@ e_comp_object_dirty(Evas_Object *obj) if (!dirty) evas_object_image_data_set(o, NULL); evas_object_image_size_set(o, w, h); +visible |= evas_object_visible_get(o); } if (!dirty) { @@ -3294,10 +3295,7 @@ e_comp_object_dirty(Evas_Object *obj) RENDER_DEBUG("UPDATE ADD [%p]: %d %d %dx%d", cw->ec, r->x, r->y, r->w, r->h); evas_object_image_data_update_add(cw->obj, r->x, r->y, r->w, r->h); EINA_LIST_FOREACH(cw->obj_mirror, l, o) - { - evas_object_image_data_update_add(o, r->x, r->y, r->w, r->h); - visible |= evas_object_visible_get(o); - } + evas_object_image_data_update_add(o, r->x, r->y, r->w, r->h); if (cw->pending_updates) eina_tiler_rect_add(cw->pending_updates, r); } --
[EGIT] [core/enlightenment] master 01/01: calculate comp object visibility regardless of pending damages
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4173bd9977f4d1c70cf4a9ef659191e27f6751af commit 4173bd9977f4d1c70cf4a9ef659191e27f6751af Author: Mike Blumenkrantz Date: Tue Sep 22 13:14:51 2015 -0400 calculate comp object visibility regardless of pending damages in the case of clients on non-visible vdesks, this improves the reliability of mirrored rendering --- src/bin/e_comp_object.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 7b62b42..55c6dc4 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -3432,6 +3432,7 @@ e_comp_object_dirty(Evas_Object *obj) if (!dirty) evas_object_image_data_set(o, NULL); evas_object_image_size_set(o, w, h); +visible |= evas_object_visible_get(o); } if (!dirty) { @@ -3445,10 +3446,7 @@ e_comp_object_dirty(Evas_Object *obj) RENDER_DEBUG("UPDATE ADD [%p]: %d %d %dx%d", cw->ec, rect->x, rect->y, rect->w, rect->h); evas_object_image_data_update_add(cw->obj, rect->x, rect->y, rect->w, rect->h); EINA_LIST_FOREACH(cw->obj_mirror, ll, o) - { - evas_object_image_data_update_add(o, rect->x, rect->y, rect->w, rect->h); - visible |= evas_object_visible_get(o); - } + evas_object_image_data_update_add(o, rect->x, rect->y, rect->w, rect->h); if (cw->pending_updates) eina_tiler_rect_add(cw->pending_updates, rect); } --
[EGIT] [core/enlightenment] master 02/02: do not emit client iconify signal when reapplying compositor theme
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8399ab4ff95a8c66befc13e87efcaa33158bab1a commit 8399ab4ff95a8c66befc13e87efcaa33158bab1a Author: Mike Blumenkrantz Date: Tue Sep 22 13:07:15 2015 -0400 do not emit client iconify signal when reapplying compositor theme this has no effect other than breaking the animation counter for the client and preventing it from being deleted --- src/bin/e_comp_object.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 725e0e3..7b62b42 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -634,8 +634,9 @@ _e_comp_object_shadow_setup(E_Comp_Object *cw) else e_comp_object_signal_emit(cw->smart_obj, "e,state,hidden", "e"); - if (cw->ec->iconic) - e_comp_object_signal_emit(cw->smart_obj, "e,action,iconify", "e"); + /* breaks animation counter */ + //if (cw->ec->iconic) + //e_comp_object_signal_emit(cw->smart_obj, "e,action,iconify", "e"); if (!cw->zoomap_disabled) e_zoomap_child_set(cw->zoomobj, NULL); if (cw->frame_object) --
[EGIT] [core/enlightenment] master 01/02: Revert "Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it"""
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2373b69c61d7d6ab74675a4facff54601831ce9a commit 2373b69c61d7d6ab74675a4facff54601831ce9a Author: Mike Blumenkrantz Date: Tue Sep 22 12:54:10 2015 -0400 Revert "Revert "Revert "deskmirror - fix dangling reference to mirror by refcounting it""" This reverts commit 6bef668a8fb37104f1e9e4bb1bb0dd379cb68ef5. --- src/bin/e_deskmirror.c | 23 +-- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/bin/e_deskmirror.c b/src/bin/e_deskmirror.c index 4abc0b3..3efe066 100644 --- a/src/bin/e_deskmirror.c +++ b/src/bin/e_deskmirror.c @@ -41,7 +41,6 @@ typedef struct Mirror Evas_Object *comp_object; Evas_Object *mirror; int x, y, w, h; - int ref; Eina_Bool added : 1; } Mirror; @@ -111,20 +110,6 @@ _mirror_scale_set(Mirror *m, float sc) } static void -_mirror_ref(Mirror *m) -{ - m->ref++; -} - -static void -_mirror_unref(Mirror *m) -{ - m->ref--; - if (m->ref > 0) return; - free(m); -} - -static void _e_deskmirror_smart_reconfigure(E_Smart_Data *sd) { e_layout_freeze(sd->layout); @@ -352,10 +337,7 @@ _mirror_client_smart_del(Evas_Object *obj) evas_object_smart_callback_del_full(mb->m->ec->frame, "shadow_change", _mirror_client_shadow_change, mb->frame); } evas_object_del(mb->frame); - mb->frame = NULL; evas_object_del(mb->mirror); - mb->mirror = NULL; - _mirror_unref(mb->m); free(mb); } @@ -492,13 +474,12 @@ _e_deskmirror_mirror_del_hash(Mirror *m) evas_object_smart_callback_del_full(m->comp_object, "frame_recalc_done", _e_deskmirror_mirror_frame_recalc_cb, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m); evas_object_del(m->mirror); - m->mirror = NULL; evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_comp_object_show, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_HIDE, (Evas_Object_Event_Cb)_comp_object_hide, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESTACK, (Evas_Object_Event_Cb)_comp_object_stack, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESIZE, (Evas_Object_Event_Cb)_comp_object_configure, m); evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_MOVE, (Evas_Object_Event_Cb)_comp_object_configure, m); - _mirror_unref(m); + free(m); } static Evas_Object * @@ -511,7 +492,6 @@ _mirror_client_new(Mirror *m) o = evas_object_smart_add(m->sd->e, _mirror_client_smart); mb = evas_object_smart_data_get(o); mb->m = m; - _mirror_ref(m); mb->frame = edje_object_add(m->sd->e); evas_object_name_set(mb->frame, "mirror_border"); _mirror_client_theme_setup(mb, mb->frame); @@ -676,7 +656,6 @@ _e_deskmirror_mirror_add(E_Smart_Data *sd, Evas_Object *obj) m->ec = ec; m->sd = sd; m->mirror = o; - m->ref = 1; evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_comp_object_show, m); evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, (Evas_Object_Event_Cb)_comp_object_hide, m); evas_object_event_callback_add(obj, EVAS_CALLBACK_RESTACK, (Evas_Object_Event_Cb)_comp_object_stack, m); --
[EGIT] [core/enlightenment] enlightenment-0.19 02/04: only unpopulate a shelf when applying new settings if the shelf won't be recreated
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ff1408c040cb5637304d8d434addff7f78659bb7 commit ff1408c040cb5637304d8d434addff7f78659bb7 Author: Mike Blumenkrantz Date: Tue Sep 22 12:36:41 2015 -0400 only unpopulate a shelf when applying new settings if the shelf won't be recreated --- src/bin/e_int_shelf_config.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_int_shelf_config.c b/src/bin/e_int_shelf_config.c index 236cdd3..6536325 100644 --- a/src/bin/e_int_shelf_config.c +++ b/src/bin/e_int_shelf_config.c @@ -347,7 +347,8 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) } } - e_gadcon_unpopulate(cfdata->es->gadcon); + if (!recreate) + e_gadcon_unpopulate(cfdata->es->gadcon); if (!cfdata->escfg->style) { cfdata->escfg->style = eina_stringshare_ref(cfdata->style); --
[EGIT] [core/enlightenment] master 03/04: clamp client geometry to zone during geometry calc
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f3edf38e49dc56aed9a5d062726804ce738a84e2 commit f3edf38e49dc56aed9a5d062726804ce738a84e2 Author: Mike Blumenkrantz Date: Tue Sep 22 12:37:14 2015 -0400 clamp client geometry to zone during geometry calc somehow it was possible for client sizes to overflow the zone geometry here which would end up breaking maximization limits and result in clients not respecting various geometry boundaries --- src/bin/e_maximize.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_maximize.c b/src/bin/e_maximize.c index 7a574d0..8399af9 100644 --- a/src/bin/e_maximize.c +++ b/src/bin/e_maximize.c @@ -178,8 +178,8 @@ _e_maximize_client_rects_fill(E_Client *ec, Eina_List *rects, int *x1, int *yy1, bx = E_CLAMP(ec->x, ec->zone->x, ec->zone->x + ec->zone->w); by = E_CLAMP(ec->y, ec->zone->y, ec->zone->y + ec->zone->h); -bw = ec->w; -bh = ec->h; +bw = E_CLAMP(ec->w, 0, ec->zone->w); +bh = E_CLAMP(ec->h, 0, ec->zone->h); if ((dir & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL) _e_maximize_client_rects_fill_horiz(ec, rects, x1, x2, &bx, &by, &bw, &bh); --
[EGIT] [core/enlightenment] enlightenment-0.19 01/04: block gadcon thaw on unpopulate when gadcon is deleted
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8a1634266c3094098301c516267b95daa68a86eb commit 8a1634266c3094098301c516267b95daa68a86eb Author: Mike Blumenkrantz Date: Tue Sep 22 12:36:12 2015 -0400 block gadcon thaw on unpopulate when gadcon is deleted saves a huge amount of unnecessary calc time --- src/bin/e_gadcon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c index 2dd8a70..91177d8 100644 --- a/src/bin/e_gadcon.c +++ b/src/bin/e_gadcon.c @@ -611,7 +611,8 @@ e_gadcon_unpopulate(E_Gadcon *gc) if (gc->awaiting_classes) eina_hash_free(gc->awaiting_classes); gc->awaiting_classes = NULL; - if (gc->o_container && (!stopping)) e_gadcon_layout_thaw(gc->o_container); + if (gc->o_container && (!stopping) && (!e_object_is_del(E_OBJECT(gc + e_gadcon_layout_thaw(gc->o_container); } E_API void --
[EGIT] [core/enlightenment] master 01/04: block gadcon thaw on unpopulate when gadcon is deleted
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4eaeabc1c306b45ee9bc7457ca8adb1c48b4d026 commit 4eaeabc1c306b45ee9bc7457ca8adb1c48b4d026 Author: Mike Blumenkrantz Date: Tue Sep 22 12:36:12 2015 -0400 block gadcon thaw on unpopulate when gadcon is deleted saves a huge amount of unnecessary calc time --- src/bin/e_gadcon.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c index 9e8cdf0..336b32f 100644 --- a/src/bin/e_gadcon.c +++ b/src/bin/e_gadcon.c @@ -618,7 +618,8 @@ e_gadcon_unpopulate(E_Gadcon *gc) if (gc->awaiting_classes) eina_hash_free(gc->awaiting_classes); gc->awaiting_classes = NULL; - if (gc->o_container && (!stopping)) e_gadcon_layout_thaw(gc->o_container); + if (gc->o_container && (!stopping) && (!e_object_is_del(E_OBJECT(gc + e_gadcon_layout_thaw(gc->o_container); } E_API void --
[EGIT] [core/enlightenment] enlightenment-0.19 04/04: redo client maximization when a non-overlap shelf changes geometry
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8087b84829c7931e9dd2ef0fcd20ee572005e637 commit 8087b84829c7931e9dd2ef0fcd20ee572005e637 Author: Mike Blumenkrantz Date: Tue Sep 22 12:42:39 2015 -0400 redo client maximization when a non-overlap shelf changes geometry this fixes the annoying case of needing to remaximize all windows when a shelf resizes in order to account for new geometry --- src/bin/e_shelf.c | 24 1 file changed, 24 insertions(+) diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index 4c63e02..ed6a490 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -86,6 +86,24 @@ static Ecore_Event_Handler *_e_shelf_gadcon_populate_handler = NULL; static Ecore_Event_Handler *_e_shelf_module_init_end_handler = NULL; static Ecore_Event_Handler *_e_shelf_zone_moveresize_handler = NULL; +static void +_e_shelf_remaximize(E_Shelf *es) +{ + E_Client *ec; + + if (es->cfg->overlap) return; + E_CLIENT_FOREACH(e_comp_get(es->zone), ec) + { +E_Maximize max = ec->maximized; + +if (!ec->maximized) continue; +if ((!ec->sticky) && (!e_shelf_desk_visible(es, ec->desk ?: e_desk_current_get(es->zone + continue; +e_client_unmaximize(ec, ec->maximized); +e_client_maximize(ec, max); + } +} + /* externally accessible functions */ EINTERN int e_shelf_init(void) @@ -472,9 +490,11 @@ e_shelf_move(E_Shelf *es, int x, int y) { E_OBJECT_CHECK(es); E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE); + if ((es->x == x) && (es->y == y)) return; es->x = x; es->y = y; evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y); + _e_shelf_remaximize(es); } E_API void @@ -482,9 +502,11 @@ e_shelf_resize(E_Shelf *es, int w, int h) { E_OBJECT_CHECK(es); E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE); + if ((es->w == w) && (es->h == h)) return; es->w = w; es->h = h; evas_object_resize(es->comp_object, es->w, es->h); + _e_shelf_remaximize(es); } E_API void @@ -492,12 +514,14 @@ e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int h) { E_OBJECT_CHECK(es); E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE); + if ((es->x == x) && (es->y == y) && (es->w == w) && (es->h == h)) return; es->x = x; es->y = y; es->w = w; es->h = h; evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y); evas_object_resize(es->comp_object, es->w, es->h); + _e_shelf_remaximize(es); } E_API void --
[EGIT] [core/enlightenment] enlightenment-0.19 03/04: clamp client geometry to zone during geometry calc
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5ae61c954eebfddf6e8c32edc4546b88d0c7dd50 commit 5ae61c954eebfddf6e8c32edc4546b88d0c7dd50 Author: Mike Blumenkrantz Date: Tue Sep 22 12:37:14 2015 -0400 clamp client geometry to zone during geometry calc somehow it was possible for client sizes to overflow the zone geometry here which would end up breaking maximization limits and result in clients not respecting various geometry boundaries --- src/bin/e_maximize.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_maximize.c b/src/bin/e_maximize.c index 74aa4d7..fd12f67 100644 --- a/src/bin/e_maximize.c +++ b/src/bin/e_maximize.c @@ -178,8 +178,8 @@ _e_maximize_client_rects_fill(E_Client *ec, Eina_List *rects, int *x1, int *yy1, bx = E_CLAMP(ec->x, ec->zone->x, ec->zone->x + ec->zone->w); by = E_CLAMP(ec->y, ec->zone->y, ec->zone->y + ec->zone->h); -bw = ec->w; -bh = ec->h; +bw = E_CLAMP(ec->w, 0, ec->zone->w); +bh = E_CLAMP(ec->h, 0, ec->zone->h); if ((dir & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL) _e_maximize_client_rects_fill_horiz(ec, rects, x1, x2, &bx, &by, &bw, &bh); --
[EGIT] [core/enlightenment] master 02/04: only unpopulate a shelf when applying new settings if the shelf won't be recreated
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=37c146435d22061e4db10f641cd99c71a4bb869f commit 37c146435d22061e4db10f641cd99c71a4bb869f Author: Mike Blumenkrantz Date: Tue Sep 22 12:36:41 2015 -0400 only unpopulate a shelf when applying new settings if the shelf won't be recreated --- src/bin/e_int_shelf_config.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_int_shelf_config.c b/src/bin/e_int_shelf_config.c index 6c21944..1771369 100644 --- a/src/bin/e_int_shelf_config.c +++ b/src/bin/e_int_shelf_config.c @@ -347,7 +347,8 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) } } - e_gadcon_unpopulate(cfdata->es->gadcon); + if (!recreate) + e_gadcon_unpopulate(cfdata->es->gadcon); if (!cfdata->escfg->style) { cfdata->escfg->style = eina_stringshare_ref(cfdata->style); --
[EGIT] [core/enlightenment] master 04/04: redo client maximization when a non-overlap shelf changes geometry
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=32aa8127012b2403bf8585cdf0d99d9a7ca7a194 commit 32aa8127012b2403bf8585cdf0d99d9a7ca7a194 Author: Mike Blumenkrantz Date: Tue Sep 22 12:42:39 2015 -0400 redo client maximization when a non-overlap shelf changes geometry this fixes the annoying case of needing to remaximize all windows when a shelf resizes in order to account for new geometry --- src/bin/e_shelf.c | 24 1 file changed, 24 insertions(+) diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index d138778..d88360e 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -86,6 +86,24 @@ static Ecore_Event_Handler *_e_shelf_gadcon_populate_handler = NULL; static Ecore_Event_Handler *_e_shelf_module_init_end_handler = NULL; static Ecore_Event_Handler *_e_shelf_zone_moveresize_handler = NULL; +static void +_e_shelf_remaximize(E_Shelf *es) +{ + E_Client *ec; + + if (es->cfg->overlap) return; + E_CLIENT_FOREACH(ec) + { +E_Maximize max = ec->maximized; + +if (!ec->maximized) continue; +if ((!ec->sticky) && (!e_shelf_desk_visible(es, ec->desk ?: e_desk_current_get(es->zone + continue; +e_client_unmaximize(ec, ec->maximized); +e_client_maximize(ec, max); + } +} + /* externally accessible functions */ EINTERN int e_shelf_init(void) @@ -472,9 +490,11 @@ e_shelf_move(E_Shelf *es, int x, int y) { E_OBJECT_CHECK(es); E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE); + if ((es->x == x) && (es->y == y)) return; es->x = x; es->y = y; evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y); + _e_shelf_remaximize(es); } E_API void @@ -482,9 +502,11 @@ e_shelf_resize(E_Shelf *es, int w, int h) { E_OBJECT_CHECK(es); E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE); + if ((es->w == w) && (es->h == h)) return; es->w = w; es->h = h; evas_object_resize(es->comp_object, es->w, es->h); + _e_shelf_remaximize(es); } E_API void @@ -492,12 +514,14 @@ e_shelf_move_resize(E_Shelf *es, int x, int y, int w, int h) { E_OBJECT_CHECK(es); E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE); + if ((es->x == x) && (es->y == y) && (es->w == w) && (es->h == h)) return; es->x = x; es->y = y; es->w = w; es->h = h; evas_object_move(es->comp_object, es->zone->x + es->x, es->zone->y + es->y); evas_object_resize(es->comp_object, es->w, es->h); + _e_shelf_remaximize(es); } E_API void --
[EGIT] [core/enlightenment] enlightenment-0.19 02/02: unset E_Client->want/take_focus flags during client eval
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e2dfd33496702a9d95b25d63d7c99132a80babd2 commit e2dfd33496702a9d95b25d63d7c99132a80babd2 Author: Mike Blumenkrantz Date: Tue Sep 22 12:02:13 2015 -0400 unset E_Client->want/take_focus flags during client eval ref 4a33cd7ba0c51b911b1d7845411d2b70e01a3d55 --- src/bin/e_client.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 8670118..ac59968 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2208,8 +2208,12 @@ _e_client_eval(E_Client *ec) ((!ec->zone) || e_client_util_desk_visible(ec, e_desk_current_get(ec->zone))) && ((ec->take_focus) || (ec->want_focus))) { +ec->take_focus = 0; if ((e_config->focus_setting == E_FOCUS_NEW_WINDOW) || (ec->want_focus)) - e_client_focus_set_with_pointer(ec); + { + ec->want_focus = 0; + e_client_focus_set_with_pointer(ec); + } else if (ec->dialog) { if ((e_config->focus_setting == E_FOCUS_NEW_DIALOG) || --
[EGIT] [core/enlightenment] enlightenment-0.19 01/02: e - fm - flush all evas caches to get rid of open file handles b4 umount
discomfitor pushed a commit to branch enlightenment-0.19. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8f69b497b2140480aa7045cb60994a05a6a6ecfb commit 8f69b497b2140480aa7045cb60994a05a6a6ecfb Author: Carsten Haitzler (Rasterman) Date: Tue Sep 22 13:17:10 2015 +0900 e - fm - flush all evas caches to get rid of open file handles b4 umount this should fix open file handles on unmount by flushing caches first. not great, but works. long-term have evas not keep file handles open for 0 refcount cached items. --- src/bin/e_fm.c | 9 + 1 file changed, 9 insertions(+) diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c index 67ca452..593744b 100644 --- a/src/bin/e_fm.c +++ b/src/bin/e_fm.c @@ -2611,6 +2611,15 @@ _e_fm2_client_unmount(const char *udi) _e_fm2_client_get(); + elm_cache_all_flush(); + edje_file_cache_flush(); + edje_collection_cache_flush(); + if (e_comp_get(NULL)) + { +evas_image_cache_flush(e_comp_get(NULL)->evas); +evas_font_cache_flush(e_comp_get(NULL)->evas); + } + return _e_fm_client_send_new(E_FM_OP_UNMOUNT, (void *)d, l); } --
[EGIT] [core/enlightenment] master 01/01: unset E_Client->want/take_focus flags during client eval
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ae919fe716f39cef7f6ca3fc517963b733efc3f4 commit ae919fe716f39cef7f6ca3fc517963b733efc3f4 Author: Mike Blumenkrantz Date: Tue Sep 22 12:02:13 2015 -0400 unset E_Client->want/take_focus flags during client eval ref 4a33cd7ba0c51b911b1d7845411d2b70e01a3d55 --- src/bin/e_client.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 669712d..664a8b2 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2207,8 +2207,12 @@ _e_client_eval(E_Client *ec) ((!ec->zone) || e_client_util_desk_visible(ec, e_desk_current_get(ec->zone))) && ((ec->take_focus) || (ec->want_focus))) { +ec->take_focus = 0; if ((e_config->focus_setting == E_FOCUS_NEW_WINDOW) || (ec->want_focus)) - e_client_focus_set_with_pointer(ec); + { + ec->want_focus = 0; + e_client_focus_set_with_pointer(ec); + } else if (ec->dialog) { if ((e_config->focus_setting == E_FOCUS_NEW_DIALOG) || --
[EGIT] [tools/abi_checks] master 01/01: Added scripts to easily generate and compare dumps.
tasn pushed a commit to branch master. http://git.enlightenment.org/tools/abi_checks.git/commit/?id=29cb2c77b7179136bc0e8d8a045f30885b6ced1e commit 29cb2c77b7179136bc0e8d8a045f30885b6ced1e Author: Tom Hacohen Date: Tue Sep 22 16:01:18 2015 +0100 Added scripts to easily generate and compare dumps. --- README | 6 +++--- cmpdump.sh | 12 gendump.sh | 11 +++ 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/README b/README index 1727dc3..a103d4c 100644 --- a/README +++ b/README @@ -1,6 +1,6 @@ Configs and dumps for http://ispras.linuxbase.org/index.php/ABI_compliance_checker Generation example: -1. Generate the dump for the latest version: abi-compliance-checker -l elementary -dump elementary-1.10.0.xml -2. Generate the report: abi-compliance-checker -l elementary -old abi_dumps/elementary/elementary_1.9.4.abi.tar.gz -new abi_dumps/elementary/elementary_1.10.0.abi.tar.gz -Where abi_dumps/elementary/elementary_1.9.4.abi.tar.gz is a previously created dump for the old release we'd like to compare to. +1. Generate the dump for the latest version: ./gendump.sh elementary 1.10.0 +2. Generate the report: ./cmpdump.sh elementary 1.9.4 1.10.0 +Assuming abi_dumps/elementary/elementary_1.9.4.abi.tar.gz and one for 1.10.0 exist. diff --git a/cmpdump.sh b/cmpdump.sh new file mode 100755 index 000..9e3b6f8 --- /dev/null +++ b/cmpdump.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +if [ "$#" -ne 3 ]; then +echo "Usage: $0 " +exit 1 +fi + +libname="$1" +liboldver="$2" +libnewver="$3" + +abi-compliance-checker -l "${libname}" -old "abi_dumps/${libname}/${libname}_${liboldver}.abi.tar.gz" -new "abi_dumps/${libname}/${libname}_${libnewver}.abi.tar.gz" diff --git a/gendump.sh b/gendump.sh new file mode 100755 index 000..b83852f --- /dev/null +++ b/gendump.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ "$#" -ne 2 ]; then +echo "Usage: $0 " +exit 1 +fi + +libname="$1" +libver="$2" + +abi-compliance-checker -l "${libname}" -dump "${libname}-${libver}.xml" --
[EGIT] [core/efl] master 01/01: Ector software gradient: Fix cast from integer to pointer of wrong type.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=be87d3bf1df7c32378a23aba623b81610397feae commit be87d3bf1df7c32378a23aba623b81610397feae Author: Tom Hacohen Date: Tue Sep 22 15:45:04 2015 +0100 Ector software gradient: Fix cast from integer to pointer of wrong type. When casting pointer<->int, always use uintptr_t, not just int. @fix --- src/lib/ector/software/ector_software_gradient.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ector/software/ector_software_gradient.c b/src/lib/ector/software/ector_software_gradient.c index d6ad207..707c345 100644 --- a/src/lib/ector/software/ector_software_gradient.c +++ b/src/lib/ector/software/ector_software_gradient.c @@ -107,7 +107,7 @@ static void loop_break(unsigned int *buffer, int length, int *lprealign, int *lby4 , int *lremaining) { int l1=0,l2=0,l3=0; - while ((int)buffer & 0xF) + while ((uintptr_t)buffer & 0xF) buffer++ , l1++; if(length <= l1) --
[EGIT] [core/efl] master 01/01: Edje_entry: emit "cursor, changed, manual" for Home/End/PgUp/PgDown.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=278b20954a7583d42bc93df0257cd84f0646932e commit 278b20954a7583d42bc93df0257cd84f0646932e Author: Mykyta Biliavskyi Date: Tue Sep 22 15:12:47 2015 +0100 Edje_entry: emit "cursor,changed,manual" for Home/End/PgUp/PgDown. Summary: The keys Home/End/PgUp/PgDown are changes the entry cursor position in the same way as arrow keys. For unified behavior callback "cursor,changed,manual", added emitting signal for those keys events. Reviewers: tasn, cedric, herdsman, thiepha Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D3055 --- src/lib/edje/edje_entry.c | 4 1 file changed, 4 insertions(+) diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index 237e49a..e32a52e 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -1686,6 +1686,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, if (shift) _sel_extend(ed, en->cursor, rp->object, en); } _edje_emit(ed, "entry,key,home", rp->part->name); +_edje_emit(ed, "cursor,changed,manual", rp->part->name); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if ((!alt) && @@ -1707,6 +1708,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, if (shift) _sel_extend(ed, en->cursor, rp->object, en); } _edje_emit(ed, "entry,key,end", rp->part->name); +_edje_emit(ed, "cursor,changed,manual", rp->part->name); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if ((control) && (!shift) && (!strcmp(ev->keyname, "v"))) @@ -1830,6 +1832,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, else _sel_clear(ed, en->cursor, rp->object, en); } _edje_emit(ed, "entry,key,pgup", rp->part->name); +_edje_emit(ed, "cursor,changed,manual", rp->part->name); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if (!strcmp(ev->key, "Next") || @@ -1853,6 +1856,7 @@ _edje_key_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, else _sel_clear(ed, en->cursor, rp->object, en); } _edje_emit(ed, "entry,key,pgdn", rp->part->name); +_edje_emit(ed, "cursor,changed,manual", rp->part->name); ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD; } else if ((!strcmp(ev->key, "Return")) || (!strcmp(ev->key, "KP_Enter"))) --
[EGIT] [website/www] master 01/01: e www - shot - upgrade max shot size to 20m
raster pushed a commit to branch master. http://git.enlightenment.org/website/www.git/commit/?id=3c1136577cf33497ffa4adcf3eed0fccc9b2c7da commit 3c1136577cf33497ffa4adcf3eed0fccc9b2c7da Author: Carsten Haitzler (Rasterman) Date: Tue Sep 22 19:09:54 2015 +0900 e www - shot - upgrade max shot size to 20m --- public_html/shot.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/public_html/shot.php b/public_html/shot.php index 0ef7d64..a963605 100644 --- a/public_html/shot.php +++ b/public_html/shot.php @@ -48,8 +48,8 @@ function dothumb($f, $thumb, $new_w, $new_h) { } ob_start(); - limit - 6 mb. -$data = file_get_contents('php://input', NULL, NULL, 0, 6 * 1024 * 1024); + limit - 20 mb. +$data = file_get_contents('php://input', NULL, NULL, 0, 20 * 1024 * 1024); magic jpeg signature $jpeg_match = "\xff\xd8\xff\xe0"; $jpeg_magic = substr($data, 0, 4); --
[EGIT] [core/efl] master 01/01: evas sw generic - comment NULL methods so we know what they should be
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0369168a443b2f26020fa745891fe10649a285fd commit 0369168a443b2f26020fa745891fe10649a285fd Author: Carsten Haitzler (Rasterman) Date: Tue Sep 22 18:48:17 2015 +0900 evas sw generic - comment NULL methods so we know what they should be --- src/modules/evas/engines/software_generic/evas_engine.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 4b221dd..8dc64f0 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -3799,10 +3799,10 @@ eng_ector_end(void *data EINA_UNUSED, void *context EINA_UNUSED, Ector_Surface * static Evas_Func func = { - NULL, - NULL, - NULL, - NULL, + NULL, // eng_info + NULL, // eng_info_free + NULL, // eng_setup + NULL, // eng_output_free eng_output_resize, eng_output_tile_size_set, eng_output_redraws_rect_add, @@ -3854,7 +3854,7 @@ static Evas_Func func = eng_image_free, eng_image_size_get, eng_image_size_set, - NULL, + NULL, // eng_image_stride_get eng_image_dirty_region, eng_image_data_get, eng_image_data_put, --
[EGIT] [tools/enventor] master 01/01: about: add one empty line to align form.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=ebe037c8a38b467d17316ae7bfaf0c3691bacdd4 commit ebe037c8a38b467d17316ae7bfaf0c3691bacdd4 Author: ChunEon Park Date: Tue Sep 22 16:35:24 2015 +0900 about: add one empty line to align form. --- data/about/ABOUT | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/data/about/ABOUT b/data/about/ABOUT index d5d8246..49d15d5 100644 --- a/data/about/ABOUT +++ b/data/about/ABOUT @@ -7,7 +7,8 @@ Please see next sites for more information on these. http://www.enlightenment.org https://phab.enlightenment.org/w/projects/enventor/ http://www.openhub.net/p/enventor - + + [Short Cut Keys] Esc - Open/Close Menu --