From 555730c2bc7a02d8da68e4e4211341f69680828d Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Wed, 12 Feb 2014 12:20:56 +0000 Subject: [PATCH] Tiling2: Fixed setting of floating on non tiled desktops. --- src/modules/tiling/e_mod_tiling.c | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/modules/tiling/e_mod_tiling.c b/src/modules/tiling/e_mod_tiling.c index 3b3b4f952..f9f30f491 100644 --- a/src/modules/tiling/e_mod_tiling.c +++ b/src/modules/tiling/e_mod_tiling.c @@ -342,7 +342,7 @@ tiling_e_client_move_resize_extra(E_Client *ec, int x, int y, int w, int h) } static Client_Extra * -tiling_entry_func(E_Client *ec) +tiling_entry_no_desk_func(E_Client *ec) { if (!ec) return NULL; @@ -350,9 +350,6 @@ tiling_entry_func(E_Client *ec) if (!is_tilable(ec)) return NULL; - if (!desk_should_tile_check(ec->desk)) - return NULL; - Client_Extra *extra = eina_hash_find(_G.client_extras, &ec); if (!extra) @@ -361,6 +358,20 @@ tiling_entry_func(E_Client *ec) return extra; } +static Client_Extra * +tiling_entry_func(E_Client *ec) +{ + Client_Extra *extra = tiling_entry_no_desk_func(ec); + + if (!extra) + return NULL; + + if (!desk_should_tile_check(ec->desk)) + return NULL; + + return extra; +} + /* }}} */ /* Reorganize Stacks {{{ */ @@ -556,7 +567,7 @@ _remove_client(E_Client *ec) static void toggle_floating(E_Client *ec) { - Client_Extra *extra = tiling_entry_func(ec); + Client_Extra *extra = tiling_entry_no_desk_func(ec); if (!extra) { @@ -565,6 +576,9 @@ toggle_floating(E_Client *ec) extra->floating = !extra->floating; + if (!desk_should_tile_check(ec->desk)) + return; + /* This is the new state, act accordingly. */ if (extra->floating) {