forked from enlightenment/enlightenment
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. SVN revision: 15855
This commit is contained in:
parent
55b7e64055
commit
faff2862d3
|
@ -513,36 +513,20 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
|
|||
}
|
||||
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;
|
||||
}
|
||||
e_border_unstick(bd);
|
||||
break;
|
||||
case ECORE_X_WINDOW_STATE_ACTION_ADD:
|
||||
if (!bd->client.netwm.state.sticky)
|
||||
{
|
||||
bd->client.netwm.state.sticky = 1;
|
||||
changed = 1;
|
||||
}
|
||||
e_border_stick(bd);
|
||||
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
|
||||
if (bd->sticky)
|
||||
e_border_unstick(bd);
|
||||
else
|
||||
e_border_stick(bd);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT:
|
||||
|
@ -616,36 +600,20 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
|
|||
}
|
||||
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;
|
||||
}
|
||||
e_border_unshade(bd, e_hints_window_shade_direction_get(bd));
|
||||
break;
|
||||
case ECORE_X_WINDOW_STATE_ACTION_ADD:
|
||||
if (!bd->client.netwm.state.shaded)
|
||||
{
|
||||
bd->client.netwm.state.shaded = 1;
|
||||
changed = 1;
|
||||
}
|
||||
e_border_shade(bd, e_hints_window_shade_direction_get(bd));
|
||||
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
|
||||
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:
|
||||
|
@ -710,124 +678,64 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
|
|||
/* 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;
|
||||
}
|
||||
e_border_unfullscreen(bd);
|
||||
break;
|
||||
case ECORE_X_WINDOW_STATE_ACTION_ADD:
|
||||
if (!bd->client.netwm.state.fullscreen)
|
||||
{
|
||||
bd->client.netwm.state.fullscreen = 1;
|
||||
changed = 1;
|
||||
}
|
||||
e_border_fullscreen(bd);
|
||||
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
|
||||
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
|
||||
bd->layer = 100;
|
||||
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
|
||||
bd->layer = 100;
|
||||
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:
|
||||
|
|
Loading…
Reference in New Issue