| Index: ui/views/widget/desktop_aura/desktop_screen_x11.cc
|
| diff --git a/ui/views/widget/desktop_aura/desktop_screen_x11.cc b/ui/views/widget/desktop_aura/desktop_screen_x11.cc
|
| index 970d86cbec3d70aeebd47f97c5d2b9166eb42444..80d7b5a2924bb8d6fd5efa5ca33819a1c5927229 100644
|
| --- a/ui/views/widget/desktop_aura/desktop_screen_x11.cc
|
| +++ b/ui/views/widget/desktop_aura/desktop_screen_x11.cc
|
| @@ -18,6 +18,7 @@
|
| #include "ui/base/layout.h"
|
| #include "ui/base/x/x11_util.h"
|
| #include "ui/display/x11/edid_parser_x11.h"
|
| +#include "ui/events/platform/platform_event_source.h"
|
| #include "ui/gfx/display.h"
|
| #include "ui/gfx/display_observer.h"
|
| #include "ui/gfx/native_widget_types.h"
|
| @@ -136,7 +137,8 @@ DesktopScreenX11::DesktopScreenX11()
|
| int error_base_ignored = 0;
|
| XRRQueryExtension(xdisplay_, &xrandr_event_base_, &error_base_ignored);
|
|
|
| - base::MessagePumpX11::Current()->AddDispatcherForRootWindow(this);
|
| + if (ui::PlatformEventSource::GetInstance())
|
| + ui::PlatformEventSource::GetInstance()->AddPlatformEventDispatcher(this);
|
| XRRSelectInput(xdisplay_,
|
| x_root_window_,
|
| RRScreenChangeNotifyMask | RROutputChangeNotifyMask);
|
| @@ -148,8 +150,8 @@ DesktopScreenX11::DesktopScreenX11()
|
| }
|
|
|
| DesktopScreenX11::~DesktopScreenX11() {
|
| - if (has_xrandr_)
|
| - base::MessagePumpX11::Current()->RemoveDispatcherForRootWindow(this);
|
| + if (has_xrandr_ && ui::PlatformEventSource::GetInstance())
|
| + ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(this);
|
| }
|
|
|
| void DesktopScreenX11::ProcessDisplayChange(
|
| @@ -306,7 +308,12 @@ void DesktopScreenX11::RemoveObserver(gfx::DisplayObserver* observer) {
|
| observer_list_.RemoveObserver(observer);
|
| }
|
|
|
| -uint32_t DesktopScreenX11::Dispatch(const base::NativeEvent& event) {
|
| +bool DesktopScreenX11::CanDispatchEvent(const ui::PlatformEvent& event) {
|
| + return event->type - xrandr_event_base_ == RRScreenChangeNotify ||
|
| + event->type - xrandr_event_base_ == RRNotify;
|
| +}
|
| +
|
| +uint32_t DesktopScreenX11::DispatchEvent(const ui::PlatformEvent& event) {
|
| if (event->type - xrandr_event_base_ == RRScreenChangeNotify) {
|
| // Pass the event through to xlib.
|
| XRRUpdateConfiguration(event);
|
| @@ -323,9 +330,11 @@ uint32_t DesktopScreenX11::Dispatch(const base::NativeEvent& event) {
|
| this,
|
| &DesktopScreenX11::ConfigureTimerFired);
|
| }
|
| + } else {
|
| + NOTREACHED();
|
| }
|
|
|
| - return POST_DISPATCH_NONE;
|
| + return ui::POST_DISPATCH_NONE;
|
| }
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
|
|