summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2022-01-07 00:10:13 +0000
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2022-01-07 00:10:13 +0000
commit61584a5f57c27d2a0835410088091d9dbbdfe57f (patch)
tree3d02fa8fe6a6f2dd527d8ba5a817a89489a4ae9f
parent1f69e41daa76bcbe93129e79be40ca966600f02b (diff)
downloadenlightenment-61584a5f57c27d2a0835410088091d9dbbdfe57f.tar.gz
e focus - fix previous commit segv on no windows left
if window deleted is the focused on... oops - BOOM. not handled. handle it. also revert x focus to root so bindings work. fixes previous 2d86d75139c40e7365e34880b0e3b56f248b0e41 @fix
-rw-r--r--src/bin/e_client.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 85f5504a73..f3d01663b5 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -459,6 +459,14 @@ e_client_revert_focus(E_Client *ec)
static void
_e_client_free(E_Client *ec)
{
+ if (focused == ec)
+ {
+ focused = NULL;
+#ifndef HAVE_WAYLAND_ONLY
+ if (e_comp->comp_type != E_PIXMAP_TYPE_WL)
+ ecore_x_window_focus(e_comp->root);
+#endif
+ }
if (ec->desk)
ec->desk->fullscreen_clients = eina_list_remove(ec->desk->fullscreen_clients, ec);
if (ec->restore_zone_id)