Hello community,

here is the log from the commit of package enlightenment for openSUSE:Factory 
checked in at 2016-04-12 19:35:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/enlightenment (Old)
 and      /work/SRC/openSUSE:Factory/.enlightenment.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "enlightenment"

Changes:
--------
--- /work/SRC/openSUSE:Factory/enlightenment/enlightenment.changes      
2016-03-04 19:30:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.enlightenment.new/enlightenment.changes 
2016-04-12 19:35:34.000000000 +0200
@@ -1,0 +2,79 @@
+Fri Apr  8 05:35:30 UTC 2016 - [email protected]
+
+- Recommend Pulse X11 Intergration for audio out of the box 
+  boo#972912
+- Make services localonly 
+
+-------------------------------------------------------------------
+Fri Apr  8 03:02:37 UTC 2016 - [email protected]
+
+- Fix crashes
+  * fix-upstream-dont-add-deleted-clients-to-tasks.patch
+  * fix-upstream-remove-deleted-clients-on-repop-tasks.patch
+- Fix systray issues particuarlly with KDE5 apps
+  * fix-upstream-systray-handle-kde5-apps.patch
+  * fix-upstream-systray-use-canvas-coords.patch
+- Reduce Memory usage by sharing icons.
+  * enhance-upstream-share-icons.patch
+
+-------------------------------------------------------------------
+Wed Mar  9 19:46:44 UTC 2016 - [email protected]
+
+- Enlightenment 0.20.6
+  Tickets Addressed:
+     T3152
+     T3208
+     T3210
+  Multiple wayland issues fixed
+  Other issues listed below
+    e – efm: fix op registry listener add and dont use eina_error
+    e xkbswitch: don’t free layouts that are just pointed to in instances
+    don’t have to hook the ecore_evas resize callback here as that should be 
handled by elm now
+    Move pixmap free to client free from client destroy
+    Render deleted objects as long as they still have a pixmap
+    Track whether objects are on the post_updates list or not
+    Track whether a render is in progress or not
+    clamp minimum shelf size to 20px in shelf config
+    do not perform special case position adjustment for re_manage clients
+    do not clamp comp object input regions to 0,0
+    improve enforcement of shelf autohide-related window adjustment
+    reshuffle x11 comp init to cleanup on failure cases
+    pre-remove pixmap from x11 clients during del hook
+    enable comp object image data refresh if a dirty call is made with no 
damages
+    remove some unused variables
+    make bgpreview create vdesk config dialog on mouse up instead of mouse down
+    do not decrement e_comp->new_clients for non-new clients during 
_e_client_eval
+    update winlist ui when using directional window selection
+    force changed when adding or removing keyboard layouts in config
+    disable emotion_shutdown during shutdown procedure
+    use strbufs instead of strcat in fwin navbars
+    do not set XCURSOR_PATH variable if re-setting existing value
+    remove security hole in e_start_main
+    remove DISPLAY usage from E_IPC_SOCKET value
+    remove multihead env var setting in e_exec
+    strcpy -> strncpy in evry files plugin
+    use strbuf instead of strcat in keybinding string synthesis
+    use strbuf instead of strcat in edgebinding string synthesis
+    use dblequal for double comparisons in edgebindings config
+    replace static buffer usage with binbuf in e_fm_ipc
+    prevent potential null deref during pager (plain) window drag
+    remove unused value in config profile saving
+    remove useless client_add handler in e_ipc
+    use uint instead of int for eina_list_count() return in cpufreq (trivial)
+    simplify static grab case statements
+    remove ipc command allowing arbitrary command execution by the compositor
+    simplify ipc socket creation
+    remove impossible null check in color dialog
+    do not add render updates during damage of deleted clients
+    don’t directly use image data when creating a comp object mirror
+    Revert “send mouse out+in on desk flip end”
+    reject x11 client mouse-in events on comp object based on frame geometry
+    reverse ordering for x11 client mouse in NotifyVirtual and NotifyInferior 
details
+    only use x11 mouse out event if client has received mouse in previously
+    apply x11 mouse in event for clients using a job
+    apply x11 focus/unfocus using jobs
+    block re-unsetting of native surface for comp objects
+    always run client res changes in e_comp_canvas_update()
+ 
+
+-------------------------------------------------------------------

Old:
----
  enlightenment-0.20.5.tar.xz

New:
----
  _service
  enhance-upstream-share-icons.patch
  enlightenment-0.20.6.tar.xz
  fix-upstream-dont-add-deleted-clients-to-tasks.patch
  fix-upstream-remove-deleted-clients-on-repop-tasks.patch
  fix-upstream-systray-handle-kde5-apps.patch
  fix-upstream-systray-use-canvas-coords.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ enlightenment.spec ++++++
--- /var/tmp/diff_new_pack.RPKPoL/_old  2016-04-12 19:35:36.000000000 +0200
+++ /var/tmp/diff_new_pack.RPKPoL/_new  2016-04-12 19:35:36.000000000 +0200
@@ -24,13 +24,13 @@
 %define generate_manpages 0
 
 Name:           enlightenment
-Version:        0.20.5
+Version:        0.20.6
 Release:        0
 Summary:        The window manager
 License:        BSD-2-Clause
 Group:          System/X11/Displaymanagers
 Url:            http://enlightenment.org/
-Source:         %{name}-%{version}.tar.xz
+Source:         
http://download.enlightenment.org/rel/apps/enlightenment/%{name}-%{version}.tar.xz
 Source2:        enlightenment.pam
 Source3:        sysactions.conf-oS12.2
 Source4:        sysactions.conf-systemd
@@ -41,6 +41,12 @@
 Patch0:         enlightenment-0.16.999.65256-dont_require_suidbit.patch
 # PATCH-FEATURE-OPENSUSE dont_offer_updates.patch -- don't offer updates, 
that's up to package manager -- [email protected]
 Patch1:         dont_offer_updates.patch
+Patch2:         fix-upstream-dont-add-deleted-clients-to-tasks.patch
+Patch3:         fix-upstream-remove-deleted-clients-on-repop-tasks.patch
+Patch4:         fix-upstream-systray-handle-kde5-apps.patch
+Patch5:         fix-upstream-systray-use-canvas-coords.patch
+Patch6:         enhance-upstream-share-icons.patch           
+
 BuildRequires:  alsa-devel
 BuildRequires:  autoconf
 BuildRequires:  automake
@@ -112,6 +118,16 @@
 # Recommended to make NetworkManager Intergration work
 Recommends:     gnome-keyring
 Recommends:     NetworkManager-appindicator
+
+# Recommended to make audio work out of the box boo#972912
+Recommends:     pulseaudio
+Recommends:     pulseaudio-module-bluetooth
+Recommends:     pulseaudio-module-jack
+Recommends:     pulseaudio-module-lirc
+Recommends:     pulseaudio-module-x11
+Recommends:     pulseaudio-module-zeroconf
+Recommends:     pulseaudio-utils
+Recommends:     alsa-plugins-pulse
 %endif
 
 Requires:       enlightenment-branding = 0.1
@@ -188,6 +204,11 @@
 %setup -q -n enlightenment-%{version}
 %patch0
 %patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
 
 # Copy In new Network Wizard
 rm src/modules/wizard/page_110.c

++++++ _service ++++++
<services>
  <service name="download_url" mode="localonly">
    <param name="protocol">http</param>
    <param name="host">download.enlightenment.org</param>
    <param 
name="path">/rel/apps/enlightenment/enlightenment-0.20.6.tar.xz</param>
  </service>
  <service name="verify_file" mode="localonly">
    <param name="file">enlightenment-0.20.6.tar.xz</param>
    <param name="verifier">sha256</param>
    <param 
name="checksum">f21fbace15b8ea0e47c7aeb16a3f4d1e8a41cb85bc0035491091518b0ca55085</param>
  </service>
</services>++++++ enhance-upstream-share-icons.patch ++++++
commit 57ce6419e5c257e6fee6809cdb9c63d39c0b0a98
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Fri Apr 1 20:29:04 2016 +0900

    e icons: reduce mem usage (in x11) by a fair bit by de-duplicating
    
    so i was profiling today .. leak hunting .. and i noticed. if you have
    enough appss open - eg terminology, e uses a huge amount of memory...
    for icons. terminology is 128x128 ...  thats 64k per icon. open up a
    lot of terminology windows and we duplicate that 64k per every window
    on the wm sside because we get the data. it would apply for any app
    that sets a netwm icon. this can be come rather silly if you have like
    100 terminals. it's worse with larger icons (eg 256x256 - 256k per
    icon).
    
    this puts in a simply list for shared icons and a lookup on fetch to
    de-duplicate and share icon data. this should drop memory usage
    nicely.
    
    @improvement

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 1d24366..e2a2bf6 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -534,10 +534,9 @@ _e_client_free(E_Client *ec)
    ec->stick_desks = eina_list_free(ec->stick_desks);
    if (ec->netwm.icons)
      {
-        int i;
-        for (i = 0; i < ec->netwm.num_icons; i++)
-          free(ec->netwm.icons[i].data);
-        E_FREE(ec->netwm.icons);
+        e_client_icon_free(ec->netwm.icons, ec->netwm.num_icons);
+        ec->netwm.icons = NULL;
+        ec->netwm.num_icons = 0;
      }
    E_FREE(ec->netwm.extra_types);
    eina_stringshare_replace(&ec->border.name, NULL);
