clean up and re-enable pager win dragging

SVN revision: 16681
This commit is contained in:
rephorm 2005-09-10 23:47:19 +00:00 committed by rephorm
parent b48eefe56c
commit 71739d63b5
2 changed files with 15 additions and 6 deletions

View File

@ -534,12 +534,12 @@ _pager_face_new(Pager *pager, E_Zone *zone, Evas *evas)
"enlightenment/border",
face->fx, face->fy, face->fw, face->fh);
face->drop_handler = e_drop_handler_add(face,
face->drop_handler_win = e_drop_handler_add(face,
_pager_face_cb_enter, _pager_face_cb_move,
_pager_face_cb_leave, _pager_face_cb_drop,
"enlightenment/pager_win",
face->fx, face->fy, face->fw, face->fh);
face->gmc = e_gadman_client_new(zone->container->gadman);
_pager_face_zone_set(face, zone);
@ -574,6 +574,7 @@ _pager_face_free(Pager_Face *face)
e_object_del(E_OBJECT(face->gmc));
e_drop_handler_del(face->drop_handler);
e_drop_handler_del(face->drop_handler_win);
_pager_face_zone_unset(face);
@ -960,6 +961,10 @@ _pager_face_cb_gmc_change(void *data, E_Gadman_Client *gmc, E_Gadman_Change chan
face->fx + face->inset.l, face->fy + face->inset.t,
face->fw - (face->inset.l + face->inset.r),
face->fh - (face->inset.t + face->inset.b));
e_drop_handler_geometry_set(face->drop_handler_win,
face->fx + face->inset.l, face->fy + face->inset.t,
face->fw - (face->inset.l + face->inset.r),
face->fh - (face->inset.t + face->inset.b));
switch (change)
{
case E_GADMAN_CHANGE_MOVE_RESIZE:
@ -1867,8 +1872,8 @@ _pager_window_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_i
if (!pw) return;
if (pw->drag.start)
{
#if 0
printf("DRAG: %d\n", pw);
#if 1
// printf("DRAG: %d\n", pw);
if ((pw->drag.x == -1) && (pw->drag.y == -1))
{
pw->drag.x = ev->cur.output.x;
@ -1916,7 +1921,8 @@ _pager_window_cb_mouse_move(void *data, Evas *e, Evas_Object *obj, void *event_i
e_drag_start(drag, pw->drag.x, pw->drag.y);
/* this prevents the desk from switching on drags */
pw->desk->face->dragging = 1;
pw->drag.from_face = pw->desk->face;
pw->drag.from_face->dragging = 1;
evas_event_feed_mouse_up(pw->desk->face->evas, 1,
EVAS_BUTTON_NONE, ecore_time_get(), NULL);
}
@ -1938,7 +1944,7 @@ _pager_window_cb_drag_finished(E_Drag *drag, int dropped)
if (pw && pw->desk && pw->desk->face)
{
pw->desk->face->dragging = 0;
pw->drag.from_face->dragging = 0;
}
}
@ -2033,6 +2039,7 @@ _pager_face_cb_drop(void *data, const char *type, void *event_info)
desk = e_desk_at_xy_get(face->zone, x, y);
//printf("drop %s\n", type);
if (!strcmp(type, "enlightenment/pager_win"))
{

View File

@ -95,6 +95,7 @@ struct _Pager_Face
Config_Face *conf;
E_Drop_Handler *drop_handler;
E_Drop_Handler *drop_handler_win;
Pager_Popup *current_popup;
@ -126,6 +127,7 @@ struct _Pager_Win
Evas_Object *event_object;
struct {
Pager_Face *from_face;
unsigned char start : 1;
int x, y;
} drag;