Index: chrome/browser/ui/gtk/gtk_util.cc |
diff --git a/chrome/browser/ui/gtk/gtk_util.cc b/chrome/browser/ui/gtk/gtk_util.cc |
index 05c31362b387b0e97504af3ec45fa7986255fef5..775b461706aca25b6541de5de807ed74e64ccd58 100644 |
--- a/chrome/browser/ui/gtk/gtk_util.cc |
+++ b/chrome/browser/ui/gtk/gtk_util.cc |
@@ -35,6 +35,7 @@ |
#include "grit/theme_resources_standard.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
#include "third_party/skia/include/core/SkColor.h" |
+#include "ui/base/events.h" |
#include "ui/base/l10n/l10n_util.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/base/x/x11_util.h" |
@@ -203,6 +204,18 @@ WindowOpenDisposition DispositionFromEventFlags(guint event_flags) { |
event_flags & GDK_SHIFT_MASK); |
} |
+int GetEventFlagsFromGdkState(guint 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; |
+} |
+ |
} // namespace event_utils |
namespace gtk_util { |