parent
4f00524964
commit
f919722f06
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue