summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2019-08-10 08:32:11 +0100
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2019-08-10 08:32:11 +0100
commit265c3068740529990a2ab14477db20e773b149d4 (patch)
tree07704ea1abc6f3ddb5e3e2f6836146bb32ef5d6e
parent2aae421d7acb2570d106509a777781b30ddb7bc5 (diff)
downloadenlightenment-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.c5
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))