Index: ui/base/clipboard/clipboard_aurax11.cc |
diff --git a/ui/base/clipboard/clipboard_aurax11.cc b/ui/base/clipboard/clipboard_aurax11.cc |
index e1b64e036ca6b953b3c317329a196031e4c51164..e40af36f4523d1fbe1247a7b0ede0f65259be39b 100644 |
--- a/ui/base/clipboard/clipboard_aurax11.cc |
+++ b/ui/base/clipboard/clipboard_aurax11.cc |
@@ -513,7 +513,15 @@ void Clipboard::AuraX11Details::StoreCopyPasteDataAndWait() { |
} |
bool Clipboard::AuraX11Details::CanDispatchEvent(const PlatformEvent& event) { |
- return event->xany.window == x_window_; |
+ if (event->xany.window == x_window_) |
+ return true; |
+ |
+ if (event->type == PropertyNotify) { |
+ return primary_owner_.CanDispatchPropertyEvent(*event) || |
+ clipboard_owner_.CanDispatchPropertyEvent(*event) || |
+ selection_requestor_.CanDispatchPropertyEvent(*event); |
+ } |
+ return false; |
} |
uint32_t Clipboard::AuraX11Details::DispatchEvent(const PlatformEvent& xev) { |
@@ -544,6 +552,15 @@ uint32_t Clipboard::AuraX11Details::DispatchEvent(const PlatformEvent& xev) { |
} |
break; |
} |
+ case PropertyNotify: { |
+ if (primary_owner_.CanDispatchPropertyEvent(*xev)) |
+ primary_owner_.OnPropertyEvent(*xev); |
+ if (clipboard_owner_.CanDispatchPropertyEvent(*xev)) |
+ clipboard_owner_.OnPropertyEvent(*xev); |
+ if (selection_requestor_.CanDispatchPropertyEvent(*xev)) |
+ selection_requestor_.OnPropertyEvent(*xev); |
+ break; |
+ } |
default: |
break; |
} |