Tiling2: Fix handling of maximized windows.

This fixes T978.
This commit is contained in:
Tom Hacohen 2014-02-20 14:56:27 +00:00
parent 457271f167
commit 5e25cddeb1
1 changed files with 25 additions and 1 deletions

View File

@ -153,7 +153,8 @@ desk_should_tile_check(const E_Desk *desk)
static int
is_ignored_window(const Client_Extra *extra)
{
if (extra->client->sticky || extra->floating)
if (extra->client->sticky || extra->client->maximized ||
extra->client->fullscreen || extra->floating)
return true;
return false;
@ -834,6 +835,26 @@ _e_mod_action_toggle_split_mode(E_Object *obj EINA_UNUSED,
/* }}} */
/* Hooks {{{ */
static Eina_Bool
_maximize_check_handle(E_Client *ec, Client_Extra *extra)
{
if (extra->tiled && ec->maximized)
{
_restore_client_no_sizing(ec);
_remove_client(ec);
return EINA_TRUE;
}
else if (!extra->tiled && !ec->maximized)
{
_add_client(ec);
return EINA_TRUE;
}
return EINA_FALSE;
}
static void
_move_or_resize(E_Client *ec)
{
@ -844,6 +865,9 @@ _move_or_resize(E_Client *ec)
return;
}
if (_maximize_check_handle(ec, extra))
return;
if (is_ignored_window(extra))
return;