@@ -5023,3 +5022,99 @@ e_client_layout_cb_set(E_Client_Layout_Cb cb)
      CRI("ATTEMPTING TO OVERWRITE EXISTING CLIENT LAYOUT HOOK!!!");
    _e_client_layout_cb = cb;
 }
+
+////////////////////////////////////////////
+static Eina_List *iconshare = NULL;
+
+typedef struct _E_Client_Icon_Entry E_Client_Icon_Entry;
+
+struct _E_Client_Icon_Entry
+{
+   Ecore_X_Icon *icons;
+   int num_icons;
+   int ref;
+};
+
+E_API Ecore_X_Icon *
+e_client_icon_deduplicate(Ecore_X_Icon *icons, int num_icons)
+{
+   int i;
+   Eina_List *l;
+   E_Client_Icon_Entry *ie;
+
+   // unless the rest of e uses border icons OTHER than icon #0
+   // then free the rest that we don't need anymore.
+   for (i = 1; i < num_icons; i++)
+     {
+        free(icons[i].data);
+        icons[i].data = NULL;
+     }
+   // lookup icon data in icons cache/share
+   EINA_LIST_FOREACH(iconshare, l, ie)
+     {
+        if ((ie->num_icons == num_icons) &&
+            (num_icons  > 0) &&
+            (ie->icons[0].width == icons[0].width) &&
+            (ie->icons[0].height == icons[0].height) &&
+            (!memcmp(ie->icons[0].data, icons[0].data,
+                     icons[0].width * icons[0].height * 4)))
+          {
+             // found so free the input icons
+             for (i = 0; i < num_icons; i++)
+               free(icons[i].data);
+             free(icons);
+             // ref the shared/cached one
+             ie->ref++;
+             iconshare = eina_list_promote_list(iconshare, l);
+             // and return that
+             return ie->icons;
+          }
+     }
+   // no hit - new entry to cache. add it
+   ie = calloc(1, sizeof(E_Client_Icon_Entry));
+   if (ie)
+     {
+        ie->icons = icons;
+        ie->num_icons = num_icons;
+        ie->ref = 1;
+        iconshare = eina_list_prepend(iconshare, ie);
+     }
+   return icons;
+}
+
+E_API void
+e_client_icon_free(Ecore_X_Icon *icons, int num_icons)
+{
+   int i;
+   Eina_List *l;
+   E_Client_Icon_Entry *ie;
+
+   // lookup in icon share cache
+   EINA_LIST_FOREACH(iconshare, l, ie)
+     {
+        if ((ie->num_icons == num_icons) &&
+            (num_icons  > 0) &&
+            (ie->icons[0].width == icons[0].width) &&
+            (ie->icons[0].height == icons[0].height) &&
+            (!memcmp(ie->icons[0].data, icons[0].data,
+                     icons[0].width * icons[0].height * 4)))
+          {
+             // found so deref
+             ie->ref--;
+             if (ie->ref <= 0)
+               {
+                  // no refs left - free the icon from the share/cache
+                  iconshare = eina_list_remove_list(iconshare, l);
+                  for (i = 0; i < ie->num_icons; i++)
+                    free(ie->icons[i].data);
+                  free(ie->icons);
+                  free(ie);
+               }
+             return;
+          }
+     }
+   // not found - so just free it ... odd - we should never be here
+   for (i = 0; i < num_icons; i++)
+     free(icons[i].data);
+   free(icons);
+}
diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index 13d24fd..94ef059 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -827,6 +827,8 @@ E_API Eina_Bool e_client_has_xwindow(const E_Client *ec);
 E_API Eina_Bool e_client_desk_window_profile_available_check(E_Client *ec, 
const char *profile);
 E_API void      e_client_desk_window_profile_wait_desk_set(E_Client *ec, 
E_Desk *desk);
 E_API void      e_client_layout_cb_set(E_Client_Layout_Cb cb);
+E_API Ecore_X_Icon *e_client_icon_deduplicate(Ecore_X_Icon *icons, int 
num_icons);
+E_API void      e_client_icon_free(Ecore_X_Icon *icons, int num_icons);
 
 YOLO E_API void e_client_focus_stack_set(Eina_List *l);
 
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 35831a8..2bff110 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -3795,30 +3795,16 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, 
E_Client *ec)
      }
    if (ec->netwm.fetch.icon)
      {
-        int i;
-        if (ec->netwm.icons)
-          {
-             for (i = 0; i < ec->netwm.num_icons; i++)
-               {
-                  free(ec->netwm.icons[i].data);
-                  ec->netwm.icons[i].data = NULL;
-               }
-             free(ec->netwm.icons);
-          }
+        e_client_icon_free(ec->netwm.icons, ec->netwm.num_icons);
         ec->netwm.icons = NULL;
         ec->netwm.num_icons = 0;
         if (ecore_x_netwm_icons_get(win,
                                     &ec->netwm.icons,
                                     &ec->netwm.num_icons))
           {
-             // unless the rest of e uses border icons OTHER than icon #0
-             // then free the rest that we don't need anymore.
-             for (i = 1; i < ec->netwm.num_icons; i++)
-               {
-                  free(ec->netwm.icons[i].data);
-                  ec->netwm.icons[i].data = NULL;
-               }
-             ec->netwm.num_icons = 1;
+             if (ec->netwm.icons)
+               ec->netwm.icons = e_client_icon_deduplicate
+                 (ec->netwm.icons, ec->netwm.num_icons);
              ec->changes.icon = 1;
           }
         ec->netwm.fetch.icon = 0;
++++++ enlightenment-0.20.5.tar.xz -> enlightenment-0.20.6.tar.xz ++++++
/work/SRC/openSUSE:Factory/enlightenment/enlightenment-0.20.5.tar.xz 
/work/SRC/openSUSE:Factory/.enlightenment.new/enlightenment-0.20.6.tar.xz 
differ: char 26, line 1

++++++ fix-upstream-dont-add-deleted-clients-to-tasks.patch ++++++
commit 488ece76a65349a0751a8dfb600a8a9ca0eedc98
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Mar 28 12:59:34 2016 -0400

    do not add deleted clients to tasks gadgets

diff --git a/src/modules/tasks/e_mod_main.c b/src/modules/tasks/e_mod_main.c
index cbe69a9..d0d2ece 100644
--- a/src/modules/tasks/e_mod_main.c
+++ b/src/modules/tasks/e_mod_main.c
@@ -369,7 +369,7 @@ _tasks_new(Evas *e, E_Zone *zone, const char *id)
    tasks->horizontal = 1;
    EINA_LIST_FOREACH(e_comp->clients, l, ec)
      {
-        if (!e_client_util_ignored_get(ec))
+        if ((!e_client_util_ignored_get(ec)) && 
(!e_object_is_del(E_OBJECT(ec))))
           tasks->clients = eina_list_append(tasks->clients, ec);
      }
 
@@ -889,7 +889,7 @@ _tasks_cb_event_client_add(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *e
    Tasks *tasks;
    Eina_List *l;
 
-   if (e_client_util_ignored_get(ev->ec)) return ECORE_CALLBACK_RENEW;
+   if (e_client_util_ignored_get(ev->ec) || e_object_is_del(E_OBJECT(ev->ec))) 
return ECORE_CALLBACK_RENEW;
    EINA_LIST_FOREACH(tasks_config->tasks, l, tasks)
      {
         if ((!tasks->clients) || (!eina_list_data_find(tasks->clients, 
ev->ec)))
++++++ fix-upstream-remove-deleted-clients-on-repop-tasks.patch ++++++
commit 9f52dfa50ccc5cbb6b46521a233193413e7b6069
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Mar 28 12:59:45 2016 -0400

    remove deleted clients from tasks client list during repop
    
    fix T3369

diff --git a/src/modules/tasks/e_mod_main.c b/src/modules/tasks/e_mod_main.c
index d0d2ece..fa78b69 100644
--- a/src/modules/tasks/e_mod_main.c
+++ b/src/modules/tasks/e_mod_main.c
@@ -616,6 +616,8 @@ static void
 _tasks_item_free(Tasks_Item *item)
 {
    if (item->o_icon) evas_object_del(item->o_icon);
+   if (e_object_is_del(E_OBJECT(item->client)))
+     item->tasks->clients = eina_list_remove(item->tasks->clients, 
item->client);
    e_object_unref(E_OBJECT(item->client));
    evas_object_del(item->o_item);
    free(item);
++++++ fix-upstream-systray-handle-kde5-apps.patch ++++++
commit 286fb404288f2f96f7e5963d310a9e8d261ddaaf
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Mar 28 15:33:38 2016 -0400

    add even more systray/dbusmenu hacks
    
    mrw Qt systray devs take working (4.X) and then break it in 5.X to
    be worse than steam: http://gfycat.com/CloudyPinkEmperorshrimp
    
    fix T3139

diff --git a/src/bin/e_dbusmenu.c b/src/bin/e_dbusmenu.c
index 76cce57..bc87097 100644
--- a/src/bin/e_dbusmenu.c
+++ b/src/bin/e_dbusmenu.c
@@ -9,6 +9,7 @@ struct _E_DBusMenu_Ctx
    void                     *data;
    E_DBusMenu_Pop_Request_Cb pop_request_cb;
    E_DBusMenu_Update_Cb      update_cb;
+   Eina_Bool  hacks : 1;
 };
 
 static const char *Menu_Item_Type_Names[] =
@@ -31,6 +32,8 @@ static const char *Menu_Item_Event_Names[] =
    "clicked", "hovered", "opened", "closed"
 };
 
+static void proxy_init(E_DBusMenu_Ctx *ctx);
+
 static int
 id_find(const char *text, const char *array_of_names[], unsigned max)
 {
@@ -197,6 +200,46 @@ dbus_menu_free(E_DBusMenu_Item *m)
    free(m);
 }
 
+static Eina_Bool
+attempt_hacks(E_DBusMenu_Ctx *ctx)
+{
+   /* https://phab.enlightenment.org/T3139 */
+   Eldbus_Object *obj;
+   Eldbus_Connection *conn;
+   const char *bus, *p;
+   int n;
+   char buf[1024] = {0}, buf2[1024] = {0};
+
+   if (ctx->hacks) return EINA_FALSE;
+   obj = eldbus_proxy_object_get(ctx->proxy);
+   conn = eldbus_object_connection_get(obj);
+   bus = eldbus_object_bus_name_get(obj);
+   if (bus[0] != ':') return EINA_FALSE;
+   /* if this is a qt5 app, menu bus is $bus + 2
+    * ...probably
+    */
+
+   p = strchr(bus + 1, '.');
+   if (!p) return EINA_FALSE;
+   p++;
+   if (!p[0]) return EINA_FALSE;
+   n = strtol(p, NULL, 10);
+   if (n == -1) return EINA_FALSE;
+   n += 2;
+   if ((unsigned int)(p - bus) > sizeof(buf) - 1) return EINA_FALSE;
+   strncpy(buf, bus, p - bus);
+   snprintf(buf2, sizeof(buf2), "%s%d", buf, n);
+   E_FREE_FUNC(ctx->root_menu, dbus_menu_free);
+   eldbus_proxy_unref(ctx->proxy);
+   eldbus_object_unref(obj);
+
+   obj = eldbus_object_get(conn, buf2, "/MenuBar");
+   ctx->proxy = eldbus_proxy_get(obj, DBUS_MENU_IFACE);
+   proxy_init(ctx);
+   ctx->hacks = 1;
+   return EINA_TRUE;
+}
+
 static void
 layout_get_cb(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending 
EINA_UNUSED)
 {
@@ -220,6 +263,15 @@ layout_get_cb(void *data, const Eldbus_Message *msg, 
Eldbus_Pending *pending EIN
 
    m = parse_layout(layout, NULL, ctx);
    m->revision = revision;
+   if (m->is_submenu && (!m->parent) && (!m->sub_items))
+     {
+        if (attempt_hacks(ctx))
+          {
+             dbus_menu_free(m);
+             return;
+          }
+     }
+
    if (ctx->update_cb)
      ctx->update_cb(ctx->data, m);
    if (ctx->root_menu)
@@ -271,32 +323,6 @@ menu_pop_request(void *data, const Eldbus_Message *msg)
 }
 
 static void
-icon_theme_path_get_cb(void *data EINA_UNUSED, const Eldbus_Message *msg, 
Eldbus_Pending *pending EINA_UNUSED)
-{
-   const char *error, *error_msg;
-   Eldbus_Message_Iter *var, *array;
-   const char *path;
-
-   if (eldbus_message_error_get(msg, &error, &error_msg))
-     {
-        ERR("%s %s", error, error_msg);
-        return;
-     }
-
-   if (!eldbus_message_arguments_get(msg, "v", &var) ||
-       !eldbus_message_iter_arguments_get(var, "as", &array))
-     {
-        ERR("Error reading message.");
-        return;
-     }
-
-   while (eldbus_message_iter_get_and_next(array, 's', &path))
-     {
-        //TODO
-     }
-}
-
-static void
 prop_changed_cb(void *data EINA_UNUSED, const Eldbus_Message *msg)
 {
    const char *interface, *propname;
@@ -337,6 +363,23 @@ layout_updated_cb(void *data, const Eldbus_Message *msg 
EINA_UNUSED)
    layout_update(ctx);
 }
 
+static void
+proxy_init(E_DBusMenu_Ctx *ctx)
+{
+   layout_update(ctx);
+   eldbus_proxy_signal_handler_add(ctx->proxy,
+                                  "ItemActivationRequested",
+                                  menu_pop_request, ctx);
+
+   eldbus_proxy_properties_changed_callback_add(ctx->proxy,
+                                               prop_changed_cb, ctx);
+
+   eldbus_proxy_signal_handler_add(ctx->proxy, "ItemsPropertiesUpdated",
+                                  layout_updated_cb, ctx);
+   eldbus_proxy_signal_handler_add(ctx->proxy, "LayoutUpdated",
+                                  layout_updated_cb, ctx);
+}
+
 E_API E_DBusMenu_Ctx *
 e_dbusmenu_load(Eldbus_Connection *conn, const char *bus, const char *path, 
const void *data)
 {
@@ -353,21 +396,7 @@ e_dbusmenu_load(Eldbus_Connection *conn, const char *bus, 
const char *path, cons
    eldbus_connection_ref(conn);
    obj = eldbus_object_get(conn, bus, path);
    ctx->proxy = eldbus_proxy_get(obj, DBUS_MENU_IFACE);
-
-   layout_update(ctx);
-   eldbus_proxy_signal_handler_add(ctx->proxy,
-                                  "ItemActivationRequested",
-                                  menu_pop_request, ctx);
-
-   eldbus_proxy_property_get(ctx->proxy, "IconThemePath",
-                            icon_theme_path_get_cb, ctx);
-   eldbus_proxy_properties_changed_callback_add(ctx->proxy,
-                                               prop_changed_cb, ctx);
-
-   eldbus_proxy_signal_handler_add(ctx->proxy, "ItemsPropertiesUpdated",
-                                  layout_updated_cb, ctx);
-   eldbus_proxy_signal_handler_add(ctx->proxy, "LayoutUpdated",
-                                  layout_updated_cb, ctx);
+   proxy_init(ctx);
    return ctx;
 }
 
++++++ fix-upstream-systray-use-canvas-coords.patch ++++++
commit 19eb5d264477d8979b2e623cac279e3a06d1943f
Author: Mike Blumenkrantz <[email protected]>
Date:   Mon Mar 28 13:37:21 2016 -0400

    use canvas pointer coords in systray mouse cb

diff --git a/src/modules/systray/e_mod_notifier_host.c 
b/src/modules/systray/e_mod_notifier_host.c
index a15d4bc..81c4e59 100644
--- a/src/modules/systray/e_mod_notifier_host.c
+++ b/src/modules/systray/e_mod_notifier_host.c
@@ -197,7 +197,7 @@ _clicked_item_cb(void *data, Evas *evas, Evas_Object *obj 
EINA_UNUSED, void *eve
    e_menu_post_deactivate_callback_set(m, _menu_post_deactivate, gadcon);
 
    zone = e_gadcon_zone_get(gadcon);
-   ecore_evas_pointer_xy_get(e_comp->ee, &x, &y);
+   evas_pointer_canvas_xy_get(e_comp->evas, &x, &y);
    e_menu_activate_mouse(m, zone, x, y, 1, 1, E_MENU_POP_DIRECTION_DOWN, 
ev->timestamp);
    evas_event_feed_mouse_up(evas, ev->button,
                          EVAS_BUTTON_NONE, ev->timestamp, NULL);

Reply via email to