reparent initwin to compositor win so init win doesnt hang while e gets up
and going. SVN revision: 47153
This commit is contained in:
parent
4118dd6edc
commit
4bafaa704d
|
@ -14,13 +14,11 @@
|
||||||
// 3. for unmapped windows - when window goes out of unmapped comp cache
|
// 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
|
// make a miniature copy (1/4 width+height?) and set property on window
|
||||||
// with pixmap id
|
// with pixmap id
|
||||||
// 6. other engine fast-paths (gl specifically)!
|
|
||||||
// 8. transparenty property
|
// 8. transparenty property
|
||||||
// 9. shortcut lots of stuff to draw inside the compositor - shelf,
|
// 9. shortcut lots of stuff to draw inside the compositor - shelf,
|
||||||
// wallpaper, efm - hell even menus and anything else in e (this is what
|
// wallpaper, efm - hell even menus and anything else in e (this is what
|
||||||
// e18 was mostly about)
|
// e18 was mostly about)
|
||||||
// 10. fullscreen windows need to be able to bypass compositing
|
// 10. fullscreen windows need to be able to bypass compositing *seems buggy*
|
||||||
// 11. handle root window resize!
|
|
||||||
//
|
//
|
||||||
//////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@ -1997,7 +1995,22 @@ _e_mod_comp_add(E_Manager *man)
|
||||||
{
|
{
|
||||||
E_Comp_Win *cw;
|
E_Comp_Win *cw;
|
||||||
int x, y, w, h, border;
|
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]);
|
cw = _e_mod_comp_win_add(c, wins[i]);
|
||||||
if (!cw) continue;
|
if (!cw) continue;
|
||||||
ecore_x_window_geometry_get(cw->win, &x, &y, &w, &h);
|
ecore_x_window_geometry_get(cw->win, &x, &y, &w, &h);
|
||||||
|
@ -2005,10 +2018,8 @@ _e_mod_comp_add(E_Manager *man)
|
||||||
if (wins[i] == c->win) continue;
|
if (wins[i] == c->win) continue;
|
||||||
_e_mod_comp_win_configure(cw, x, y, w, h, border);
|
_e_mod_comp_win_configure(cw, x, y, w, h, border);
|
||||||
if (ecore_x_window_visible_get(wins[i]))
|
if (ecore_x_window_visible_get(wins[i]))
|
||||||
{
|
|
||||||
_e_mod_comp_win_show(cw);
|
_e_mod_comp_win_show(cw);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
free(wins);
|
free(wins);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue