Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(431)

Unified Diff: ui/display/chromeos/x11/native_display_delegate_x11.cc

Issue 508303002: Move touchscreen device caching to DeviceDataManager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/display/chromeos/x11/native_display_delegate_x11.cc
diff --git a/ui/display/chromeos/x11/native_display_delegate_x11.cc b/ui/display/chromeos/x11/native_display_delegate_x11.cc
index 5f19ae6312a0a50887fddc7c5c9d89a5dbc592c7..b4d003db6f2c148987f375a2ddc944b2b46a9865 100644
--- a/ui/display/chromeos/x11/native_display_delegate_x11.cc
+++ b/ui/display/chromeos/x11/native_display_delegate_x11.cc
@@ -20,7 +20,8 @@
#include "ui/display/chromeos/x11/native_display_event_dispatcher_x11.h"
#include "ui/display/types/chromeos/native_display_observer.h"
#include "ui/display/util/x11/edid_parser_x11.h"
-#include "ui/events/platform/platform_event_observer.h"
+#include "ui/events/device_data_manager.h"
+#include "ui/events/input_device_event_observer.h"
#include "ui/events/platform/platform_event_source.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/x/x11_error_tracker.h"
@@ -71,6 +72,24 @@ XRRCrtcGamma* ResampleGammaRamp(XRRCrtcGamma* gamma_ramp, int gamma_ramp_size) {
return resampled;
}
+class InputHotplugEventObserver : public InputDeviceEventObserver {
+ public:
+ explicit InputHotplugEventObserver(
+ NativeDisplayDelegateX11::HelperDelegate* delegate)
+ : delegate_(delegate) {}
+ virtual ~InputHotplugEventObserver() {}
+
+ // InputDeviceEventObserver:
+ virtual void OnInputDeviceConfigurationChanged() OVERRIDE {
+ delegate_->NotifyDisplayObservers();
+ }
+
+ private:
+ NativeDisplayDelegateX11::HelperDelegate* delegate_; // Not owned.
+
+ DISALLOW_COPY_AND_ASSIGN(InputHotplugEventObserver);
+};
+
} // namespace
////////////////////////////////////////////////////////////////////////////////
@@ -103,48 +122,6 @@ class NativeDisplayDelegateX11::HelperDelegateX11
};
////////////////////////////////////////////////////////////////////////////////
-// NativeDisplayDelegateX11::PlatformEventObserverX11
-
-class NativeDisplayDelegateX11::PlatformEventObserverX11
- : public PlatformEventObserver {
- public:
- PlatformEventObserverX11(HelperDelegate* delegate);
- virtual ~PlatformEventObserverX11();
-
- // PlatformEventObserverX11:
- virtual void WillProcessEvent(const ui::PlatformEvent& event) OVERRIDE;
- virtual void DidProcessEvent(const ui::PlatformEvent& event) OVERRIDE;
-
- private:
- HelperDelegate* delegate_; // Not owned.
-
- DISALLOW_COPY_AND_ASSIGN(PlatformEventObserverX11);
-};
-
-NativeDisplayDelegateX11::PlatformEventObserverX11::PlatformEventObserverX11(
- HelperDelegate* delegate)
- : delegate_(delegate) {}
-
-NativeDisplayDelegateX11::PlatformEventObserverX11::
- ~PlatformEventObserverX11() {}
-
-void NativeDisplayDelegateX11::PlatformEventObserverX11::WillProcessEvent(
- const ui::PlatformEvent& event) {
- // XI_HierarchyChanged events are special. There is no window associated with
- // these events. So process them directly from here.
- if (event->type == GenericEvent &&
- event->xgeneric.evtype == XI_HierarchyChanged) {
- VLOG(1) << "Received XI_HierarchyChanged event";
- // Defer configuring outputs to not stall event processing.
- // This also takes care of same event being received twice.
- delegate_->NotifyDisplayObservers();
- }
-}
-
-void NativeDisplayDelegateX11::PlatformEventObserverX11::DidProcessEvent(
- const ui::PlatformEvent& event) {}
-
-////////////////////////////////////////////////////////////////////////////////
// NativeDisplayDelegateX11 implementation:
NativeDisplayDelegateX11::NativeDisplayDelegateX11()
@@ -157,10 +134,12 @@ NativeDisplayDelegateX11::~NativeDisplayDelegateX11() {
if (ui::PlatformEventSource::GetInstance()) {
ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(
platform_event_dispatcher_.get());
- ui::PlatformEventSource::GetInstance()->RemovePlatformEventObserver(
- platform_event_observer_.get());
}
+ if (input_hotplug_observer_)
Daniel Erat 2014/09/10 19:12:50 nit: add curly brackets since the body of the if-s
dnicoara 2014/09/10 19:24:25 Done.
+ ui::DeviceDataManager::GetInstance()->RemoveObserver(
+ input_hotplug_observer_.get());
+
STLDeleteContainerPairSecondPointers(modes_.begin(), modes_.end());
}
@@ -172,17 +151,14 @@ void NativeDisplayDelegateX11::Initialize() {
helper_delegate_.reset(new HelperDelegateX11(this));
platform_event_dispatcher_.reset(new NativeDisplayEventDispatcherX11(
helper_delegate_.get(), xrandr_event_base));
- platform_event_observer_.reset(
- new PlatformEventObserverX11(helper_delegate_.get()));
+ input_hotplug_observer_.reset(
+ new InputHotplugEventObserver(helper_delegate_.get()));
+ ui::DeviceDataManager::GetInstance()->AddObserver(
+ input_hotplug_observer_.get());
if (ui::PlatformEventSource::GetInstance()) {
ui::PlatformEventSource::GetInstance()->AddPlatformEventDispatcher(
platform_event_dispatcher_.get());
-
- // We can't do this with a root window listener because XI_HierarchyChanged
- // messages don't have a target window.
- ui::PlatformEventSource::GetInstance()->AddPlatformEventObserver(
- platform_event_observer_.get());
}
}

Powered by Google App Engine
This is Rietveld 408576698