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.
This commit is contained in:
Tom Hacohen 2015-04-13 11:17:25 +01:00
parent 4389030678
commit 64f1f7fcff
1 changed files with 9 additions and 1 deletions

View File

@ -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();