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

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

Issue 174217: Fix issue 19081: Linux: Not able to switch input method correctly in web page... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 4 months 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/renderer_host/gtk_im_context_wrapper.cc ('k') | no next file » | 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 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 G_CALLBACK(ButtonPressReleaseEvent), host_view); 78 G_CALLBACK(ButtonPressReleaseEvent), host_view);
79 g_signal_connect(widget, "button-release-event", 79 g_signal_connect(widget, "button-release-event",
80 G_CALLBACK(ButtonPressReleaseEvent), host_view); 80 G_CALLBACK(ButtonPressReleaseEvent), host_view);
81 g_signal_connect(widget, "motion-notify-event", 81 g_signal_connect(widget, "motion-notify-event",
82 G_CALLBACK(MouseMoveEvent), host_view); 82 G_CALLBACK(MouseMoveEvent), host_view);
83 // Connect after so that we are called after the handler installed by the 83 // Connect after so that we are called after the handler installed by the
84 // TabContentsView which handles zoom events. 84 // TabContentsView which handles zoom events.
85 g_signal_connect_after(widget, "scroll-event", 85 g_signal_connect_after(widget, "scroll-event",
86 G_CALLBACK(MouseScrollEvent), host_view); 86 G_CALLBACK(MouseScrollEvent), host_view);
87 87
88 // Create GtkIMContext wrapper object.
89 host_view->im_context_.reset(new GtkIMContextWrapper(host_view));
90
91 return widget; 88 return widget;
92 } 89 }
93 90
94 private: 91 private:
95 static gboolean SizeAllocate(GtkWidget* widget, GtkAllocation* allocation, 92 static gboolean SizeAllocate(GtkWidget* widget, GtkAllocation* allocation,
96 RenderWidgetHostViewGtk* host_view) { 93 RenderWidgetHostViewGtk* host_view) {
97 host_view->GetRenderWidgetHost()->WasResized(); 94 host_view->GetRenderWidgetHost()->WasResized();
98 return FALSE; 95 return FALSE;
99 } 96 }
100 97
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 was_focused_before_grab_(false) { 290 was_focused_before_grab_(false) {
294 host_->set_view(this); 291 host_->set_view(this);
295 } 292 }
296 293
297 RenderWidgetHostViewGtk::~RenderWidgetHostViewGtk() { 294 RenderWidgetHostViewGtk::~RenderWidgetHostViewGtk() {
298 view_.Destroy(); 295 view_.Destroy();
299 } 296 }
300 297
301 void RenderWidgetHostViewGtk::InitAsChild() { 298 void RenderWidgetHostViewGtk::InitAsChild() {
302 view_.Own(RenderWidgetHostViewGtkWidget::CreateNewWidget(this)); 299 view_.Own(RenderWidgetHostViewGtkWidget::CreateNewWidget(this));
300 // |im_context_| must be created after creating |view_| widget.
301 im_context_.reset(new GtkIMContextWrapper(this));
303 plugin_container_manager_.set_host_widget(view_.get()); 302 plugin_container_manager_.set_host_widget(view_.get());
304 gtk_widget_show(view_.get()); 303 gtk_widget_show(view_.get());
305 } 304 }
306 305
307 void RenderWidgetHostViewGtk::InitAsPopup( 306 void RenderWidgetHostViewGtk::InitAsPopup(
308 RenderWidgetHostView* parent_host_view, const gfx::Rect& pos) { 307 RenderWidgetHostView* parent_host_view, const gfx::Rect& pos) {
309 parent_host_view_ = parent_host_view; 308 parent_host_view_ = parent_host_view;
310 parent_ = parent_host_view->GetNativeView(); 309 parent_ = parent_host_view->GetNativeView();
311 GtkWidget* popup = gtk_window_new(GTK_WINDOW_POPUP); 310 GtkWidget* popup = gtk_window_new(GTK_WINDOW_POPUP);
312 view_.Own(RenderWidgetHostViewGtkWidget::CreateNewWidget(this)); 311 view_.Own(RenderWidgetHostViewGtkWidget::CreateNewWidget(this));
312 // |im_context_| must be created after creating |view_| widget.
313 im_context_.reset(new GtkIMContextWrapper(this));
313 plugin_container_manager_.set_host_widget(view_.get()); 314 plugin_container_manager_.set_host_widget(view_.get());
314 gtk_container_add(GTK_CONTAINER(popup), view_.get()); 315 gtk_container_add(GTK_CONTAINER(popup), view_.get());
315 316
316 // If we are not activatable, we don't want to grab keyboard input, 317 // If we are not activatable, we don't want to grab keyboard input,
317 // and webkit will manage our destruction. 318 // and webkit will manage our destruction.
318 if (activatable()) { 319 if (activatable()) {
319 // Grab all input for the app. If a click lands outside the bounds of the 320 // Grab all input for the app. If a click lands outside the bounds of the
320 // popup, WebKit will notice and destroy us. Before doing this we need 321 // popup, WebKit will notice and destroy us. Before doing this we need
321 // to ensure that the the popup is added to the browser's window group, 322 // to ensure that the the popup is added to the browser's window group,
322 // to allow for the grabs to work correctly. 323 // to allow for the grabs to work correctly.
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
621 622
622 void RenderWidgetHostViewGtk::CreatePluginContainer( 623 void RenderWidgetHostViewGtk::CreatePluginContainer(
623 gfx::PluginWindowHandle id) { 624 gfx::PluginWindowHandle id) {
624 plugin_container_manager_.CreatePluginContainer(id); 625 plugin_container_manager_.CreatePluginContainer(id);
625 } 626 }
626 627
627 void RenderWidgetHostViewGtk::DestroyPluginContainer( 628 void RenderWidgetHostViewGtk::DestroyPluginContainer(
628 gfx::PluginWindowHandle id) { 629 gfx::PluginWindowHandle id) {
629 plugin_container_manager_.DestroyPluginContainer(id); 630 plugin_container_manager_.DestroyPluginContainer(id);
630 } 631 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/gtk_im_context_wrapper.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698