Enlightenment CVS committal

Author  : pfritz
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/engines/x11


Modified Files:
        ewl_engine_x11.c 


Log Message:
- add window_skip_[pager/taskbar]_[set/get] (i know they are probably useless 
for all (most) EWL apps
- add window_attention_demand() (doesn't work atm)

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/engines/x11/ewl_engine_x11.c,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -3 -r1.47 -r1.48
--- ewl_engine_x11.c    7 Mar 2007 09:19:24 -0000       1.47
+++ ewl_engine_x11.c    15 Mar 2007 22:49:03 -0000      1.48
@@ -68,8 +68,11 @@
 static void ee_window_borderless_set(Ewl_Window *win);
 static void ee_window_dialog_set(Ewl_Window *win);
 static void ee_window_fullscreen_set(Ewl_Window *win);
+static void ee_window_skip_taskbar_set(Ewl_Window *win);
+static void ee_window_skip_pager_set(Ewl_Window *win);
 static void ee_window_transient_for(Ewl_Window *win);
 static void ee_window_modal_set(Ewl_Window *win);
+static void ee_window_attention_demand(Ewl_Window *win);
 static void ee_window_raise(Ewl_Window *win);
 static void ee_window_lower(Ewl_Window *win);
 static int ee_keyboard_grab(Ewl_Window *win);
@@ -104,8 +107,11 @@
                ee_window_borderless_set,
                ee_window_dialog_set,
                ee_window_fullscreen_set,
+               ee_window_skip_taskbar_set,
+               ee_window_skip_pager_set,
                ee_window_transient_for,
                ee_window_modal_set,
+               ee_window_attention_demand,
                ee_window_raise,
                ee_window_lower,
                ee_keyboard_grab,
@@ -590,6 +596,62 @@
 }
 
 static void
+ee_window_skip_taskbar_set(Ewl_Window *win)
+{
+       int skip;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR("win", win);
+       DCHECK_TYPE("win", win, EWL_WINDOW_TYPE); 
+
+       skip = (!!(win->flags & EWL_WINDOW_SKIP_TASKBAR));
+
+       if (REALIZED(win))
+               ecore_x_netwm_state_request_send((Ecore_X_Window)win->window,
+                               0, ECORE_X_WINDOW_STATE_SKIP_TASKBAR,
+                               ECORE_X_WINDOW_STATE_UNKNOWN, skip);
+
+       else if (win->window && skip)
+       {
+               Ecore_X_Window_State states[] =
+                               {ECORE_X_WINDOW_STATE_SKIP_TASKBAR};
+
+               ecore_x_netwm_window_state_set((Ecore_X_Window)win->window,
+                                                               states, 1);
+       }
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+static void
+ee_window_skip_pager_set(Ewl_Window *win)
+{
+       int skip;
+
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR("win", win);
+       DCHECK_TYPE("win", win, EWL_WINDOW_TYPE); 
+
+       skip = (!!(win->flags & EWL_WINDOW_SKIP_PAGER));
+
+       if (REALIZED(win))
+               ecore_x_netwm_state_request_send((Ecore_X_Window)win->window,
+                               0, ECORE_X_WINDOW_STATE_SKIP_PAGER,
+                               ECORE_X_WINDOW_STATE_UNKNOWN, skip);
+
+       else if (win->window && skip)
+       {
+               Ecore_X_Window_State states[] =
+                               {ECORE_X_WINDOW_STATE_SKIP_PAGER};
+
+               ecore_x_netwm_window_state_set((Ecore_X_Window)win->window,
+                                                               states, 1);
+       }
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+static void
 ee_window_transient_for(Ewl_Window *win)
 {
        DENTER_FUNCTION(DLEVEL_STABLE);
@@ -628,6 +690,30 @@
        {
                Ecore_X_Window_State states[] =
                                {ECORE_X_WINDOW_STATE_MODAL};
+
+               ecore_x_netwm_window_state_set((Ecore_X_Window)win->window,
+                                                               states, 1);
+       }
+
+       DLEAVE_FUNCTION(DLEVEL_STABLE);
+}
+
+static void
+ee_window_attention_demand(Ewl_Window *win)
+{
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR("win", win);
+       DCHECK_TYPE("win", win, EWL_WINDOW_TYPE);
+
+       if (REALIZED(win)) {
+               ecore_x_netwm_state_request_send((Ecore_X_Window)win->window,
+                                       0, 
ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION,
+                                       ECORE_X_WINDOW_STATE_UNKNOWN, 1);
+       }
+       else if (win->window)
+       {
+               Ecore_X_Window_State states[] =
+                               {ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION};
 
                ecore_x_netwm_window_state_set((Ecore_X_Window)win->window,
                                                                states, 1);



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to