fix fullscreen/maximize window zone/desk movement which use actions and pager

ticket #1181


SVN revision: 74047
This commit is contained in:
Mike Blumenkrantz 2012-07-18 07:21:26 +00:00
parent 2408d29b01
commit 547fa4da3c
2 changed files with 11 additions and 0 deletions

View File

@ -1296,8 +1296,10 @@ ACT_FN_GO(window_zone_move_by, )
{
E_Border *bd;
E_Zone *zone;
E_Maximize max;
int move;
char *end;
E_Fullscreen fs;
if (!params) return;
if (!obj) obj = E_OBJECT(e_border_focused_get());
@ -1323,7 +1325,13 @@ ACT_FN_GO(window_zone_move_by, )
move = 0;
zone = eina_list_nth(bd->zone->container->zones, move);
if ((!zone) || (zone->num != (unsigned int)move)) return;
max = bd->maximized;
fs = bd->fullscreen_policy;
if (bd->maximized) e_border_unmaximize(bd, E_MAXIMIZE_BOTH);
if (fs) e_border_unfullscreen(bd);
e_border_zone_set(bd, zone);
if (max) e_border_maximize(bd, max);
if (fs) e_border_fullscreen(bd, fs);
}
/***************************************************************************/

View File

@ -2103,9 +2103,11 @@ _pager_drop_cb_drop(void *data, const char *type, void *event_info)
if (bd)
{
E_Maximize max = bd->maximized;
E_Fullscreen fs = bd->fullscreen_policy;
if (bd->iconic) e_border_uniconify(bd);
if (bd->maximized)
e_border_unmaximize(bd, E_MAXIMIZE_BOTH);
if (fs) e_border_unfullscreen(bd);
e_border_desk_set(bd, pd->desk);
if ((!pw) || ((pw) && (!pw->drag.no_place)))
{
@ -2121,6 +2123,7 @@ _pager_drop_cb_drop(void *data, const char *type, void *event_info)
e_border_move(bd, nx + zx, ny + zy);
}
if (max) e_border_maximize(bd, max);
if (fs) e_border_fullscreen(bd, fs);
}
}