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

Unified Diff: chrome/browser/chromeos/xinput_hierarchy_changed_event_listener.cc

Issue 8965070: Change system settings based on when mouse/touchpad is connected/disconnected. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years 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: chrome/browser/chromeos/xinput_hierarchy_changed_event_listener.cc
===================================================================
--- chrome/browser/chromeos/xinput_hierarchy_changed_event_listener.cc (revision 115229)
+++ chrome/browser/chromeos/xinput_hierarchy_changed_event_listener.cc (working copy)
@@ -44,9 +44,9 @@
// Checks the |event| and asynchronously sets the XKB layout when necessary.
void HandleHierarchyChangedEvent(XIHierarchyEvent* event) {
- if (!(event->flags & XISlaveAdded)) {
+ if (!(event->flags & XISlaveAdded))
return;
- }
+
for (int i = 0; i < event->num_info; ++i) {
XIHierarchyInfo* info = &event->info[i];
if ((info->flags & XISlaveAdded) && (info->use == XIFloatingSlave)) {
@@ -91,17 +91,35 @@
xiopcode_ = -1;
}
+void XInputHierarchyChangedEventListener::AddObserver(Observer* observer) {
+ observer_list_.AddObserver(observer);
+}
+
+void XInputHierarchyChangedEventListener::RemoveObserver(Observer* observer) {
+ observer_list_.RemoveObserver(observer);
+}
+
bool XInputHierarchyChangedEventListener::ProcessedXEvent(XEvent* xevent) {
if ((xevent->xcookie.type != GenericEvent) ||
(xevent->xcookie.extension != xiopcode_)) {
return false;
}
+
XGenericEventCookie* cookie = &(xevent->xcookie);
const bool should_consume = (cookie->evtype == XI_HierarchyChanged);
+ XIHierarchyEvent* event = static_cast<XIHierarchyEvent*>(cookie->data);
xiyuan 2011/12/21 03:38:24 Should this cast only valid when cookie->evtype ==
achuithb 2011/12/21 22:15:01 Yup, I did not look at the surrounding code carefu
+
if (should_consume)
- HandleHierarchyChangedEvent(static_cast<XIHierarchyEvent*>(cookie->data));
+ HandleHierarchyChangedEvent(event);
+ if (event->flags & XIDeviceEnabled || event->flags & XIDeviceDisabled)
xiyuan 2011/12/21 03:38:24 this is also only valid when cookie->evtype == XI_
achuithb 2011/12/21 22:15:01 Done.
+ NotifyDeviceChanged();
+
return should_consume;
}
+void XInputHierarchyChangedEventListener::NotifyDeviceChanged() {
+ FOR_EACH_OBSERVER(Observer, observer_list_, DeviceChanged());
+}
+
} // namespace chromeos

Powered by Google App Engine
This is Rietveld 408576698