x11: Handle obsolete selection requests without crashing
The ICCCM says:
If the specified property is None, the requestor is an obsolete client.
Owners are encouraged to support these clients by using the specified
target atom as the property name to be used for the reply.
Lets do that, instead of crashing.
https://bugzilla.gnome.org/show_bug.cgi?id=740613
The previous fix for this issue in 732af31424 was incomplete.
This commit is contained in:
@@ -919,7 +919,10 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
|
||||
event->selection.window = window;
|
||||
event->selection.selection = gdk_x11_xatom_to_atom_for_display (display, xevent->xselectionrequest.selection);
|
||||
event->selection.target = gdk_x11_xatom_to_atom_for_display (display, xevent->xselectionrequest.target);
|
||||
event->selection.property = gdk_x11_xatom_to_atom_for_display (display, xevent->xselectionrequest.property);
|
||||
if (xevent->xselectionrequest.property == None)
|
||||
event->selection.property = event->selection.target;
|
||||
else
|
||||
event->selection.property = gdk_x11_xatom_to_atom_for_display (display, xevent->xselectionrequest.property);
|
||||
if (xevent->xselectionrequest.requestor != None)
|
||||
event->selection.requestor = gdk_x11_window_foreign_new_for_display (display,
|
||||
xevent->xselectionrequest.requestor);
|
||||
|
||||
Reference in New Issue
Block a user