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

Unified Diff: views/events/event_gtk.cc

Issue 6756043: Consolidate Widget Event code, other cleanup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Additional code consolidation, move base defs, nix MakeMSG, TooltipManager cleanup, etc. Created 9 years, 9 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: views/events/event_gtk.cc
diff --git a/views/events/event_gtk.cc b/views/events/event_gtk.cc
index 8c62a7648a28e3c223e2c88e957ca5031ac2e341..7e2d1e0279b3dd4dcfe88bd6676892e176f8b27f 100644
--- a/views/events/event_gtk.cc
+++ b/views/events/event_gtk.cc
@@ -77,6 +77,18 @@ unsigned int GetGdkStateFromNative(NativeEvent native_event) {
return 0;
}
+int GetFlagsFromGdkState(unsigned int state) {
+ int flags = 0;
+ flags |= (state & GDK_LOCK_MASK) ? ui::EF_CAPS_LOCK_DOWN : 0;
+ flags |= (state & GDK_CONTROL_MASK) ? ui::EF_CONTROL_DOWN : 0;
+ flags |= (state & GDK_SHIFT_MASK) ? ui::EF_SHIFT_DOWN : 0;
+ flags |= (state & GDK_MOD1_MASK) ? ui::EF_ALT_DOWN : 0;
+ flags |= (state & GDK_BUTTON1_MASK) ? ui::EF_LEFT_BUTTON_DOWN : 0;
+ flags |= (state & GDK_BUTTON2_MASK) ? ui::EF_MIDDLE_BUTTON_DOWN : 0;
+ flags |= (state & GDK_BUTTON3_MASK) ? ui::EF_RIGHT_BUTTON_DOWN : 0;
+ return flags;
+}
+
#if !defined(TOUCH_UI)
uint16 GetCharacterFromGdkKeyval(guint keyval) {
guint32 ch = gdk_keyval_to_unicode(keyval);
@@ -92,22 +104,23 @@ uint16 GetCharacterFromGdkKeyval(guint keyval) {
// Event, public:
// static
-int Event::GetFlagsFromGdkState(unsigned int state) {
- int flags = 0;
- if (state & GDK_LOCK_MASK)
- flags |= ui::EF_CAPS_LOCK_DOWN;
- if (state & GDK_CONTROL_MASK)
- flags |= ui::EF_CONTROL_DOWN;
- if (state & GDK_SHIFT_MASK)
- flags |= ui::EF_SHIFT_DOWN;
- if (state & GDK_MOD1_MASK)
- flags |= ui::EF_ALT_DOWN;
- if (state & GDK_BUTTON1_MASK)
- flags |= ui::EF_LEFT_BUTTON_DOWN;
- if (state & GDK_BUTTON2_MASK)
- flags |= ui::EF_MIDDLE_BUTTON_DOWN;
- if (state & GDK_BUTTON3_MASK)
- flags |= ui::EF_RIGHT_BUTTON_DOWN;
+int Event::GetFlagsFromGdkEvent(NativeEvent native_event) {
+ int flags = GetFlagsFromGdkState(GetGdkStateFromNative(native_event));
+ if (native_event->type == GDK_2BUTTON_PRESS)
+ flags |= ui::EF_IS_DOUBLE_CLICK;
+ if (native_event->type == GDK_BUTTON_PRESS ||
+ native_event->type == GDK_2BUTTON_PRESS ||
+ native_event->type == GDK_3BUTTON_PRESS ||
+ native_event->type == GDK_BUTTON_RELEASE) {
+ switch (native_event->button.button) {
+ case 1:
+ return flags | ui::EF_LEFT_BUTTON_DOWN;
+ case 2:
+ return flags | ui::EF_MIDDLE_BUTTON_DOWN;
+ case 3:
+ return flags | ui::EF_RIGHT_BUTTON_DOWN;
+ }
+ }
return flags;
}
@@ -140,7 +153,7 @@ void Event::InitWithNativeEvent2(NativeEvent2 native_event_2,
LocatedEvent::LocatedEvent(NativeEvent native_event)
: Event(native_event, EventTypeFromNative(native_event),
- GetFlagsFromGdkState(GetGdkStateFromNative(native_event))),
+ GetFlagsFromGdkEvent(native_event)),
location_(GetMouseEventLocation(native_event)) {
}
@@ -176,7 +189,7 @@ MouseEvent::MouseEvent(NativeEvent2 native_event_2,
KeyEvent::KeyEvent(NativeEvent native_event)
: Event(native_event, EventTypeFromNative(native_event),
- GetFlagsFromGdkState(GetGdkStateFromNative(native_event))),
+ GetFlagsFromGdkEvent(native_event)),
key_code_(ui::KeyboardCodeFromGdkEventKey(
GetGdkEventKeyFromNative(native_event))) {
}

Powered by Google App Engine
This is Rietveld 408576698