clipboard work
This commit is contained in:
parent
b26da5af83
commit
2293410d7e
@ -498,8 +498,9 @@ clipboard_process_data_response(struct stream* s, int clip_msg_status,
|
|||||||
xev.xselection.selection = lxev->selection;
|
xev.xselection.selection = lxev->selection;
|
||||||
xev.xselection.target = lxev->target;
|
xev.xselection.target = lxev->target;
|
||||||
xev.xselection.property = lxev->property;
|
xev.xselection.property = lxev->property;
|
||||||
xev.xselection.time = CurrentTime;
|
xev.xselection.time = lxev->time;
|
||||||
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
||||||
|
//XSelectInput(g_display, lxev->requestor, PropertyChangeMask);
|
||||||
LOG(1, ("clipboard_process_data_response: %d", lxev->requestor));
|
LOG(1, ("clipboard_process_data_response: %d", lxev->requestor));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -795,7 +796,7 @@ clipboard_event_selection_notify(XEvent* xevent)
|
|||||||
if (convert_to_string)
|
if (convert_to_string)
|
||||||
{
|
{
|
||||||
XConvertSelection(g_display, g_clipboard_atom, XA_STRING,
|
XConvertSelection(g_display, g_clipboard_atom, XA_STRING,
|
||||||
g_clip_property_atom, g_wnd, CurrentTime);
|
g_clip_property_atom, g_wnd, lxevent->time);
|
||||||
}
|
}
|
||||||
if (send_format_announce)
|
if (send_format_announce)
|
||||||
{
|
{
|
||||||
@ -864,6 +865,7 @@ clipboard_event_selection_request(XEvent* xevent)
|
|||||||
xev.xselection.property = lxev->property;
|
xev.xselection.property = lxev->property;
|
||||||
xev.xselection.time = lxev->time;
|
xev.xselection.time = lxev->time;
|
||||||
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
||||||
|
//XSelectInput(g_display, lxev->requestor, PropertyChangeMask);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else if (lxev->target == g_timestamp_atom)
|
else if (lxev->target == g_timestamp_atom)
|
||||||
@ -883,6 +885,7 @@ clipboard_event_selection_request(XEvent* xevent)
|
|||||||
xev.xselection.property = lxev->property;
|
xev.xselection.property = lxev->property;
|
||||||
xev.xselection.time = lxev->time;
|
xev.xselection.time = lxev->time;
|
||||||
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
||||||
|
//XSelectInput(g_display, lxev->requestor, PropertyChangeMask);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
else if (lxev->target == g_multiple_atom)
|
else if (lxev->target == g_multiple_atom)
|
||||||
@ -916,8 +919,9 @@ clipboard_event_selection_request(XEvent* xevent)
|
|||||||
xev.xselection.selection = lxev->selection;
|
xev.xselection.selection = lxev->selection;
|
||||||
xev.xselection.target = lxev->target;
|
xev.xselection.target = lxev->target;
|
||||||
xev.xselection.property = lxev->property;
|
xev.xselection.property = lxev->property;
|
||||||
xev.xselection.time = CurrentTime;
|
xev.xselection.time = lxev->time;
|
||||||
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
||||||
|
//XSelectInput(g_display, lxev->requestor, PropertyChangeMask);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (g_selection_request_event_count > 10)
|
if (g_selection_request_event_count > 10)
|
||||||
@ -951,6 +955,7 @@ clipboard_event_selection_request(XEvent* xevent)
|
|||||||
xev.xselection.property = None;
|
xev.xselection.property = None;
|
||||||
xev.xselection.time = lxev->time;
|
xev.xselection.time = lxev->time;
|
||||||
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
XSendEvent(g_display, lxev->requestor, False, NoEventMask, &xev);
|
||||||
|
//XSelectInput(g_display, lxev->requestor, PropertyChangeMask);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -973,6 +978,27 @@ clipboard_event_selection_clear(XEvent* xevent)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/* returns error
|
||||||
|
typedef struct {
|
||||||
|
int type; // PropertyNotify
|
||||||
|
unsigned long serial; // # of last request processed by server
|
||||||
|
Bool send_event; // true if this came from a SendEvent request
|
||||||
|
Display *display; // Display the event was read from
|
||||||
|
Window window;
|
||||||
|
Atom atom;
|
||||||
|
Time time;
|
||||||
|
int state; // PropertyNewValue or PropertyDelete
|
||||||
|
} XPropertyEvent; */
|
||||||
|
static int APP_CC
|
||||||
|
clipboard_event_property_notify(XEvent* xevent)
|
||||||
|
{
|
||||||
|
LOG(10, ("clipboard_check_wait_objs: PropertyNotify .window %d "
|
||||||
|
".state %d .atom %d", xevent->xproperty.window,
|
||||||
|
xevent->xproperty.state, xevent->xproperty.atom));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* returns error
|
/* returns error
|
||||||
this is called to get any wait objects for the main loop
|
this is called to get any wait objects for the main loop
|
||||||
@ -1028,8 +1054,7 @@ clipboard_check_wait_objs(void)
|
|||||||
case MappingNotify:
|
case MappingNotify:
|
||||||
break;
|
break;
|
||||||
case PropertyNotify:
|
case PropertyNotify:
|
||||||
LOG(10, ("clipboard_check_wait_objs: PropertyNotify .window %d "
|
clipboard_event_property_notify(&xevent);
|
||||||
".state %d", xevent.xproperty.window, xevent.xproperty.state));
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (xevent.type == g_xfixes_event_base +
|
if (xevent.type == g_xfixes_event_base +
|
||||||
|
Loading…
Reference in New Issue
Block a user