diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2022-01-07 00:10:13 +0000 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2022-01-07 00:10:13 +0000 |
commit | 61584a5f57c27d2a0835410088091d9dbbdfe57f (patch) | |
tree | 3d02fa8fe6a6f2dd527d8ba5a817a89489a4ae9f | |
parent | 1f69e41daa76bcbe93129e79be40ca966600f02b (diff) | |
download | enlightenment-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.c | 8 |
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) |