summaryrefslogtreecommitdiff
path: root/src/modules
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 /src/modules
parent2aae421d7acb2570d106509a777781b30ddb7bc5 (diff)
tiling - avoid infinite loop of not fit - toggle float, not fit, toggle
this actually just blows the stack soon enough... so short circuit it.
Diffstat (limited to 'src/modules')
-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 12f097a..14aadce 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
46 Eina_Bool floating E_BITFIELD; 46 Eina_Bool floating E_BITFIELD;
47 Eina_Bool tiled E_BITFIELD; 47 Eina_Bool tiled E_BITFIELD;
48 Eina_Bool tracked E_BITFIELD; 48 Eina_Bool tracked E_BITFIELD;
49 Eina_Bool being_removed E_BITFIELD;
49} Client_Extra; 50} Client_Extra;
50 51
51typedef struct _Instance 52typedef struct _Instance
@@ -793,6 +794,8 @@ _client_remove_no_apply(E_Client *ec)
793 return EINA_FALSE; 794 return EINA_FALSE;
794 } 795 }
795 796
797 extra->being_removed = EINA_TRUE;
798
796 if (extra->drag.drag) 799 if (extra->drag.drag)
797 { 800 {
798 _client_drag_terminate(ec); 801 _client_drag_terminate(ec);
@@ -840,6 +843,8 @@ toggle_floating(E_Client *ec)
840 return; 843 return;
841 } 844 }
842 845
846 if (extra->being_removed) return;
847
843 extra->floating = !extra->floating; 848 extra->floating = !extra->floating;
844 849
845 if (!desk_should_tile_check(ec->desk)) 850 if (!desk_should_tile_check(ec->desk))