|
From: <enl...@li...> - 2005-07-21 12:06:39
|
Enlightenment CVS committal
Author : sebastid
Project : e17
Module : apps/e
Dir : e17/apps/e/src/bin
Modified Files:
e_hints.c
Log Message:
Don't check the netwm state variables. Just do as the state change
requests. The appropriate functions must check if the state actually
shall change.
We must find a clever way to implement full maximize vs. maximize
horisontal and vertical.
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_hints.c,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -3 -r1.58 -r1.59
--- e_hints.c 19 Jul 2005 09:11:21 -0000 1.58
+++ e_hints.c 21 Jul 2005 12:06:29 -0000 1.59
@@ -471,371 +471,279 @@
void
e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
- Ecore_X_Window_State_Action action)
+ Ecore_X_Window_State_Action action)
{
int changed;
-
+
switch (state)
{
case ECORE_X_WINDOW_STATE_ICONIFIED:
- if (action != ECORE_X_WINDOW_STATE_ACTION_ADD) return;
- if (bd->client.icccm.state == ECORE_X_WINDOW_STATE_HINT_ICONIC) return;
- if (!bd->lock_client_iconify)
- e_border_iconify(bd);
- break;
+ if (action != ECORE_X_WINDOW_STATE_ACTION_ADD) return;
+ if (bd->client.icccm.state == ECORE_X_WINDOW_STATE_HINT_ICONIC) return;
+ if (!bd->lock_client_iconify)
+ e_border_iconify(bd);
+ break;
case ECORE_X_WINDOW_STATE_MODAL:
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.modal)
- {
- bd->client.netwm.state.modal = 0;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (!bd->client.netwm.state.modal)
- {
- bd->client.netwm.state.modal = 1;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- bd->client.netwm.state.modal = !bd->client.netwm.state.modal;
- changed = 1;
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- }
- break;
+ changed = 0;
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
+ if (bd->client.netwm.state.modal)
+ {
+ bd->client.netwm.state.modal = 0;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ if (!bd->client.netwm.state.modal)
+ {
+ bd->client.netwm.state.modal = 1;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ bd->client.netwm.state.modal = !bd->client.netwm.state.modal;
+ changed = 1;
+ break;
+ }
+ if (changed)
+ {
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
+ }
+ break;
case ECORE_X_WINDOW_STATE_STICKY:
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.sticky)
- {
- bd->client.netwm.state.sticky = 0;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (!bd->client.netwm.state.sticky)
- {
- bd->client.netwm.state.sticky = 1;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- bd->client.netwm.state.sticky = !bd->client.netwm.state.sticky;
- changed = 1;
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- if (bd->client.netwm.state.sticky)
- e_border_stick(bd);
- else
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
e_border_unstick(bd);
- }
- break;
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ e_border_stick(bd);
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ if (bd->sticky)
+ e_border_unstick(bd);
+ else
+ e_border_stick(bd);
+ break;
+ }
+ break;
case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT:
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.maximized_v)
- {
- bd->client.netwm.state.maximized_v = 0;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (!bd->client.netwm.state.maximized_v)
- {
- bd->client.netwm.state.maximized_v = 1;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- bd->client.netwm.state.maximized_v = !bd->client.netwm.state.maximized_v;
- changed = 1;
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- if ((bd->client.netwm.state.maximized_v)
- && (bd->client.netwm.state.maximized_h))
- e_border_maximize(bd, e_config->maximize_policy);
- else if ((!bd->client.netwm.state.maximized_v)
- && (!bd->client.netwm.state.maximized_h))
- e_border_unmaximize(bd);
- }
- break;
+ changed = 0;
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
+ if (bd->client.netwm.state.maximized_v)
+ {
+ bd->client.netwm.state.maximized_v = 0;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ if (!bd->client.netwm.state.maximized_v)
+ {
+ bd->client.netwm.state.maximized_v = 1;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ bd->client.netwm.state.maximized_v = !bd->client.netwm.state.maximized_v;
+ changed = 1;
+ break;
+ }
+ if (changed)
+ {
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
+ if ((bd->client.netwm.state.maximized_v)
+ && (bd->client.netwm.state.maximized_h))
+ e_border_maximize(bd, e_config->maximize_policy);
+ else if ((!bd->client.netwm.state.maximized_v)
+ && (!bd->client.netwm.state.maximized_h))
+ e_border_unmaximize(bd);
+ }
+ break;
case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ:
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.maximized_h)
- {
- bd->client.netwm.state.maximized_h = 0;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (!bd->client.netwm.state.maximized_h)
- {
- bd->client.netwm.state.maximized_h = 1;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- bd->client.netwm.state.maximized_h = !bd->client.netwm.state.maximized_h;
- changed = 1;
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- if ((bd->client.netwm.state.maximized_v)
- && (bd->client.netwm.state.maximized_h))
- e_border_maximize(bd, e_config->maximize_policy);
- else if ((!bd->client.netwm.state.maximized_v)
- && (!bd->client.netwm.state.maximized_h))
- e_border_unmaximize(bd);
- }
- break;
+ changed = 0;
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
+ if (bd->client.netwm.state.maximized_h)
+ {
+ bd->client.netwm.state.maximized_h = 0;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ if (!bd->client.netwm.state.maximized_h)
+ {
+ bd->client.netwm.state.maximized_h = 1;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ bd->client.netwm.state.maximized_h = !bd->client.netwm.state.maximized_h;
+ changed = 1;
+ break;
+ }
+ if (changed)
+ {
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
+ if ((bd->client.netwm.state.maximized_v)
+ && (bd->client.netwm.state.maximized_h))
+ e_border_maximize(bd, e_config->maximize_policy);
+ else if ((!bd->client.netwm.state.maximized_v)
+ && (!bd->client.netwm.state.maximized_h))
+ e_border_unmaximize(bd);
+ }
+ break;
case ECORE_X_WINDOW_STATE_SHADED:
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.shaded)
- {
- bd->client.netwm.state.shaded = 0;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (!bd->client.netwm.state.shaded)
- {
- bd->client.netwm.state.shaded = 1;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- bd->client.netwm.state.shaded = !bd->client.netwm.state.shaded;
- changed = 1;
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- if (bd->client.netwm.state.shaded)
- e_border_shade(bd, e_hints_window_shade_direction_get(bd));
- else
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
e_border_unshade(bd, e_hints_window_shade_direction_get(bd));
- }
- break;
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ e_border_shade(bd, e_hints_window_shade_direction_get(bd));
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ if (bd->shaded)
+ e_border_unshade(bd, e_hints_window_shade_direction_get(bd));
+ else
+ e_border_shade(bd, e_hints_window_shade_direction_get(bd));
+ break;
+ }
+ break;
case ECORE_X_WINDOW_STATE_SKIP_TASKBAR:
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.skip_taskbar)
- {
- bd->client.netwm.state.skip_taskbar = 0;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (!bd->client.netwm.state.skip_taskbar)
- {
- bd->client.netwm.state.skip_taskbar = 1;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- bd->client.netwm.state.skip_taskbar = !bd->client.netwm.state.skip_taskbar;
- changed = 1;
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- }
- break;
+ changed = 0;
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
+ if (bd->client.netwm.state.skip_taskbar)
+ {
+ bd->client.netwm.state.skip_taskbar = 0;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ if (!bd->client.netwm.state.skip_taskbar)
+ {
+ bd->client.netwm.state.skip_taskbar = 1;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ bd->client.netwm.state.skip_taskbar = !bd->client.netwm.state.skip_taskbar;
+ changed = 1;
+ break;
+ }
+ if (changed)
+ {
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
+ }
+ break;
case ECORE_X_WINDOW_STATE_SKIP_PAGER:
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.skip_pager)
- {
- bd->client.netwm.state.skip_pager = 0;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (!bd->client.netwm.state.skip_pager)
- {
- bd->client.netwm.state.skip_pager = 1;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- bd->client.netwm.state.skip_pager = !bd->client.netwm.state.skip_pager;
- changed = 1;
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- }
- break;
+ changed = 0;
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
+ if (bd->client.netwm.state.skip_pager)
+ {
+ bd->client.netwm.state.skip_pager = 0;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ if (!bd->client.netwm.state.skip_pager)
+ {
+ bd->client.netwm.state.skip_pager = 1;
+ changed = 1;
+ }
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ bd->client.netwm.state.skip_pager = !bd->client.netwm.state.skip_pager;
+ changed = 1;
+ break;
+ }
+ if (changed)
+ {
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
+ }
+ break;
case ECORE_X_WINDOW_STATE_HIDDEN:
- /* Ignore */
- break;
+ /* Ignore */
+ break;
case ECORE_X_WINDOW_STATE_FULLSCREEN:
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.fullscreen)
- {
- bd->client.netwm.state.fullscreen = 0;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (!bd->client.netwm.state.fullscreen)
- {
- bd->client.netwm.state.fullscreen = 1;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- bd->client.netwm.state.fullscreen = !bd->client.netwm.state.fullscreen;
- changed = 1;
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- if (bd->client.netwm.state.fullscreen)
- e_border_fullscreen(bd);
- else
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
e_border_unfullscreen(bd);
- }
- break;
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ e_border_fullscreen(bd);
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ if (bd->fullscreen)
+ e_border_unfullscreen(bd);
+ else
+ e_border_fullscreen(bd);
+ break;
+ }
+ break;
case ECORE_X_WINDOW_STATE_ABOVE:
- /* FIXME: Should this require that BELOW is set to 0 first, or just
- * do it? */
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.stacking == E_STACKING_ABOVE)
- {
- bd->client.netwm.state.stacking = E_STACKING_NONE;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (bd->client.netwm.state.stacking == E_STACKING_NONE)
- {
- bd->client.netwm.state.stacking = E_STACKING_ABOVE;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- if (bd->client.netwm.state.stacking == E_STACKING_ABOVE)
- {
- bd->client.netwm.state.stacking = E_STACKING_NONE;
- changed = 1;
- }
- else if (bd->client.netwm.state.stacking == E_STACKING_NONE)
- {
- bd->client.netwm.state.stacking = E_STACKING_ABOVE;
- changed = 1;
- }
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- if (bd->client.netwm.state.stacking)
- bd->layer = 150;
- else
+ /* FIXME: Should this require that BELOW is set to 0 first, or just
+ * do it? */
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
bd->layer = 100;
- e_border_raise(bd);
- }
- break;
+ e_border_raise(bd);
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ bd->layer = 150;
+ e_border_raise(bd);
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ if (bd->layer == 150)
+ bd->layer = 100;
+ else
+ bd->layer = 150;
+ e_border_raise(bd);
+ break;
+ }
+ break;
case ECORE_X_WINDOW_STATE_BELOW:
- /* FIXME: Should this require that ABOVE is set to 0 first, or just
- * do it? */
- changed = 0;
- switch (action)
- {
- case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
- if (bd->client.netwm.state.stacking == E_STACKING_BELOW)
- {
- bd->client.netwm.state.stacking = E_STACKING_NONE;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_ADD:
- if (bd->client.netwm.state.stacking == E_STACKING_NONE)
- {
- bd->client.netwm.state.stacking = E_STACKING_BELOW;
- changed = 1;
- }
- break;
- case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
- if (bd->client.netwm.state.stacking == E_STACKING_BELOW)
- {
- bd->client.netwm.state.stacking = E_STACKING_NONE;
- changed = 1;
- }
- else if (bd->client.netwm.state.stacking == E_STACKING_NONE)
- {
- bd->client.netwm.state.stacking = E_STACKING_BELOW;
- changed = 1;
- }
- break;
- }
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- if (bd->client.netwm.state.stacking)
- bd->layer = 50;
- else
+ /* FIXME: Should this require that ABOVE is set to 0 first, or just
+ * do it? */
+ switch (action)
+ {
+ case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
bd->layer = 100;
- e_border_raise(bd);
- }
- break;
+ e_border_raise(bd);
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_ADD:
+ bd->layer = 50;
+ e_border_raise(bd);
+ break;
+ case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
+ if (bd->layer == 50)
+ bd->layer = 100;
+ else
+ bd->layer = 50;
+ e_border_raise(bd);
+ break;
+ }
+ break;
case ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION:
- /* FIXME */
- break;
+ /* FIXME */
+ break;
case ECORE_X_WINDOW_STATE_UNKNOWN:
- /* Ignore */
- break;
+ /* Ignore */
+ break;
}
}
|