if (!(ec->maximized & E_MAXIMIZE_HORIZONTAL))
{
/* Horizontal hasn't been set */
- ec->saved.x = ec->client.x;
+ ec->saved.x = ec->client.x - ec->zone->x;
ec->saved.w = ec->client.w;
}
if (!(ec->maximized & E_MAXIMIZE_VERTICAL))
{
/* Vertical hasn't been set */
- ec->saved.y = ec->client.y;
+ ec->saved.y = ec->client.y - ec->zone->y;
ec->saved.h = ec->client.h;
}
evas_object_smart_callback_call(ec->frame, "unmaximize", NULL);
ec->maximized = E_MAXIMIZE_NONE;
e_client_util_move_resize_without_frame(ec,
- ec->saved.x,
- ec->saved.y,
+ ec->saved.x + ec->zone->x,
+ ec->saved.y + ec->zone->y,
ec->saved.w, ec->saved.h);
ec->saved.x = ec->saved.y = ec->saved.w = ec->saved.h = 0;
e_hints_window_size_unset(ec);
}
else
{
- ec->saved.x = ec->x - ec->zone->x;
- ec->saved.y = ec->y - ec->zone->y;
+ ec->saved.x = ec->client.x - ec->zone->x;
+ ec->saved.y = ec->client.y - ec->zone->y;
ec->saved.w = ec->client.w;
ec->saved.h = ec->client.h;
}
if ((eina_list_count(ec->comp->zones) > 1) ||
(policy == E_FULLSCREEN_RESIZE) || (!ecore_x_randr_query()))
{
- evas_object_geometry_set(ec->frame, ec->zone->x, ec->zone->y, ec->zone->w, ec->zone->h);
+ e_comp_object_util_fullscreen(ec->frame);
}
else if (policy == E_FULLSCREEN_ZOOM)
{
if ((!cw->ec->shading) && (!cw->ec->shaded))
{
cw->ec->changes.need_unmaximize = 1;
- cw->ec->saved.x = ix;
- cw->ec->saved.y = iy;
+ cw->ec->saved.x = ix - cw->ec->zone->x;
+ cw->ec->saved.y = iy - cw->ec->zone->y;
cw->ec->saved.w = cw->ec->client.w;
cw->ec->saved.h = cw->ec->client.h;
EC_CHANGED(cw->ec);
cw->ec->changes.need_unmaximize = 1;
cw->ec->saved.w = iw;
cw->ec->saved.h = ih;
- cw->ec->saved.x = cw->ec->client.x;
- cw->ec->saved.y = cw->ec->client.y;
+ cw->ec->saved.x = cw->ec->client.x - cw->ec->zone->x;
+ cw->ec->saved.y = cw->ec->client.y - cw->ec->zone->y;
EC_CHANGED(cw->ec);
return;
}
{
if ((ec->maximized & E_MAXIMIZE_TYPE) != E_MAXIMIZE_NONE)
{
+ E_Zone *zone;
+
ec->saved.x = x;
ec->saved.y = y;
+
+ zone = e_comp_zone_xy_get(ec->comp, x, y);
+ if (zone && (zone->x || zone->y))
+ {
+ ec->saved.x -= zone->x;
+ ec->saved.y -= zone->y;
+ }
}
else
{