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

Side by Side Diff: chrome/browser/chromeos/events/xinput_hierarchy_changed_event_listener.cc

Issue 223483002: base: Do not allow MessagePumpObservers to consume events. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tot-merge-r262009 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/chromeos/events/xinput_hierarchy_changed_event_listener .h" 5 #include "chrome/browser/chromeos/events/xinput_hierarchy_changed_event_listener .h"
6 6
7 #include <X11/extensions/XInput2.h> 7 #include <X11/extensions/XInput2.h>
8 #include <X11/Xlib.h> 8 #include <X11/Xlib.h>
9 9
10 #include "chromeos/ime/input_method_manager.h" 10 #include "chromeos/ime/input_method_manager.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 void XInputHierarchyChangedEventListener::AddObserver( 75 void XInputHierarchyChangedEventListener::AddObserver(
76 DeviceHierarchyObserver* observer) { 76 DeviceHierarchyObserver* observer) {
77 observer_list_.AddObserver(observer); 77 observer_list_.AddObserver(observer);
78 } 78 }
79 79
80 void XInputHierarchyChangedEventListener::RemoveObserver( 80 void XInputHierarchyChangedEventListener::RemoveObserver(
81 DeviceHierarchyObserver* observer) { 81 DeviceHierarchyObserver* observer) {
82 observer_list_.RemoveObserver(observer); 82 observer_list_.RemoveObserver(observer);
83 } 83 }
84 84
85 base::EventStatus XInputHierarchyChangedEventListener::WillProcessEvent( 85 void XInputHierarchyChangedEventListener::WillProcessEvent(
86 const base::NativeEvent& event) { 86 const base::NativeEvent& event) {
87 // There may be multiple listeners for the XI_HierarchyChanged event. So
88 // always return EVENT_CONTINUE to make sure all the listeners receive the
89 // event.
90 ProcessedXEvent(event); 87 ProcessedXEvent(event);
91 return base::EVENT_CONTINUE;
92 } 88 }
93 89
94 void XInputHierarchyChangedEventListener::DidProcessEvent( 90 void XInputHierarchyChangedEventListener::DidProcessEvent(
95 const base::NativeEvent& event) { 91 const base::NativeEvent& event) {
96 } 92 }
97 93
98 void XInputHierarchyChangedEventListener::ProcessedXEvent(XEvent* xevent) { 94 void XInputHierarchyChangedEventListener::ProcessedXEvent(XEvent* xevent) {
99 if (xevent->xcookie.type != GenericEvent) 95 if (xevent->xcookie.type != GenericEvent)
100 return; 96 return;
101 97
102 XGenericEventCookie* cookie = &(xevent->xcookie); 98 XGenericEventCookie* cookie = &(xevent->xcookie);
103 99
104 if (cookie->evtype == XI_HierarchyChanged) { 100 if (cookie->evtype == XI_HierarchyChanged) {
105 XIHierarchyEvent* event = static_cast<XIHierarchyEvent*>(cookie->data); 101 XIHierarchyEvent* event = static_cast<XIHierarchyEvent*>(cookie->data);
106 HandleHierarchyChangedEvent(event, &observer_list_); 102 HandleHierarchyChangedEvent(event, &observer_list_);
107 if (event->flags & XIDeviceEnabled || event->flags & XIDeviceDisabled) 103 if (event->flags & XIDeviceEnabled || event->flags & XIDeviceDisabled)
108 NotifyDeviceHierarchyChanged(); 104 NotifyDeviceHierarchyChanged();
109 } 105 }
110 } 106 }
111 107
112 void XInputHierarchyChangedEventListener::NotifyDeviceHierarchyChanged() { 108 void XInputHierarchyChangedEventListener::NotifyDeviceHierarchyChanged() {
113 FOR_EACH_OBSERVER(DeviceHierarchyObserver, 109 FOR_EACH_OBSERVER(DeviceHierarchyObserver,
114 observer_list_, 110 observer_list_,
115 DeviceHierarchyChanged()); 111 DeviceHierarchyChanged());
116 } 112 }
117 113
118 } // namespace chromeos 114 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/events/xinput_hierarchy_changed_event_listener.h ('k') | chrome/browser/jankometer_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698