diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2019-08-10 08:32:11 +0100 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2019-08-10 08:32:11 +0100 |
commit | 265c3068740529990a2ab14477db20e773b149d4 (patch) | |
tree | 07704ea1abc6f3ddb5e3e2f6836146bb32ef5d6e | |
parent | 2aae421d7acb2570d106509a777781b30ddb7bc5 (diff) | |
download | enlightenment-265c3068740529990a2ab14477db20e773b149d4.tar.gz |
tiling - avoid infinite loop of not fit - toggle float, not fit, toggle
this actually just blows the stack soon enough... so short circuit it.
-rw-r--r-- | src/modules/tiling/e_mod_tiling.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/modules/tiling/e_mod_tiling.c b/src/modules/tiling/e_mod_tiling.c index 12f097a05d..14aadced8d 100644 --- a/src/modules/tiling/e_mod_tiling.c +++ b/src/modules/tiling/e_mod_tiling.c @@ -46,6 +46,7 @@ typedef struct Client_Extra Eina_Bool floating E_BITFIELD; Eina_Bool tiled E_BITFIELD; Eina_Bool tracked E_BITFIELD; + Eina_Bool being_removed E_BITFIELD; } Client_Extra; typedef struct _Instance @@ -793,6 +794,8 @@ _client_remove_no_apply(E_Client *ec) return EINA_FALSE; } + extra->being_removed = EINA_TRUE; + if (extra->drag.drag) { _client_drag_terminate(ec); @@ -840,6 +843,8 @@ toggle_floating(E_Client *ec) return; } + if (extra->being_removed) return; + extra->floating = !extra->floating; if (!desk_should_tile_check(ec->desk)) |