discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=8eba19c0124b91af1909b852b6acf5a902b93646

commit 8eba19c0124b91af1909b852b6acf5a902b93646
Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Feb 20 11:22:35 2014 -0500

    add urgency popups for p16
    
    T1004
---
 src/modules/pager16/e_mod_main.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/src/modules/pager16/e_mod_main.c b/src/modules/pager16/e_mod_main.c
index 97d6f73..057d006 100644
--- a/src/modules/pager16/e_mod_main.c
+++ b/src/modules/pager16/e_mod_main.c
@@ -1004,6 +1004,32 @@ _pager_cb_event_desk_name_change(void *data __UNUSED__, 
int type __UNUSED__, voi
 }
 
 static Eina_Bool
+_pager_cb_event_client_urgent_change(void *data EINA_UNUSED, int type 
EINA_UNUSED, E_Event_Client_Property *ev)
+{
+   if (!(ev->property & E_CLIENT_PROPERTY_URGENCY)) return 
ECORE_CALLBACK_RENEW;
+
+   if (pager_config->popup_urgent && (pager_config->popup_urgent_focus ||
+                                      (!pager_config->popup_urgent_focus && 
(!ev->ec->focused) && (!ev->ec->want_focus))))
+     {
+        Pager_Popup *pp;
+
+        pp = _pager_popup_find(ev->ec->zone);
+
+        if ((!pp) && (ev->ec->icccm.urgent) && (!ev->ec->iconic))
+          {
+             pp = _pager_popup_new(ev->ec->zone, 0);
+             if (!pp) return ECORE_CALLBACK_RENEW;
+
+             if (!pager_config->popup_urgent_stick)
+               pp->timer = ecore_timer_add(pager_config->popup_urgent_speed,
+                                           _pager_popup_cb_timeout, pp);
+             pp->urgent = 1;
+          }
+     }
+   return ECORE_CALLBACK_RENEW;
+}
+
+static Eina_Bool
 _pager_cb_event_compositor_resize(void *data __UNUSED__, int type __UNUSED__, 
void *event)
 {
    E_Event_Compositor_Resize *ev = event;
@@ -1998,6 +2024,7 @@ e_modapi_init(E_Module *m)
    E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_DESK_SHOW, 
_pager_cb_event_desk_show, NULL);
    E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_DESK_NAME_CHANGE, 
_pager_cb_event_desk_name_change, NULL);
    E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_COMPOSITOR_RESIZE, 
_pager_cb_event_compositor_resize, NULL);
+   E_LIST_HANDLER_APPEND(pager_config->handlers, E_EVENT_CLIENT_PROPERTY, 
_pager_cb_event_client_urgent_change, NULL);
 
    pager_config->module = m;
 

-- 


Reply via email to