From 64f1f7fcffc8d161ebb7de0098700a9bff7ec752 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Mon, 13 Apr 2015 11:17:25 +0100 Subject: [PATCH] Tiling: don't tile centered windows. This broke with the change to elm (so within this release cycle). Tiling wasn't properly detecting windows who become centered after creation as there was no e event for that. This is now fixed, and a blanket solution for similar gotchas has been implemented (otherwise known as a hack). Thanks to Mike for helping out. --- src/modules/tiling/e_mod_tiling.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/modules/tiling/e_mod_tiling.c b/src/modules/tiling/e_mod_tiling.c index a4b16d9da..92335d0b8 100644 --- a/src/modules/tiling/e_mod_tiling.c +++ b/src/modules/tiling/e_mod_tiling.c @@ -187,7 +187,7 @@ is_tilable(const E_Client *ec) return false; #endif - if (ec->e.state.centered) + if (ec->e.state.centered || e_win_centered_get(ec->internal_elm_win)) return false; if (!tiling_g.config->tile_dialogs && ((ec->icccm.transient_for != 0) || @@ -1119,6 +1119,14 @@ _move_hook(void *data EINA_UNUSED, int type EINA_UNUSED, E_Event_Client *event) return true; } + /* A hack because e doesn't trigger events for all property changes */ + if (!is_tilable(ec)) + { + toggle_floating(ec); + + return true; + } + e_client_act_move_end(event->ec, NULL); _reapply_tree();