Chromium Code Reviews| Index: views/controls/menu/menu_host_gtk.cc |
| diff --git a/views/controls/menu/menu_host_gtk.cc b/views/controls/menu/menu_host_gtk.cc |
| index 917ded3fd1ad55ee9943a8538bbb3ff2afcb25e8..5c9162a7cae8ba80e26ae33a4aaecc87adef9983 100644 |
| --- a/views/controls/menu/menu_host_gtk.cc |
| +++ b/views/controls/menu/menu_host_gtk.cc |
| @@ -5,11 +5,18 @@ |
| #include "views/controls/menu/menu_host_gtk.h" |
| #include <gdk/gdk.h> |
| +#if defined(HAVE_XINPUT2) |
|
sky
2011/01/19 19:34:54
newline between 7 and 8
sadrul
2011/01/19 20:10:17
Done.
|
| +#include <gdk/gdkx.h> |
| +#include <X11/extensions/XInput2.h> |
| +#endif |
| #include "views/controls/menu/menu_controller.h" |
| #include "views/controls/menu/menu_host_root_view.h" |
| #include "views/controls/menu/menu_item_view.h" |
| #include "views/controls/menu/submenu_view.h" |
| +#if defined(HAVE_XINPUT2) |
|
sky
2011/01/19 19:34:54
newline between 16 and 17.
sadrul
2011/01/19 20:10:17
Done.
|
| +#include "views/touchui/touch_factory.h" |
| +#endif |
| namespace views { |
| @@ -104,6 +111,10 @@ void MenuHostGtk::ReleaseGrab() { |
| did_input_grab_ = false; |
| gdk_pointer_ungrab(GDK_CURRENT_TIME); |
| gdk_keyboard_ungrab(GDK_CURRENT_TIME); |
| +#if defined(HAVE_XINPUT2) |
| + TouchFactory::GetInstance()->UngrabTouchDevices( |
| + GDK_WINDOW_XDISPLAY(window_contents()->window)); |
| +#endif |
| } |
| } |
| @@ -151,6 +162,14 @@ void MenuHostGtk::DoCapture() { |
| did_input_grab_ = pointer_grab_status == GDK_GRAB_SUCCESS && |
| keyboard_grab_status == GDK_GRAB_SUCCESS; |
| + |
| +#if defined(HAVE_XINPUT2) |
| + ::Window window = GDK_WINDOW_XID(window_contents()->window); |
| + Display* display = GDK_WINDOW_XDISPLAY(window_contents()->window); |
| + bool xi2grab = TouchFactory::GetInstance()->GrabTouchDevices(display, window); |
| + did_input_grab_ = did_input_grab_ && xi2grab; |
| +#endif |
| + |
| DCHECK(did_input_grab_); |
| // need keyboard grab. |
| } |