comp - handle possible case where we're grabbed - ungrab first

This commit is contained in:
Carsten Haitzler 2020-04-19 23:52:34 +01:00
parent 1d7adf0626
commit fee794af29
1 changed files with 17 additions and 16 deletions

View File

@ -5450,6 +5450,19 @@ _e_comp_x_del(E_Comp *c)
{ {
unsigned int i; unsigned int i;
if (!e_comp_wl)
ecore_x_window_key_ungrab(c->root, "F", ECORE_EVENT_MODIFIER_SHIFT |
ECORE_EVENT_MODIFIER_CTRL |
ECORE_EVENT_MODIFIER_ALT, 0);
if (ecore_x_display_get())
{
if (c->grabbed)
{
c->grabbed = 0;
ecore_x_ungrab();
ecore_x_sync();
}
if (restart) if (restart)
{ {
Ecore_X_Atom a; Ecore_X_Atom a;
@ -5466,18 +5479,6 @@ _e_comp_x_del(E_Comp *c)
ecore_x_sync(); ecore_x_sync();
} }
if (!e_comp_wl)
ecore_x_window_key_ungrab(c->root, "F", ECORE_EVENT_MODIFIER_SHIFT |
ECORE_EVENT_MODIFIER_CTRL |
ECORE_EVENT_MODIFIER_ALT, 0);
if (ecore_x_display_get())
{
if (c->grabbed)
{
c->grabbed = 0;
ecore_x_ungrab();
}
for (i = e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); i <= e_comp_canvas_layer_map(E_LAYER_CLIENT_PRIO); i++) for (i = e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); i <= e_comp_canvas_layer_map(E_LAYER_CLIENT_PRIO); i++)
ecore_x_window_free(c->layers[i].win); ecore_x_window_free(c->layers[i].win);