forked from enlightenment/enlightenment
tiling - avoid infinite loop of not fit - toggle float, not fit, toggle
this actually just blows the stack soon enough... so short circuit it.
This commit is contained in:
parent
2aae421d7a
commit
265c306874
|
@ -46,6 +46,7 @@ typedef struct Client_Extra
|
||||||
Eina_Bool floating E_BITFIELD;
|
Eina_Bool floating E_BITFIELD;
|
||||||
Eina_Bool tiled E_BITFIELD;
|
Eina_Bool tiled E_BITFIELD;
|
||||||
Eina_Bool tracked E_BITFIELD;
|
Eina_Bool tracked E_BITFIELD;
|
||||||
|
Eina_Bool being_removed E_BITFIELD;
|
||||||
} Client_Extra;
|
} Client_Extra;
|
||||||
|
|
||||||
typedef struct _Instance
|
typedef struct _Instance
|
||||||
|
@ -793,6 +794,8 @@ _client_remove_no_apply(E_Client *ec)
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extra->being_removed = EINA_TRUE;
|
||||||
|
|
||||||
if (extra->drag.drag)
|
if (extra->drag.drag)
|
||||||
{
|
{
|
||||||
_client_drag_terminate(ec);
|
_client_drag_terminate(ec);
|
||||||
|
@ -840,6 +843,8 @@ toggle_floating(E_Client *ec)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (extra->being_removed) return;
|
||||||
|
|
||||||
extra->floating = !extra->floating;
|
extra->floating = !extra->floating;
|
||||||
|
|
||||||
if (!desk_should_tile_check(ec->desk))
|
if (!desk_should_tile_check(ec->desk))
|
||||||
|
|
Loading…
Reference in New Issue