Fixed looping code. Disappering windows when using always on top should

be fixed.


SVN revision: 14813
This commit is contained in:
sebastid 2005-05-17 11:57:22 +00:00 committed by sebastid
parent 1112210137
commit a719f16c8c
3 changed files with 30 additions and 17 deletions

View File

@ -70,7 +70,11 @@ _NET_WM_STATE_MODAL [ ]
_NET_WM_STATE_SHADED [X]
_NET_WM_STATE_SKIP_PAGER [ ]
_NET_WM_STATE_SKIP_TASKBAR [ ]
_NET_WM_STATE_STICKY [X]
/* _NET_WM_STATE_STICKY indicates that the
* Window Manager SHOULD keep the window's
* position fixed on the screen, even when
* the virtual desktop scrolls. */
_NET_WM_STATE_STICKY [?]
_NET_WM_STRUT [ ]
_NET_WM_STRUT_PARTIAL [ ]
_NET_WM_SYNC_REQUEST [ ]

View File

@ -60,16 +60,7 @@ e_container_new(E_Manager *man)
con->win = ecore_x_window_override_new(con->manager->win, con->x, con->y, con->w, con->h);
ecore_x_icccm_title_set(con->win, "Enlightenment Container");
mwin = e_menu_grab_window_get();
if (!mwin) mwin = e_init_window_get();
if (!mwin)
ecore_x_window_raise(con->win);
else
ecore_x_window_configure(con->win,
ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
0, 0, 0, 0, 0,
mwin, ECORE_X_WINDOW_STACK_BELOW);
}
else
{
@ -124,8 +115,11 @@ e_container_new(E_Manager *man)
ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
0, 0, 0, 0, 0,
con->layers[i - 1].win, ECORE_X_WINDOW_STACK_ABOVE);
else
ecore_x_window_raise(con->layers[i].win);
}
/* Put init win on top */
mwin = e_init_window_get();
if (mwin)
ecore_x_window_configure(mwin,
@ -135,6 +129,7 @@ e_container_new(E_Manager *man)
con->layers[6].win, ECORE_X_WINDOW_STACK_ABOVE);
/* Put menu win on top */
mwin = e_menu_grab_window_get();
if (mwin)
ecore_x_window_configure(mwin,
@ -143,6 +138,12 @@ e_container_new(E_Manager *man)
0, 0, 0, 0, 0,
con->layers[6].win, ECORE_X_WINDOW_STACK_ABOVE);
/* Put background win at the bottom */
ecore_x_window_configure(con->bg_win,
ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
0, 0, 0, 0, 0,
con->layers[0].win, ECORE_X_WINDOW_STACK_BELOW);
screens = (Evas_List *)e_xinerama_screens_get();
if (screens)
@ -171,7 +172,11 @@ e_container_show(E_Container *con)
E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE);
if (con->visible) return;
ecore_evas_show(con->bg_ecore_evas);
ecore_x_window_lower(con->bg_win);
ecore_x_window_configure(con->bg_win,
ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING |
ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
0, 0, 0, 0, 0,
con->layers[0].win, ECORE_X_WINDOW_STACK_BELOW);
if (con->win != con->manager->win)
ecore_x_window_show(con->win);
ecore_x_icccm_state_set(con->bg_win, ECORE_X_WINDOW_STATE_HINT_NORMAL);
@ -257,6 +262,7 @@ e_container_raise(E_Container *con)
{
E_OBJECT_CHECK(con);
E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE);
#if 0
if (con->win != con->manager->win)
{
ecore_x_window_raise(con->win);
@ -265,6 +271,7 @@ e_container_raise(E_Container *con)
{
ecore_x_window_lower(con->bg_win);
}
#endif
}
void
@ -272,12 +279,14 @@ e_container_lower(E_Container *con)
{
E_OBJECT_CHECK(con);
E_OBJECT_TYPE_CHECK(con, E_CONTAINER_TYPE);
#if 0
if (con->win != con->manager->win)
ecore_x_window_lower(con->win);
else
{
ecore_x_window_lower(con->bg_win);
}
#endif
}
E_Zone *
@ -791,7 +800,11 @@ e_container_border_list_prev(E_Border_List *list)
list->clients = list->clients->prev;
while ((list->layer > 0) && (!list->clients))
list->clients = list->container->layers[--list->layer].clients;
{
list->layer--;
if (list->container->layers[list->layer].clients)
list->clients = list->container->layers[list->layer].clients->last;
}
return bd;
}

View File

@ -645,10 +645,6 @@ _e_main_screens_init(void)
}
}
/* Init border stacking */
e_hints_client_list_set();
e_hints_client_stacking_set();
free(roots);
ecore_x_sync();
return 1;