forked from enlightenment/enlightenment
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:
parent
4389030678
commit
64f1f7fcff
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue