discomfitor pushed a commit to branch enlightenment-0.20.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=2bff9611c3ade4a70ce7c38e6727f5398bd88f6f

commit 2bff9611c3ade4a70ce7c38e6727f5398bd88f6f
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Mon Dec 7 18:01:07 2015 -0500

    reshuffle all notifications on a notification merge
    
    improves layout when a notification's size changes due to merged text
    being larger than original text
---
 src/modules/notification/e_mod_popup.c | 46 ++++++++++++++++++----------------
 1 file changed, 24 insertions(+), 22 deletions(-)

diff --git a/src/modules/notification/e_mod_popup.c 
b/src/modules/notification/e_mod_popup.c
index edfe96b..03b33e0 100644
--- a/src/modules/notification/e_mod_popup.c
+++ b/src/modules/notification/e_mod_popup.c
@@ -233,6 +233,26 @@ _notification_popup_merge(E_Notification_Notify *n)
    return popup;
 }
 
+static void
+_notification_reshuffle_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, 
Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+   Popup_Data *popup;
+   Eina_List *l, *l2;
+   int pos = 0;
+
+   EINA_LIST_FOREACH_SAFE(notification_cfg->popups, l, l2, popup)
+     {
+        if (popup->theme == obj)
+          {
+             popup->pending = 0;
+             _notification_popdown(popup, 0);
+             notification_cfg->popups = 
eina_list_remove_list(notification_cfg->popups, l);
+          }
+        else
+          pos = _notification_popup_place(popup, pos);
+     }
+   next_pos = pos;
+}
 
 void
 notification_popup_notify(E_Notification_Notify *n,
@@ -276,7 +296,10 @@ notification_popup_notify(E_Notification_Notify *n,
    else if (!n->replaces_id)
      {
         if ((popup = _notification_popup_merge(n)))
-          _notification_popup_refresh(popup);
+          {
+             _notification_popup_refresh(popup);
+             _notification_reshuffle_cb(NULL, NULL, NULL, NULL);
+          }
      }
 
    if (!popup)
@@ -686,27 +709,6 @@ _notification_popup_find(unsigned int id)
 }
 
 static void
-_notification_reshuffle_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, 
Evas_Object *obj, void *event_info EINA_UNUSED)
-{
-   Popup_Data *popup;
-   Eina_List *l, *l2;
-   int pos = 0;
-
-   EINA_LIST_FOREACH_SAFE(notification_cfg->popups, l, l2, popup)
-     {
-        if (popup->theme == obj)
-          {
-             popup->pending = 0;
-             _notification_popdown(popup, 0);
-             notification_cfg->popups = 
eina_list_remove_list(notification_cfg->popups, l);
-          }
-        else
-          pos = _notification_popup_place(popup, pos);
-     }
-   next_pos = pos;
-}
-
-static void
 _notification_popup_del(unsigned int                 id,
                         E_Notification_Notify_Closed_Reason reason)
 {

-- 


Reply via email to