forked from enlightenment/enlightenment
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:
parent
9157ca8ca7
commit
c907a0eead
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue