forked from enlightenment/enlightenment
parent
1ad30b0705
commit
7e81ff6ec9
|
@ -1136,6 +1136,37 @@ _pager_window_cb_drag_finished(E_Drag *drag, int dropped)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
int dx, dy, x, y, zx, zy, zw, zh;
|
||||||
|
pw->client->hidden = !p->active_pd->desk->visible;
|
||||||
|
e_client_desk_set(pw->client, p->active_pd->desk);
|
||||||
|
|
||||||
|
dx = (pw->client->w / 2);
|
||||||
|
dy = (pw->client->h / 2);
|
||||||
|
|
||||||
|
evas_pointer_canvas_xy_get(evas_object_evas_get(p->o_table), &x, &y);
|
||||||
|
e_zone_useful_geometry_get(p->zone, &zx, &zy, &zw, &zh);
|
||||||
|
|
||||||
|
/* offset so that center of window is on mouse, but keep within desk bounds */
|
||||||
|
if (dx < x)
|
||||||
|
{
|
||||||
|
x -= dx;
|
||||||
|
if ((pw->client->w < zw) &&
|
||||||
|
(x + pw->client->w > zx + zw))
|
||||||
|
x -= x + pw->client->w - (zx + zw);
|
||||||
|
}
|
||||||
|
else x = 0;
|
||||||
|
|
||||||
|
if (dy < y)
|
||||||
|
{
|
||||||
|
y -= dy;
|
||||||
|
if ((pw->client->h < zh) &&
|
||||||
|
(y + pw->client->h > zy + zh))
|
||||||
|
y -= y + pw->client->h - (zy + zh);
|
||||||
|
}
|
||||||
|
else y = 0;
|
||||||
|
evas_object_move(pw->client->frame, x, y);
|
||||||
|
|
||||||
|
|
||||||
if (!(pw->client->lock_user_stacking))
|
if (!(pw->client->lock_user_stacking))
|
||||||
evas_object_raise(pw->client->frame);
|
evas_object_raise(pw->client->frame);
|
||||||
evas_object_focus_set(pw->client->frame, 1);
|
evas_object_focus_set(pw->client->frame, 1);
|
||||||
|
@ -1337,7 +1368,7 @@ _pager_drop_cb_drop(void *data, const char *type, void *event_info)
|
||||||
e_client_desk_set(ec, pd->desk);
|
e_client_desk_set(ec, pd->desk);
|
||||||
evas_object_raise(ec->frame);
|
evas_object_raise(ec->frame);
|
||||||
|
|
||||||
if ((!pw) && ((!max) && (!fullscreen)))
|
if ((!max) && (!fullscreen))
|
||||||
{
|
{
|
||||||
int zx, zy, zw, zh, mx, my;
|
int zx, zy, zw, zh, mx, my;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue