jypark pushed a commit to branch master.

commit 9210db4dd5a2eb5d1623b1370f180fe47defd376
Author: Jiyoun Park <[email protected]>
Date:   Thu Mar 7 16:33:59 2013 +0900

    Ecore_x: Add manual render code before deiconify
---
 ChangeLog                                       |  4 ++++
 NEWS                                            |  1 +
 src/modules/ecore_evas/engines/x/ecore_evas_x.c | 19 +++++++++++++++++++
 3 files changed, 24 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index ac722ed..ca6a15e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-03-07  Jiyoun Park (Jypark)
+
+        * Ecore_x: Add manual render code before deiconify
+
 2013-03-06  Jihoon Kim (jihoon)
 
         * Edje entry: fix bug scroll works when PgDn, PgUp, Home, End key in 
entry is pressed in preedit state
diff --git a/NEWS b/NEWS
index 365c199..002ccdf 100644
--- a/NEWS
+++ b/NEWS
@@ -69,6 +69,7 @@ Additions:
     * Add infrastructure to handle message between ecore and parent ecore in 
Ecore_Evas.
     * Edje textblock: Added support for size_range.
        * Ecore_x: Add atom related with indicator type. 
+    * Ecore_x: Add manual render code before deiconify
 
 Deprecations:
     * ecore_x:
diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c 
b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
index fb16269..0ec9c5e 100644
--- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c
+++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
@@ -183,6 +183,12 @@ _ecore_evas_x_protocols_set(Ecore_Evas *ee)
    ecore_x_window_prop_card32_set(ee->prop.window,
                                   ECORE_X_ATOM_NET_WM_SYNC_REQUEST_COUNTER,
                                   &tmp, 1);
+
+   // set property on window to say "I talk the deiconify approve protcol"
+   tmp = 1;
+   ecore_x_window_prop_card32_set(ee->prop.window,
+                                  ECORE_X_ATOM_E_DEICONIFY_APPROVE,
+                                  &tmp, 1);
 }
 
 static void
@@ -996,6 +1002,19 @@ _ecore_evas_x_event_client_message(void *data 
EINA_UNUSED, int type EINA_UNUSED,
           ///TODO after access structure determined
           // if (ee->func.fn_msg_handle)
           // ee->func.fn_msg_handle(ee, msg_domain, msg_id, data, size);
+     }
+   else if (e->message_type == ECORE_X_ATOM_E_DEICONIFY_APPROVE)
+     {
+        ee = ecore_event_window_match(e->win);
+        if (!ee) return ECORE_CALLBACK_PASS_ON; /* pass on event */
+
+        if (ecore_evas_manual_render_get(ee))
+          ecore_evas_manual_render(ee);
+
+        ecore_x_client_message32_send(e->win, ECORE_X_ATOM_E_DEICONIFY_APPROVE,
+                                      ECORE_X_EVENT_MASK_WINDOW_CONFIGURE,
+                                      e->win, 1,
+                                      0, 0, 0);
        }
    return ECORE_CALLBACK_PASS_ON;
 }

-- 

------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev

Reply via email to