| 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); |
| 64 GTK_WIDGET_SET_FLAGS(widget, GTK_CAN_FOCUS); | 67 GTK_WIDGET_SET_FLAGS(widget, GTK_CAN_FOCUS); |
| 65 | 68 |
| 66 g_signal_connect(widget, "size-allocate", | 69 g_signal_connect(widget, "size-allocate", |
| 67 G_CALLBACK(SizeAllocate), host_view); | 70 G_CALLBACK(SizeAllocate), host_view); |
| 68 g_signal_connect(widget, "expose-event", | 71 g_signal_connect(widget, "expose-event", |
| 69 G_CALLBACK(ExposeEvent), host_view); | 72 G_CALLBACK(ExposeEvent), host_view); |
| 70 g_signal_connect(widget, "key-press-event", | 73 g_signal_connect(widget, "key-press-event", |
| 71 G_CALLBACK(KeyPressReleaseEvent), host_view); | 74 G_CALLBACK(KeyPressReleaseEvent), host_view); |
| 72 g_signal_connect(widget, "key-release-event", | 75 g_signal_connect(widget, "key-release-event", |
| 73 G_CALLBACK(KeyPressReleaseEvent), host_view); | 76 G_CALLBACK(KeyPressReleaseEvent), host_view); |
| 74 g_signal_connect(widget, "focus-in-event", | 77 g_signal_connect(widget, "focus-in-event", |
| 75 G_CALLBACK(OnFocusIn), host_view); | 78 G_CALLBACK(OnFocusIn), host_view); |
| 76 g_signal_connect(widget, "focus-out-event", | 79 g_signal_connect(widget, "focus-out-event", |
| 77 G_CALLBACK(OnFocusOut), host_view); | 80 G_CALLBACK(OnFocusOut), host_view); |
| 78 g_signal_connect(widget, "grab-notify", | 81 g_signal_connect(widget, "grab-notify", |
| 79 G_CALLBACK(OnGrabNotify), host_view); | 82 G_CALLBACK(OnGrabNotify), host_view); |
| 80 g_signal_connect(widget, "button-press-event", | 83 g_signal_connect(widget, "button-press-event", |
| 81 G_CALLBACK(ButtonPressReleaseEvent), host_view); | 84 G_CALLBACK(ButtonPressReleaseEvent), host_view); |
| 82 g_signal_connect(widget, "button-release-event", | 85 g_signal_connect(widget, "button-release-event", |
| 83 G_CALLBACK(ButtonPressReleaseEvent), host_view); | 86 G_CALLBACK(ButtonPressReleaseEvent), host_view); |
| 84 g_signal_connect(widget, "motion-notify-event", | 87 g_signal_connect(widget, "motion-notify-event", |
| 85 G_CALLBACK(MouseMoveEvent), host_view); | 88 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 |
| 86 // Connect after so that we are called after the handler installed by the | 94 // Connect after so that we are called after the handler installed by the |
| 87 // TabContentsView which handles zoom events. | 95 // TabContentsView which handles zoom events. |
| 88 g_signal_connect_after(widget, "scroll-event", | 96 g_signal_connect_after(widget, "scroll-event", |
| 89 G_CALLBACK(MouseScrollEvent), host_view); | 97 G_CALLBACK(MouseScrollEvent), host_view); |
| 90 | 98 |
| 91 return widget; | 99 return widget; |
| 92 } | 100 } |
| 93 | 101 |
| 94 private: | 102 private: |
| 95 static gboolean SizeAllocate(GtkWidget* widget, GtkAllocation* allocation, | 103 static gboolean SizeAllocate(GtkWidget* widget, GtkAllocation* allocation, |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 int y = 0; | 258 int y = 0; |
| 251 gtk_widget_get_pointer(widget, &x, &y); | 259 gtk_widget_get_pointer(widget, &x, &y); |
| 252 event->x = x; | 260 event->x = x; |
| 253 event->y = y; | 261 event->y = y; |
| 254 } | 262 } |
| 255 host_view->GetRenderWidgetHost()->ForwardMouseEvent( | 263 host_view->GetRenderWidgetHost()->ForwardMouseEvent( |
| 256 WebInputEventFactory::mouseEvent(event)); | 264 WebInputEventFactory::mouseEvent(event)); |
| 257 return FALSE; | 265 return FALSE; |
| 258 } | 266 } |
| 259 | 267 |
| 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 |
| 260 static gboolean MouseScrollEvent(GtkWidget* widget, GdkEventScroll* event, | 276 static gboolean MouseScrollEvent(GtkWidget* widget, GdkEventScroll* event, |
| 261 RenderWidgetHostViewGtk* host_view) { | 277 RenderWidgetHostViewGtk* host_view) { |
| 262 // If the user is holding shift, translate it into a horizontal scroll. We | 278 // If the user is holding shift, translate it into a horizontal scroll. We |
| 263 // don't care what other modifiers the user may be holding (zooming is | 279 // don't care what other modifiers the user may be holding (zooming is |
| 264 // handled at the TabContentsView level). | 280 // handled at the TabContentsView level). |
| 265 if (event->state & GDK_SHIFT_MASK) { | 281 if (event->state & GDK_SHIFT_MASK) { |
| 266 if (event->direction == GDK_SCROLL_UP) | 282 if (event->direction == GDK_SCROLL_UP) |
| 267 event->direction = GDK_SCROLL_LEFT; | 283 event->direction = GDK_SCROLL_LEFT; |
| 268 else if (event->direction == GDK_SCROLL_DOWN) | 284 else if (event->direction == GDK_SCROLL_DOWN) |
| 269 event->direction = GDK_SCROLL_RIGHT; | 285 event->direction = GDK_SCROLL_RIGHT; |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 648 const NativeWebKeyboardEvent& event) { | 664 const NativeWebKeyboardEvent& event) { |
| 649 if (!host_) | 665 if (!host_) |
| 650 return; | 666 return; |
| 651 | 667 |
| 652 EditCommands edit_commands; | 668 EditCommands edit_commands; |
| 653 if (key_bindings_handler_->Match(event, &edit_commands)) { | 669 if (key_bindings_handler_->Match(event, &edit_commands)) { |
| 654 host_->ForwardEditCommandsForNextKeyEvent(edit_commands); | 670 host_->ForwardEditCommandsForNextKeyEvent(edit_commands); |
| 655 } | 671 } |
| 656 host_->ForwardKeyboardEvent(event); | 672 host_->ForwardKeyboardEvent(event); |
| 657 } | 673 } |
| OLD | NEW |