mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-31 20:04:09 +00:00
spicec-x11: Listen for selection owner window destroy / close events too
These rarely happen as most apps have the decency to do a SetSelectionOwner None before exiting. But some do not, so listen for these too.
This commit is contained in:
parent
b4a776b03f
commit
922b831db2
@ -922,7 +922,9 @@ DynamicScreen::DynamicScreen(Display* display, int screen, int& next_mon_id)
|
||||
XRRSelectInput(display, platform_win, RRScreenChangeNotifyMask);
|
||||
if (using_xfixes_1_0) {
|
||||
XFixesSelectSelectionInput(display, platform_win, clipboard_prop,
|
||||
XFixesSetSelectionOwnerNotifyMask);
|
||||
XFixesSetSelectionOwnerNotifyMask|
|
||||
XFixesSelectionWindowDestroyNotifyMask|
|
||||
XFixesSelectionClientCloseNotifyMask);
|
||||
}
|
||||
|
||||
Monitor::self_monitors_change++;
|
||||
@ -1224,7 +1226,9 @@ MultyMonScreen::MultyMonScreen(Display* display, int screen, int& next_mon_id)
|
||||
X_DEBUG_SYNC(get_display());
|
||||
if (using_xfixes_1_0) {
|
||||
XFixesSelectSelectionInput(display, platform_win, clipboard_prop,
|
||||
XFixesSetSelectionOwnerNotifyMask);
|
||||
XFixesSetSelectionOwnerNotifyMask|
|
||||
XFixesSelectionWindowDestroyNotifyMask|
|
||||
XFixesSelectionClientCloseNotifyMask);
|
||||
}
|
||||
|
||||
XMonitor::inc_change_ref();
|
||||
@ -2745,7 +2749,15 @@ static void root_win_proc(XEvent& event)
|
||||
}
|
||||
if (event.type == XFixesSelectionNotify + xfixes_event_base) {
|
||||
XFixesSelectionNotifyEvent* selection_event = (XFixesSelectionNotifyEvent *)&event;
|
||||
if (selection_event->subtype != XFixesSetSelectionOwnerNotify) {
|
||||
switch (selection_event->subtype) {
|
||||
case XFixesSetSelectionOwnerNotify:
|
||||
break;
|
||||
/* Treat ... as a SelectionOwnerNotify None */
|
||||
case XFixesSelectionWindowDestroyNotify:
|
||||
case XFixesSelectionClientCloseNotify:
|
||||
selection_event->owner = None;
|
||||
break;
|
||||
default:
|
||||
LOG_INFO("Unsupported selection event %u", selection_event->subtype);
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user