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