tiling: fix that tiling can't remove client in _desk_set_hook.

Summary:
initailize the tinfo before calling _remove_client.
remove call "_desk_should_tile_check" in "_remove_client", and added it before calling "_remove_client".
That's beause, in _desk_set_hook, use ev->desk (old desk) to initialize tinfo, and then only remove ec using _remove_client.

Test Plan:
(1) launch any app in one desk.
(2) change the any desk.
(3) launch browser or xchat like the app that launch time is relatively slow.
(4) change the in (1)'s desk quickly before completely launching browser or xchat.
(5) you can see wrong splited screen.

Reviewers: tasn, raster, zmike

CC: cedric

Differential Revision: https://phab.enlightenment.org/D860
This commit is contained in:
Seunghun Lee 2014-05-16 10:21:30 +01:00 committed by Tom Hacohen
parent 9157ca8ca7
commit c907a0eead
1 changed files with 6 additions and 6 deletions

View File

@ -640,11 +640,8 @@ _client_remove_no_apply(E_Client *ec)
static void
_remove_client(E_Client *ec)
{
if (desk_should_tile_check(ec->desk))
{
if (_client_remove_no_apply(ec))
_reapply_tree();
}
if (_client_remove_no_apply(ec))
_reapply_tree();
}
/* }}} */
@ -1196,7 +1193,10 @@ _toggle_tiling_based_on_state(E_Client *ec, Eina_Bool restore)
{
_restore_client(ec);
}
_remove_client(ec);
if (desk_should_tile_check(ec->desk))
{
_remove_client(ec);
}
return EINA_TRUE;
}