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

Side by Side Diff: ui/display/chromeos/x11/native_display_delegate_x11.cc

Issue 233653002: x11: Remove MessagePumpObserver. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/display/chromeos/x11/native_display_delegate_x11.h" 5 #include "ui/display/chromeos/x11/native_display_delegate_x11.h"
6 6
7 #include <X11/Xatom.h> 7 #include <X11/Xatom.h>
8 #include <X11/Xlib.h> 8 #include <X11/Xlib.h>
9 #include <X11/extensions/dpms.h> 9 #include <X11/extensions/dpms.h>
10 #include <X11/extensions/Xrandr.h> 10 #include <X11/extensions/Xrandr.h>
11 #include <X11/extensions/XInput2.h> 11 #include <X11/extensions/XInput2.h>
12 12
13 #include <utility> 13 #include <utility>
14 14
15 #include "base/logging.h" 15 #include "base/logging.h"
16 #include "base/message_loop/message_loop.h"
17 #include "base/message_loop/message_pump_x11.h"
18 #include "base/stl_util.h" 16 #include "base/stl_util.h"
19 #include "ui/display/chromeos/native_display_observer.h" 17 #include "ui/display/chromeos/native_display_observer.h"
20 #include "ui/display/chromeos/x11/display_mode_x11.h" 18 #include "ui/display/chromeos/x11/display_mode_x11.h"
21 #include "ui/display/chromeos/x11/display_snapshot_x11.h" 19 #include "ui/display/chromeos/x11/display_snapshot_x11.h"
22 #include "ui/display/chromeos/x11/display_util_x11.h" 20 #include "ui/display/chromeos/x11/display_util_x11.h"
23 #include "ui/display/chromeos/x11/native_display_event_dispatcher_x11.h" 21 #include "ui/display/chromeos/x11/native_display_event_dispatcher_x11.h"
24 #include "ui/display/x11/edid_parser_x11.h" 22 #include "ui/display/x11/edid_parser_x11.h"
23 #include "ui/events/platform/platform_event_observer.h"
25 #include "ui/events/platform/platform_event_source.h" 24 #include "ui/events/platform/platform_event_source.h"
26 #include "ui/gfx/x/x11_error_tracker.h" 25 #include "ui/gfx/x/x11_error_tracker.h"
26 #include "ui/gfx/x/x11_types.h"
27 27
28 namespace ui { 28 namespace ui {
29 29
30 namespace { 30 namespace {
31 31
32 // DPI measurements. 32 // DPI measurements.
33 const float kMmInInch = 25.4; 33 const float kMmInInch = 25.4;
34 const float kDpi96 = 96.0; 34 const float kDpi96 = 96.0;
35 const float kPixelsToMmScale = kMmInInch / kDpi96; 35 const float kPixelsToMmScale = kMmInInch / kDpi96;
36 36
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 NativeDisplayObserver, delegate_->observers_, OnConfigurationChanged()); 95 NativeDisplayObserver, delegate_->observers_, OnConfigurationChanged());
96 } 96 }
97 97
98 private: 98 private:
99 NativeDisplayDelegateX11* delegate_; 99 NativeDisplayDelegateX11* delegate_;
100 100
101 DISALLOW_COPY_AND_ASSIGN(HelperDelegateX11); 101 DISALLOW_COPY_AND_ASSIGN(HelperDelegateX11);
102 }; 102 };
103 103
104 //////////////////////////////////////////////////////////////////////////////// 104 ////////////////////////////////////////////////////////////////////////////////
105 // NativeDisplayDelegateX11::MessagePumpObserverX11 105 // NativeDisplayDelegateX11::PlatformEventObserverX11
106 106
107 class NativeDisplayDelegateX11::MessagePumpObserverX11 107 class NativeDisplayDelegateX11::PlatformEventObserverX11
108 : public base::MessagePumpObserver { 108 : public PlatformEventObserver {
109 public: 109 public:
110 MessagePumpObserverX11(HelperDelegate* delegate); 110 PlatformEventObserverX11(HelperDelegate* delegate);
111 virtual ~MessagePumpObserverX11(); 111 virtual ~PlatformEventObserverX11();
112 112
113 // base::MessagePumpObserver overrides: 113 // PlatformEventObserverX11:
114 virtual void WillProcessEvent(const base::NativeEvent& event) OVERRIDE; 114 virtual void WillProcessEvent(const ui::PlatformEvent& event) OVERRIDE;
115 virtual void DidProcessEvent(const base::NativeEvent& event) OVERRIDE; 115 virtual void DidProcessEvent(const ui::PlatformEvent& event) OVERRIDE;
116 116
117 private: 117 private:
118 HelperDelegate* delegate_; // Not owned. 118 HelperDelegate* delegate_; // Not owned.
119 119
120 DISALLOW_COPY_AND_ASSIGN(MessagePumpObserverX11); 120 DISALLOW_COPY_AND_ASSIGN(PlatformEventObserverX11);
121 }; 121 };
122 122
123 NativeDisplayDelegateX11::MessagePumpObserverX11::MessagePumpObserverX11( 123 NativeDisplayDelegateX11::PlatformEventObserverX11::PlatformEventObserverX11(
124 HelperDelegate* delegate) 124 HelperDelegate* delegate)
125 : delegate_(delegate) {} 125 : delegate_(delegate) {}
126 126
127 NativeDisplayDelegateX11::MessagePumpObserverX11::~MessagePumpObserverX11() {} 127 NativeDisplayDelegateX11::PlatformEventObserverX11::
128 ~PlatformEventObserverX11() {}
128 129
129 void NativeDisplayDelegateX11::MessagePumpObserverX11::WillProcessEvent( 130 void NativeDisplayDelegateX11::PlatformEventObserverX11::WillProcessEvent(
130 const base::NativeEvent& event) { 131 const ui::PlatformEvent& event) {
131 // XI_HierarchyChanged events are special. There is no window associated with 132 // XI_HierarchyChanged events are special. There is no window associated with
132 // these events. So process them directly from here. 133 // these events. So process them directly from here.
133 if (event->type == GenericEvent && 134 if (event->type == GenericEvent &&
134 event->xgeneric.evtype == XI_HierarchyChanged) { 135 event->xgeneric.evtype == XI_HierarchyChanged) {
135 VLOG(1) << "Received XI_HierarchyChanged event"; 136 VLOG(1) << "Received XI_HierarchyChanged event";
136 // Defer configuring outputs to not stall event processing. 137 // Defer configuring outputs to not stall event processing.
137 // This also takes care of same event being received twice. 138 // This also takes care of same event being received twice.
138 delegate_->NotifyDisplayObservers(); 139 delegate_->NotifyDisplayObservers();
139 } 140 }
140 } 141 }
141 142
142 void NativeDisplayDelegateX11::MessagePumpObserverX11::DidProcessEvent( 143 void NativeDisplayDelegateX11::PlatformEventObserverX11::DidProcessEvent(
143 const base::NativeEvent& event) {} 144 const ui::PlatformEvent& event) {}
144 145
145 //////////////////////////////////////////////////////////////////////////////// 146 ////////////////////////////////////////////////////////////////////////////////
146 // NativeDisplayDelegateX11 implementation: 147 // NativeDisplayDelegateX11 implementation:
147 148
148 NativeDisplayDelegateX11::NativeDisplayDelegateX11() 149 NativeDisplayDelegateX11::NativeDisplayDelegateX11()
149 : display_(base::MessagePumpX11::GetDefaultXDisplay()), 150 : display_(gfx::GetXDisplay()),
150 window_(DefaultRootWindow(display_)), 151 window_(DefaultRootWindow(display_)),
151 screen_(NULL) {} 152 screen_(NULL) {}
152 153
153 NativeDisplayDelegateX11::~NativeDisplayDelegateX11() { 154 NativeDisplayDelegateX11::~NativeDisplayDelegateX11() {
154 if (ui::PlatformEventSource::GetInstance()) { 155 if (ui::PlatformEventSource::GetInstance()) {
155 ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher( 156 ui::PlatformEventSource::GetInstance()->RemovePlatformEventDispatcher(
156 platform_event_dispatcher_.get()); 157 platform_event_dispatcher_.get());
158 ui::PlatformEventSource::GetInstance()->RemovePlatformEventObserver(
159 platform_event_observer_.get());
157 } 160 }
158 base::MessagePumpX11::Current()->RemoveObserver(message_pump_observer_.get());
159 161
160 STLDeleteContainerPairSecondPointers(modes_.begin(), modes_.end()); 162 STLDeleteContainerPairSecondPointers(modes_.begin(), modes_.end());
161 } 163 }
162 164
163 void NativeDisplayDelegateX11::Initialize() { 165 void NativeDisplayDelegateX11::Initialize() {
164 int error_base_ignored = 0; 166 int error_base_ignored = 0;
165 int xrandr_event_base = 0; 167 int xrandr_event_base = 0;
166 XRRQueryExtension(display_, &xrandr_event_base, &error_base_ignored); 168 XRRQueryExtension(display_, &xrandr_event_base, &error_base_ignored);
167 169
168 helper_delegate_.reset(new HelperDelegateX11(this)); 170 helper_delegate_.reset(new HelperDelegateX11(this));
169 platform_event_dispatcher_.reset(new NativeDisplayEventDispatcherX11( 171 platform_event_dispatcher_.reset(new NativeDisplayEventDispatcherX11(
170 helper_delegate_.get(), xrandr_event_base)); 172 helper_delegate_.get(), xrandr_event_base));
171 message_pump_observer_.reset( 173 platform_event_observer_.reset(
172 new MessagePumpObserverX11(helper_delegate_.get())); 174 new PlatformEventObserverX11(helper_delegate_.get()));
173 175
174 if (ui::PlatformEventSource::GetInstance()) { 176 if (ui::PlatformEventSource::GetInstance()) {
175 ui::PlatformEventSource::GetInstance()->AddPlatformEventDispatcher( 177 ui::PlatformEventSource::GetInstance()->AddPlatformEventDispatcher(
176 platform_event_dispatcher_.get()); 178 platform_event_dispatcher_.get());
179
180 // We can't do this with a root window listener because XI_HierarchyChanged
181 // messages don't have a target window.
182 ui::PlatformEventSource::GetInstance()->AddPlatformEventObserver(
183 platform_event_observer_.get());
177 } 184 }
178 // We can't do this with a root window listener because XI_HierarchyChanged
179 // messages don't have a target window.
180 base::MessagePumpX11::Current()->AddObserver(message_pump_observer_.get());
181 } 185 }
182 186
183 void NativeDisplayDelegateX11::GrabServer() { 187 void NativeDisplayDelegateX11::GrabServer() {
184 CHECK(!screen_) << "Server already grabbed"; 188 CHECK(!screen_) << "Server already grabbed";
185 XGrabServer(display_); 189 XGrabServer(display_);
186 screen_ = XRRGetScreenResources(display_, window_); 190 screen_ = XRRGetScreenResources(display_, window_);
187 CHECK(screen_); 191 CHECK(screen_);
188 } 192 }
189 193
190 void NativeDisplayDelegateX11::UngrabServer() { 194 void NativeDisplayDelegateX11::UngrabServer() {
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 653
650 void NativeDisplayDelegateX11::AddObserver(NativeDisplayObserver* observer) { 654 void NativeDisplayDelegateX11::AddObserver(NativeDisplayObserver* observer) {
651 observers_.AddObserver(observer); 655 observers_.AddObserver(observer);
652 } 656 }
653 657
654 void NativeDisplayDelegateX11::RemoveObserver(NativeDisplayObserver* observer) { 658 void NativeDisplayDelegateX11::RemoveObserver(NativeDisplayObserver* observer) {
655 observers_.RemoveObserver(observer); 659 observers_.RemoveObserver(observer);
656 } 660 }
657 661
658 } // namespace ui 662 } // namespace ui
OLDNEW
« no previous file with comments | « ui/display/chromeos/x11/native_display_delegate_x11.h ('k') | ui/events/platform/x11/x11_event_source.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698