| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 net::URLRequestStatus::Status. | 9 // badly with net::URLRequestStatus::Status. |
| 10 #include "chrome/common/render_messages.h" | 10 #include "chrome/common/render_messages.h" |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 | 112 |
| 113 gtk_widget_add_events(widget, GDK_EXPOSURE_MASK | | 113 gtk_widget_add_events(widget, GDK_EXPOSURE_MASK | |
| 114 GDK_POINTER_MOTION_MASK | | 114 GDK_POINTER_MOTION_MASK | |
| 115 GDK_BUTTON_PRESS_MASK | | 115 GDK_BUTTON_PRESS_MASK | |
| 116 GDK_BUTTON_RELEASE_MASK | | 116 GDK_BUTTON_RELEASE_MASK | |
| 117 GDK_KEY_PRESS_MASK | | 117 GDK_KEY_PRESS_MASK | |
| 118 GDK_KEY_RELEASE_MASK | | 118 GDK_KEY_RELEASE_MASK | |
| 119 GDK_FOCUS_CHANGE_MASK | | 119 GDK_FOCUS_CHANGE_MASK | |
| 120 GDK_ENTER_NOTIFY_MASK | | 120 GDK_ENTER_NOTIFY_MASK | |
| 121 GDK_LEAVE_NOTIFY_MASK); | 121 GDK_LEAVE_NOTIFY_MASK); |
| 122 GTK_WIDGET_SET_FLAGS(widget, GTK_CAN_FOCUS); | 122 gtk_widget_set_can_focus(widget, TRUE); |
| 123 | 123 |
| 124 g_signal_connect(widget, "expose-event", | 124 g_signal_connect(widget, "expose-event", |
| 125 G_CALLBACK(OnExposeEvent), host_view); | 125 G_CALLBACK(OnExposeEvent), host_view); |
| 126 g_signal_connect(widget, "key-press-event", | 126 g_signal_connect(widget, "key-press-event", |
| 127 G_CALLBACK(OnKeyPressReleaseEvent), host_view); | 127 G_CALLBACK(OnKeyPressReleaseEvent), host_view); |
| 128 g_signal_connect(widget, "key-release-event", | 128 g_signal_connect(widget, "key-release-event", |
| 129 G_CALLBACK(OnKeyPressReleaseEvent), host_view); | 129 G_CALLBACK(OnKeyPressReleaseEvent), host_view); |
| 130 g_signal_connect(widget, "focus-in-event", | 130 g_signal_connect(widget, "focus-in-event", |
| 131 G_CALLBACK(OnFocusIn), host_view); | 131 G_CALLBACK(OnFocusIn), host_view); |
| 132 g_signal_connect(widget, "focus-out-event", | 132 g_signal_connect(widget, "focus-out-event", |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 !host_view->is_popup_first_mouse_release_ && !click_in_popup) { | 314 !host_view->is_popup_first_mouse_release_ && !click_in_popup) { |
| 315 host_view->host_->Shutdown(); | 315 host_view->host_->Shutdown(); |
| 316 return FALSE; | 316 return FALSE; |
| 317 } | 317 } |
| 318 event->x = x; | 318 event->x = x; |
| 319 event->y = y; | 319 event->y = y; |
| 320 } | 320 } |
| 321 | 321 |
| 322 // TODO(evanm): why is this necessary here but not in test shell? | 322 // TODO(evanm): why is this necessary here but not in test shell? |
| 323 // This logic is the same as GtkButton. | 323 // This logic is the same as GtkButton. |
| 324 if (event->type == GDK_BUTTON_PRESS && !GTK_WIDGET_HAS_FOCUS(widget)) | 324 if (event->type == GDK_BUTTON_PRESS && !gtk_widget_has_focus(widget)) |
| 325 gtk_widget_grab_focus(widget); | 325 gtk_widget_grab_focus(widget); |
| 326 | 326 |
| 327 host_view->is_popup_first_mouse_release_ = false; | 327 host_view->is_popup_first_mouse_release_ = false; |
| 328 host_view->GetRenderWidgetHost()->ForwardMouseEvent( | 328 host_view->GetRenderWidgetHost()->ForwardMouseEvent( |
| 329 WebInputEventFactory::mouseEvent(event)); | 329 WebInputEventFactory::mouseEvent(event)); |
| 330 | 330 |
| 331 // Although we did handle the mouse event, we need to let other handlers | 331 // Although we did handle the mouse event, we need to let other handlers |
| 332 // run (in particular the one installed by TabContentsViewGtk). | 332 // run (in particular the one installed by TabContentsViewGtk). |
| 333 return FALSE; | 333 return FALSE; |
| 334 } | 334 } |
| (...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 688 | 688 |
| 689 void RenderWidgetHostViewGtk::Show() { | 689 void RenderWidgetHostViewGtk::Show() { |
| 690 gtk_widget_show(view_.get()); | 690 gtk_widget_show(view_.get()); |
| 691 } | 691 } |
| 692 | 692 |
| 693 void RenderWidgetHostViewGtk::Hide() { | 693 void RenderWidgetHostViewGtk::Hide() { |
| 694 gtk_widget_hide(view_.get()); | 694 gtk_widget_hide(view_.get()); |
| 695 } | 695 } |
| 696 | 696 |
| 697 bool RenderWidgetHostViewGtk::IsShowing() { | 697 bool RenderWidgetHostViewGtk::IsShowing() { |
| 698 // TODO(jcivelli): use gtk_widget_get_visible once we build with GTK 2.18. | 698 return gtk_widget_get_visible(view_.get()); |
| 699 return (GTK_WIDGET_FLAGS(view_.get()) & GTK_VISIBLE) != 0; | |
| 700 } | 699 } |
| 701 | 700 |
| 702 gfx::Rect RenderWidgetHostViewGtk::GetViewBounds() const { | 701 gfx::Rect RenderWidgetHostViewGtk::GetViewBounds() const { |
| 703 GtkAllocation* alloc = &view_.get()->allocation; | 702 GtkAllocation* alloc = &view_.get()->allocation; |
| 704 return gfx::Rect(alloc->x, alloc->y, | 703 return gfx::Rect(alloc->x, alloc->y, |
| 705 requested_size_.width(), | 704 requested_size_.width(), |
| 706 requested_size_.height()); | 705 requested_size_.height()); |
| 707 } | 706 } |
| 708 | 707 |
| 709 void RenderWidgetHostViewGtk::UpdateCursor(const WebCursor& cursor) { | 708 void RenderWidgetHostViewGtk::UpdateCursor(const WebCursor& cursor) { |
| (...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1188 } | 1187 } |
| 1189 | 1188 |
| 1190 // static | 1189 // static |
| 1191 RenderWidgetHostView* | 1190 RenderWidgetHostView* |
| 1192 RenderWidgetHostView::GetRenderWidgetHostViewFromNativeView( | 1191 RenderWidgetHostView::GetRenderWidgetHostViewFromNativeView( |
| 1193 gfx::NativeView widget) { | 1192 gfx::NativeView widget) { |
| 1194 gpointer user_data = g_object_get_data(G_OBJECT(widget), | 1193 gpointer user_data = g_object_get_data(G_OBJECT(widget), |
| 1195 kRenderWidgetHostViewKey); | 1194 kRenderWidgetHostViewKey); |
| 1196 return reinterpret_cast<RenderWidgetHostView*>(user_data); | 1195 return reinterpret_cast<RenderWidgetHostView*>(user_data); |
| 1197 } | 1196 } |
| OLD | NEW |