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;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (ec->e.state.centered)
|
if (ec->e.state.centered || e_win_centered_get(ec->internal_elm_win))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!tiling_g.config->tile_dialogs && ((ec->icccm.transient_for != 0) ||
|
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;
|
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);
|
e_client_act_move_end(event->ec, NULL);
|
||||||
|
|
||||||
_reapply_tree();
|
_reapply_tree();
|
||||||
|
|
Loading…
Reference in New Issue