fix internal transient clients

This commit is contained in:
Mike Blumenkrantz 2014-08-26 00:27:08 -04:00
parent 525b963133
commit e0125a483a
2 changed files with 9 additions and 7 deletions

View File

@ -3024,13 +3024,6 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client *ec)
ec->icccm.accepts_focus = 0;
eina_stringshare_replace(&ec->bordername, "borderless");
}
else if (ec->internal)
{
if (ec->dialog)
ecore_x_icccm_transient_for_set(win, ec->comp->man->root);
else
ecore_x_icccm_transient_for_unset(win);
}
{
E_Event_Client_Property *ev;

View File

@ -389,6 +389,15 @@ e_win_show(E_Win *win)
win->client->take_focus = win->client->changes.size = win->client->changes.pos = 1;
EC_CHANGED(win->client);
}
#ifndef HAVE_WAYLAND_ONLY
if (e_pixmap_is_x(win->client->pixmap))
{
if (win->state.dialog)
ecore_x_icccm_transient_for_set(ecore_evas_window_get(win->ecore_evas), win->client->comp->man->root);
else
ecore_x_icccm_transient_for_unset(ecore_evas_window_get(win->ecore_evas));
}
#endif
_e_win_prop_update(win);
if (win->state.centered)
e_comp_object_util_center(win->client->frame);