reparent initwin to compositor win so init win doesnt hang while e gets up

and going.



SVN revision: 47153
This commit is contained in:
Carsten Haitzler 2010-03-12 08:47:13 +00:00
parent 4118dd6edc
commit 4bafaa704d
1 changed files with 17 additions and 6 deletions

View File

@ -14,13 +14,11 @@
// 3. for unmapped windows - when window goes out of unmapped comp cache
// make a miniature copy (1/4 width+height?) and set property on window
// with pixmap id
// 6. other engine fast-paths (gl specifically)!
// 8. transparenty property
// 9. shortcut lots of stuff to draw inside the compositor - shelf,
// wallpaper, efm - hell even menus and anything else in e (this is what
// e18 was mostly about)
// 10. fullscreen windows need to be able to bypass compositing
// 11. handle root window resize!
// 10. fullscreen windows need to be able to bypass compositing *seems buggy*
//
//////////////////////////////////////////////////////////////////////////
@ -1997,7 +1995,22 @@ _e_mod_comp_add(E_Manager *man)
{
E_Comp_Win *cw;
int x, y, w, h, border;
char *wname = NULL, *wclass = NULL;
ecore_x_icccm_name_class_get(wins[i], &wname, &wclass);
if ((man->initwin == wins[i]) ||
((wname) && (wclass) && (!strcmp(wname, "E")) &&
(!strcmp(wclass, "Init_Window"))))
{
free(wname);
free(wclass);
ecore_x_window_reparent(wins[i], c->win, 0, 0);
ecore_x_sync();
continue;
}
if (wname) free(wname);
if (wclass) free(wclass);
wname = wclass = NULL;
cw = _e_mod_comp_win_add(c, wins[i]);
if (!cw) continue;
ecore_x_window_geometry_get(cw->win, &x, &y, &w, &h);
@ -2005,9 +2018,7 @@ _e_mod_comp_add(E_Manager *man)
if (wins[i] == c->win) continue;
_e_mod_comp_win_configure(cw, x, y, w, h, border);
if (ecore_x_window_visible_get(wins[i]))
{
_e_mod_comp_win_show(cw);
}
_e_mod_comp_win_show(cw);
}
free(wins);
}