Enlightenment CVS committal

Author  : codewarrior
Project : e17
Module  : libs/etk

Dir     : e17/libs/etk/src/lib


Modified Files:
        etk_window.c 


Log Message:
[Etk_Window] modal now disables the parent window and enables it appropriately.


===================================================================
RCS file: /cvs/e/e17/libs/etk/src/lib/etk_window.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -3 -r1.48 -r1.49
--- etk_window.c        22 Jun 2007 11:00:39 -0000      1.48
+++ etk_window.c        22 Jun 2007 21:22:19 -0000      1.49
@@ -51,6 +51,8 @@
 static void _etk_window_screen_position_get(Etk_Toplevel *toplevel, int *x, 
int *y);
 static void _etk_window_size_get(Etk_Toplevel *toplevel, int *w, int *h);
 static void _etk_window_pointer_set(Etk_Toplevel *toplevel, Etk_Pointer_Type 
pointer_type);
+static void _etk_window_disable(Etk_Window *window);
+static void _etk_window_enable(Etk_Window *window);
 
 static Etk_Signal *_etk_window_signals[ETK_WINDOW_NUM_SIGNALS];
 
@@ -266,6 +268,28 @@
    if (!window_to_modal)
       return;
    etk_engine_window_modal_for_window(window_to_modal, window);
+   
+   if (window)     
+     {
+       etk_signal_connect_swapped("shown", ETK_OBJECT(window_to_modal),
+                                  ETK_CALLBACK(_etk_window_disable),
+                                  window);     
+       etk_signal_connect_swapped("hidden", ETK_OBJECT(window_to_modal),
+                                  ETK_CALLBACK(_etk_window_enable),
+                                  window);     
+       etk_signal_connect_swapped("delete-event", ETK_OBJECT(window_to_modal),
+                                  ETK_CALLBACK(_etk_window_enable),
+                                  window);
+     }
+   else
+     {
+       etk_signal_disconnect("shown", ETK_OBJECT(window_to_modal),
+                             ETK_CALLBACK(_etk_window_disable));
+       etk_signal_disconnect("hidden", ETK_OBJECT(window_to_modal),
+                             ETK_CALLBACK(_etk_window_enable));
+       etk_signal_disconnect("delete-event", ETK_OBJECT(window_to_modal),
+                             ETK_CALLBACK(_etk_window_enable));
+     }
 }
 
 /**
@@ -776,6 +800,24 @@
 static void _etk_window_pointer_set(Etk_Toplevel *toplevel, Etk_Pointer_Type 
pointer_type)
 {
    etk_engine_window_pointer_set(ETK_WINDOW(toplevel), pointer_type);
+}
+
+/* Disable a window */
+static void _etk_window_disable(Etk_Window *window)
+{
+   if (!window)
+      return;
+   
+   etk_widget_disabled_set(ETK_WIDGET(window), ETK_TRUE);
+}
+
+/* Enable a window */
+static void _etk_window_enable(Etk_Window *window)
+{
+   if (!window)
+      return;
+   
+   etk_widget_disabled_set(ETK_WIDGET(window), ETK_FALSE);
 }
 
 /** @} */



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to