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

Side by Side Diff: chrome/browser/renderer_host/render_widget_host_view_gtk.cc

Issue 343080: Revert "Handle GTK enter and leave notification events and pass them to WebKit as " (Closed)
Patch Set: Created 11 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/automation/automation_provider.cc ('k') | chrome/chrome.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/renderer_host/render_widget_host_view_gtk.h" 5 #include "chrome/browser/renderer_host/render_widget_host_view_gtk.h"
6 6
7 // If this gets included after the gtk headers, then a bunch of compiler 7 // If this gets included after the gtk headers, then a bunch of compiler
8 // errors happen because of a "#define Status int" in Xlib.h, which interacts 8 // errors happen because of a "#define Status int" in Xlib.h, which interacts
9 // badly with URLRequestStatus::Status. 9 // badly with URLRequestStatus::Status.
10 #include "chrome/common/render_messages.h" 10 #include "chrome/common/render_messages.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &gfx::kGdkWhite); 53 gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &gfx::kGdkWhite);
54 #else 54 #else
55 gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &gfx::kGdkGreen); 55 gtk_widget_modify_bg(widget, GTK_STATE_NORMAL, &gfx::kGdkGreen);
56 #endif 56 #endif
57 57
58 gtk_widget_add_events(widget, GDK_EXPOSURE_MASK | 58 gtk_widget_add_events(widget, GDK_EXPOSURE_MASK |
59 GDK_POINTER_MOTION_MASK | 59 GDK_POINTER_MOTION_MASK |
60 GDK_BUTTON_PRESS_MASK | 60 GDK_BUTTON_PRESS_MASK |
61 GDK_BUTTON_RELEASE_MASK | 61 GDK_BUTTON_RELEASE_MASK |
62 GDK_KEY_PRESS_MASK | 62 GDK_KEY_PRESS_MASK |
63 GDK_KEY_RELEASE_MASK | 63 GDK_KEY_RELEASE_MASK);
64 GDK_FOCUS_CHANGE_MASK |
65 GDK_ENTER_NOTIFY_MASK |
66 GDK_LEAVE_NOTIFY_MASK);
67 GTK_WIDGET_SET_FLAGS(widget, GTK_CAN_FOCUS); 64 GTK_WIDGET_SET_FLAGS(widget, GTK_CAN_FOCUS);
68 65
69 g_signal_connect(widget, "size-allocate", 66 g_signal_connect(widget, "size-allocate",
70 G_CALLBACK(SizeAllocate), host_view); 67 G_CALLBACK(SizeAllocate), host_view);
71 g_signal_connect(widget, "expose-event", 68 g_signal_connect(widget, "expose-event",
72 G_CALLBACK(ExposeEvent), host_view); 69 G_CALLBACK(ExposeEvent), host_view);
73 g_signal_connect(widget, "key-press-event", 70 g_signal_connect(widget, "key-press-event",
74 G_CALLBACK(KeyPressReleaseEvent), host_view); 71 G_CALLBACK(KeyPressReleaseEvent), host_view);
75 g_signal_connect(widget, "key-release-event", 72 g_signal_connect(widget, "key-release-event",
76 G_CALLBACK(KeyPressReleaseEvent), host_view); 73 G_CALLBACK(KeyPressReleaseEvent), host_view);
77 g_signal_connect(widget, "focus-in-event", 74 g_signal_connect(widget, "focus-in-event",
78 G_CALLBACK(OnFocusIn), host_view); 75 G_CALLBACK(OnFocusIn), host_view);
79 g_signal_connect(widget, "focus-out-event", 76 g_signal_connect(widget, "focus-out-event",
80 G_CALLBACK(OnFocusOut), host_view); 77 G_CALLBACK(OnFocusOut), host_view);
81 g_signal_connect(widget, "grab-notify", 78 g_signal_connect(widget, "grab-notify",
82 G_CALLBACK(OnGrabNotify), host_view); 79 G_CALLBACK(OnGrabNotify), host_view);
83 g_signal_connect(widget, "button-press-event", 80 g_signal_connect(widget, "button-press-event",
84 G_CALLBACK(ButtonPressReleaseEvent), host_view); 81 G_CALLBACK(ButtonPressReleaseEvent), host_view);
85 g_signal_connect(widget, "button-release-event", 82 g_signal_connect(widget, "button-release-event",
86 G_CALLBACK(ButtonPressReleaseEvent), host_view); 83 G_CALLBACK(ButtonPressReleaseEvent), host_view);
87 g_signal_connect(widget, "motion-notify-event", 84 g_signal_connect(widget, "motion-notify-event",
88 G_CALLBACK(MouseMoveEvent), host_view); 85 G_CALLBACK(MouseMoveEvent), host_view);
89 g_signal_connect(widget, "enter-notify-event",
90 G_CALLBACK(CrossingEvent), host_view);
91 g_signal_connect(widget, "leave-notify-event",
92 G_CALLBACK(CrossingEvent), host_view);
93
94 // Connect after so that we are called after the handler installed by the 86 // Connect after so that we are called after the handler installed by the
95 // TabContentsView which handles zoom events. 87 // TabContentsView which handles zoom events.
96 g_signal_connect_after(widget, "scroll-event", 88 g_signal_connect_after(widget, "scroll-event",
97 G_CALLBACK(MouseScrollEvent), host_view); 89 G_CALLBACK(MouseScrollEvent), host_view);
98 90
99 return widget; 91 return widget;
100 } 92 }
101 93
102 private: 94 private:
103 static gboolean SizeAllocate(GtkWidget* widget, GtkAllocation* allocation, 95 static gboolean SizeAllocate(GtkWidget* widget, GtkAllocation* allocation,
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 int y = 0; 250 int y = 0;
259 gtk_widget_get_pointer(widget, &x, &y); 251 gtk_widget_get_pointer(widget, &x, &y);
260 event->x = x; 252 event->x = x;
261 event->y = y; 253 event->y = y;
262 } 254 }
263 host_view->GetRenderWidgetHost()->ForwardMouseEvent( 255 host_view->GetRenderWidgetHost()->ForwardMouseEvent(
264 WebInputEventFactory::mouseEvent(event)); 256 WebInputEventFactory::mouseEvent(event));
265 return FALSE; 257 return FALSE;
266 } 258 }
267 259
268 static gboolean CrossingEvent(GtkWidget* widget, GdkEventCrossing* event,
269 RenderWidgetHostViewGtk* host_view) {
270 host_view->GetRenderWidgetHost()->ForwardMouseEvent(
271 WebInputEventFactory::mouseEvent(event));
272
273 return FALSE;
274 }
275
276 static gboolean MouseScrollEvent(GtkWidget* widget, GdkEventScroll* event, 260 static gboolean MouseScrollEvent(GtkWidget* widget, GdkEventScroll* event,
277 RenderWidgetHostViewGtk* host_view) { 261 RenderWidgetHostViewGtk* host_view) {
278 // If the user is holding shift, translate it into a horizontal scroll. We 262 // If the user is holding shift, translate it into a horizontal scroll. We
279 // don't care what other modifiers the user may be holding (zooming is 263 // don't care what other modifiers the user may be holding (zooming is
280 // handled at the TabContentsView level). 264 // handled at the TabContentsView level).
281 if (event->state & GDK_SHIFT_MASK) { 265 if (event->state & GDK_SHIFT_MASK) {
282 if (event->direction == GDK_SCROLL_UP) 266 if (event->direction == GDK_SCROLL_UP)
283 event->direction = GDK_SCROLL_LEFT; 267 event->direction = GDK_SCROLL_LEFT;
284 else if (event->direction == GDK_SCROLL_DOWN) 268 else if (event->direction == GDK_SCROLL_DOWN)
285 event->direction = GDK_SCROLL_RIGHT; 269 event->direction = GDK_SCROLL_RIGHT;
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after
664 const NativeWebKeyboardEvent& event) { 648 const NativeWebKeyboardEvent& event) {
665 if (!host_) 649 if (!host_)
666 return; 650 return;
667 651
668 EditCommands edit_commands; 652 EditCommands edit_commands;
669 if (key_bindings_handler_->Match(event, &edit_commands)) { 653 if (key_bindings_handler_->Match(event, &edit_commands)) {
670 host_->ForwardEditCommandsForNextKeyEvent(edit_commands); 654 host_->ForwardEditCommandsForNextKeyEvent(edit_commands);
671 } 655 }
672 host_->ForwardKeyboardEvent(event); 656 host_->ForwardKeyboardEvent(event);
673 } 657 }
OLDNEW
« no previous file with comments | « chrome/browser/automation/automation_provider.cc ('k') | chrome/chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698