From f919722f06ebcd52e70e171ea14993807c506c81 Mon Sep 17 00:00:00 2001 From: sebastid Date: Wed, 23 Mar 2005 15:40:53 +0000 Subject: [PATCH] More dnd cleanup. SVN revision: 13875 --- legacy/ecore/src/lib/ecore_x/Ecore_X.h | 4 +--- legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c | 2 +- legacy/ecore/src/lib/ecore_x/ecore_x_events.c | 13 +++---------- 3 files changed, 5 insertions(+), 14 deletions(-) diff --git a/legacy/ecore/src/lib/ecore_x/Ecore_X.h b/legacy/ecore/src/lib/ecore_x/Ecore_X.h index 03dbf14a63..fcebfa9d27 100644 --- a/legacy/ecore/src/lib/ecore_x/Ecore_X.h +++ b/legacy/ecore/src/lib/ecore_x/Ecore_X.h @@ -455,7 +455,6 @@ struct _Ecore_X_Event_Selection_Notify struct _Ecore_X_Event_Xdnd_Enter { Ecore_X_Window win, source; - Ecore_X_Time time; char **types; int num_types; @@ -467,7 +466,6 @@ struct _Ecore_X_Event_Xdnd_Position struct { int x, y; } position; - Ecore_X_Time time; Ecore_X_Atom action; }; @@ -475,6 +473,7 @@ struct _Ecore_X_Event_Xdnd_Status { Ecore_X_Window win, target; int will_accept; + int suppress; Ecore_X_Rectangle rectangle; Ecore_X_Atom action; }; @@ -487,7 +486,6 @@ struct _Ecore_X_Event_Xdnd_Leave struct _Ecore_X_Event_Xdnd_Drop { Ecore_X_Window win, source; - Ecore_X_Time time; Ecore_X_Atom action; struct { int x, y; diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c b/legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c index ff1798e750..1faff4a8f1 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c +++ b/legacy/ecore/src/lib/ecore_x/ecore_x_dnd.c @@ -239,9 +239,9 @@ ecore_x_dnd_send_finished(void) xev.xany.type = ClientMessage; xev.xany.display = _ecore_x_disp; - xev.xclient.window = _xdnd->source; xev.xclient.message_type = ECORE_X_ATOM_XDND_FINISHED; xev.xclient.format = 32; + xev.xclient.window = _xdnd->source; xev.xclient.data.l[0] = _xdnd->dest; memset(xev.xclient.data.l + 1, 0, sizeof(long) * 3); diff --git a/legacy/ecore/src/lib/ecore_x/ecore_x_events.c b/legacy/ecore/src/lib/ecore_x/ecore_x_events.c index ef6d636cd6..c501f17c02 100644 --- a/legacy/ecore/src/lib/ecore_x/ecore_x_events.c +++ b/legacy/ecore/src/lib/ecore_x/ecore_x_events.c @@ -1204,8 +1204,6 @@ _ecore_x_event_handle_client_message(XEvent *xevent) e->win = _xdnd->dest; e->source = _xdnd->source; - e->time = CurrentTime; - _ecore_x_event_last_time = e->time; ecore_event_add(ECORE_X_EVENT_XDND_ENTER, e, _ecore_x_event_free_xdnd_enter, NULL); } @@ -1221,10 +1219,6 @@ _ecore_x_event_handle_client_message(XEvent *xevent) _xdnd->pos.x = xevent->xclient.data.l[2] >> 16; _xdnd->pos.y = xevent->xclient.data.l[2] & 0xFFFFUL; _xdnd->action = xevent->xclient.data.l[4]; /* Version 2 */ - /* TODO: Resolve a suitable method for enumerating Xdnd actions */ - - /* Would it be feasible to handle the processing of this message - * within ecore? I think not, but someone might have an idea here. */ _ecore_x_event_last_time = (_xdnd->version >= 1) ? (Time)xevent->xclient.data.l[3] : CurrentTime; @@ -1235,7 +1229,6 @@ _ecore_x_event_handle_client_message(XEvent *xevent) e->source = _xdnd->source; e->position.x = _xdnd->pos.x; e->position.y = _xdnd->pos.y; - e->time = xevent->xclient.data.l[3]; /* Version 1 */ e->action = _xdnd->action; ecore_event_add(ECORE_X_EVENT_XDND_POSITION, e, NULL, NULL); } @@ -1266,6 +1259,7 @@ _ecore_x_event_handle_client_message(XEvent *xevent) e->win = _xdnd->source; e->target = _xdnd->dest; e->will_accept = _xdnd->will_accept; + e->suppress = _xdnd->suppress; e->rectangle.x = _xdnd->rectangle.x; e->rectangle.y = _xdnd->rectangle.y; e->rectangle.width = _xdnd->rectangle.width; @@ -1300,7 +1294,6 @@ _ecore_x_event_handle_client_message(XEvent *xevent) { Ecore_X_Event_Xdnd_Drop *e; Ecore_X_DND_Protocol *_xdnd; - Ecore_X_Time timestamp; _xdnd = _ecore_x_dnd_protocol_get(); /* Match source/target */ @@ -1308,14 +1301,13 @@ _ecore_x_event_handle_client_message(XEvent *xevent) || (_xdnd->dest != xevent->xclient.window)) return; - timestamp = (_xdnd->version >= 1) ? + _ecore_x_event_last_time = (_xdnd->version >= 1) ? (Time)xevent->xclient.data.l[2] : _ecore_x_event_last_time; e = calloc(1, sizeof(Ecore_X_Event_Xdnd_Drop)); if (!e) return; e->win = _xdnd->dest; e->source = _xdnd->source; - e->time = timestamp; e->action = _xdnd->action; e->position.x = _xdnd->pos.x; e->position.y = _xdnd->pos.y; @@ -1338,6 +1330,7 @@ _ecore_x_event_handle_client_message(XEvent *xevent) if ((_xdnd->version >= 5) && (xevent->xclient.data.l[1] & 0x1UL)) { /* Target successfully performed drop action */ + ecore_x_selection_xdnd_clear(); _xdnd->state = ECORE_X_DND_IDLE; } else { completed = 0;