Fix unmaximize left/right

We need to save original x and width values in both cases.



SVN revision: 76200
This commit is contained in:
Eduardo de Barros Lima 2012-09-05 14:59:43 +00:00
parent 0a50c49958
commit c112a36760
2 changed files with 16 additions and 4 deletions

View File

@ -2783,7 +2783,10 @@ e_border_maximize(E_Border *bd,
}
bd->pre_res_change.valid = 0;
if (!(bd->maximized & E_MAXIMIZE_HORIZONTAL))
if (!(bd->maximized & E_MAXIMIZE_HORIZONTAL) ||
(bd->maximized & E_MAXIMIZE_LEFT) ||
(bd->maximized & E_MAXIMIZE_RIGHT))
{
/* Horizontal hasn't been set */
bd->saved.x = bd->x - bd->zone->x;
@ -2795,6 +2798,7 @@ e_border_maximize(E_Border *bd,
bd->saved.y = bd->y - bd->zone->y;
bd->saved.h = bd->h;
}
bd->saved.zone = bd->zone->num;
e_hints_window_size_set(bd);
@ -2868,8 +2872,16 @@ e_border_unmaximize(E_Border *bd,
y = bd->saved.y + bd->zone->y;
bd->saved.h = bd->saved.y = 0;
bd->maximized &= ~E_MAXIMIZE_VERTICAL;
bd->maximized &= ~E_MAXIMIZE_LEFT;
bd->maximized &= ~E_MAXIMIZE_RIGHT;
if (max & E_MAXIMIZE_LEFT ||
max & E_MAXIMIZE_RIGHT)
{
w = bd->saved.w;
x = bd->saved.x + bd->zone->x;
bd->saved.w = bd->saved.x = 0;
bd->maximized &= ~E_MAXIMIZE_LEFT;
bd->maximized &= ~E_MAXIMIZE_RIGHT;
}
}
if (max & E_MAXIMIZE_HORIZONTAL)
{

View File

@ -61,7 +61,7 @@ typedef enum _E_Maximize
E_MAXIMIZE_VERTICAL = 0x00000010,
E_MAXIMIZE_HORIZONTAL = 0x00000020,
E_MAXIMIZE_BOTH = 0x00000030,
E_MAXIMIZE_LEFT = 0x00000060,
E_MAXIMIZE_LEFT = 0x00000050,
E_MAXIMIZE_RIGHT = 0x00000090,
E_MAXIMIZE_DIRECTION = 0x000000f0
} E_Maximize;