e now remembers left/right maximization state across restarts

ticket #1694


SVN revision: 79294
This commit is contained in:
Mike Blumenkrantz 2012-11-14 13:47:37 +00:00
parent a3a8cc827c
commit c752389817
2 changed files with 25 additions and 3 deletions

View File

@ -2829,8 +2829,14 @@ e_border_maximize(E_Border *bd,
/* Add new maximization. It must be added, so that VERTICAL + HORIZONTAL == BOTH */
bd->maximized |= max;
e_hints_window_maximized_set(bd, bd->maximized & E_MAXIMIZE_HORIZONTAL,
bd->maximized & E_MAXIMIZE_VERTICAL);
if ((bd->maximized & E_MAXIMIZE_DIRECTION) > E_MAXIMIZE_BOTH)
/* left/right maximize */
e_hints_window_maximized_set(bd, 0,
((bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_LEFT) ||
((bd->maximized & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_RIGHT));
else
e_hints_window_maximized_set(bd, bd->maximized & E_MAXIMIZE_HORIZONTAL,
bd->maximized & E_MAXIMIZE_VERTICAL);
e_remember_update(bd);
}

View File

@ -515,7 +515,23 @@ e_hints_window_init(E_Border *bd)
if (!bd->lock_client_maximize)
{
e_hints_window_size_get(bd);
e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL);
do
{
if (bd->client.initial_attributes.w == (bd->zone->w / 2))
{
if (!bd->client.initial_attributes.x)
{
e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_LEFT);
break;
}
else if (bd->client.initial_attributes.x == bd->zone->w / 2)
{
e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_RIGHT);
break;
}
}
e_border_maximize(bd, (e_config->maximize_policy & E_MAXIMIZE_TYPE) | E_MAXIMIZE_VERTICAL);
} while (0);
}
else
e_hints_window_maximized_set(bd, 0, 0);