| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |