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 5a3e85de93d79f43bab8b11c627be137f59a9793..8d74742f891cff189d691e78bd93a96b217aa278 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" |
@@ -204,6 +205,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 { |