forked from enlightenment/enlightenment
parent
3bd72d9e10
commit
bb9a664fa7
|
@ -834,31 +834,73 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
|
||||||
void
|
void
|
||||||
e_hints_window_state_get(E_Border *bd)
|
e_hints_window_state_get(E_Border *bd)
|
||||||
{
|
{
|
||||||
int above, below;
|
int i, num;
|
||||||
|
Ecore_X_Window_State *state;
|
||||||
|
|
||||||
/* FIXME: each of these is a round trip. need to make it a single fetch */
|
bd->client.netwm.state.modal = 0;
|
||||||
bd->client.netwm.state.modal =
|
bd->client.netwm.state.sticky = 0;
|
||||||
ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_MODAL);
|
bd->client.netwm.state.maximized_v = 0;
|
||||||
bd->client.netwm.state.sticky =
|
bd->client.netwm.state.maximized_h = 0;
|
||||||
ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_STICKY);
|
bd->client.netwm.state.shaded = 0;
|
||||||
bd->client.netwm.state.maximized_v =
|
bd->client.netwm.state.skip_taskbar = 0;
|
||||||
ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_MAXIMIZED_VERT);
|
bd->client.netwm.state.skip_pager = 0;
|
||||||
bd->client.netwm.state.maximized_h =
|
bd->client.netwm.state.hidden = 0;
|
||||||
ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ);
|
bd->client.netwm.state.fullscreen = 0;
|
||||||
bd->client.netwm.state.shaded =
|
bd->client.netwm.state.stacking = 0;
|
||||||
ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_SHADED);
|
|
||||||
bd->client.netwm.state.skip_taskbar =
|
|
||||||
ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_SKIP_TASKBAR);
|
|
||||||
bd->client.netwm.state.skip_pager =
|
|
||||||
ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_SKIP_PAGER);
|
|
||||||
bd->client.netwm.state.hidden =
|
|
||||||
ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_HIDDEN);
|
|
||||||
bd->client.netwm.state.fullscreen =
|
|
||||||
ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_FULLSCREEN);
|
|
||||||
|
|
||||||
above = ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_ABOVE);
|
state = ecore_x_netwm_window_state_get(bd->client.win, &num);
|
||||||
below = ecore_x_netwm_window_state_isset(bd->client.win, ECORE_X_WINDOW_STATE_BELOW);
|
if (state)
|
||||||
bd->client.netwm.state.stacking = (above << 0) + (below << 1);
|
{
|
||||||
|
for (i = 0; i < num; i++)
|
||||||
|
{
|
||||||
|
switch (state[i])
|
||||||
|
{
|
||||||
|
case ECORE_X_WINDOW_STATE_ICONIFIED:
|
||||||
|
/* Ignore */
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_MODAL:
|
||||||
|
bd->client.netwm.state.modal = 1;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_STICKY:
|
||||||
|
bd->client.netwm.state.sticky = 1;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT:
|
||||||
|
bd->client.netwm.state.maximized_v = 1;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ:
|
||||||
|
bd->client.netwm.state.maximized_h = 1;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_SHADED:
|
||||||
|
bd->client.netwm.state.shaded = 1;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_SKIP_TASKBAR:
|
||||||
|
bd->client.netwm.state.skip_taskbar = 1;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_SKIP_PAGER:
|
||||||
|
bd->client.netwm.state.skip_pager = 1;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_HIDDEN:
|
||||||
|
bd->client.netwm.state.hidden = 1;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_FULLSCREEN:
|
||||||
|
bd->client.netwm.state.fullscreen = 1;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_ABOVE:
|
||||||
|
bd->client.netwm.state.stacking = E_STACKING_ABOVE;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_BELOW:
|
||||||
|
bd->client.netwm.state.stacking = E_STACKING_BELOW;
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_DEMANDS_ATTENTION:
|
||||||
|
/* FIXME */
|
||||||
|
break;
|
||||||
|
case ECORE_X_WINDOW_STATE_UNKNOWN:
|
||||||
|
/* Ignore */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
free(state);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue