summaryrefslogtreecommitdiffstats
path: root/views/widget
diff options
context:
space:
mode:
authorsuzhe@google.com <suzhe@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-01 22:59:32 +0000
committersuzhe@google.com <suzhe@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-01 22:59:32 +0000
commit4b99402b089ba598ae26c82d99c3c3d2fe0cd574 (patch)
treef4fe9b7a92bc90b364c40b901919fee163b7061b /views/widget
parent4b8b6d844d019a612a02274d298e3dcffc42276b (diff)
downloadchromium_src-4b99402b089ba598ae26c82d99c3c3d2fe0cd574.zip
chromium_src-4b99402b089ba598ae26c82d99c3c3d2fe0cd574.tar.gz
chromium_src-4b99402b089ba598ae26c82d99c3c3d2fe0cd574.tar.bz2
Refactor RenderWidgetHostViewViews to use the new input method API for Views.
This CL also fixes some issues related to NULL host_ pointer in the original code. Hope the fixes are correct. Another side effect of this CL is: it converts views::KeyEvent to NativeWebKeyboardEvent by using the conversion table of Views instead of WebInputEventFactory provided by WebKit. See bug 54315. BUG=54315 BUG=75003 TEST=none Review URL: http://codereview.chromium.org/6713083 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80238 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget')
-rw-r--r--views/widget/widget_gtk.cc15
-rw-r--r--views/widget/widget_gtk.h2
2 files changed, 12 insertions, 5 deletions
diff --git a/views/widget/widget_gtk.cc b/views/widget/widget_gtk.cc
index da998b4..9de4fa1 100644
--- a/views/widget/widget_gtk.cc
+++ b/views/widget/widget_gtk.cc
@@ -44,6 +44,12 @@
#endif
#endif
+#if defined(TOUCH_UI) && defined(HAVE_IBUS)
+#include "views/ime/input_method_ibus.h"
+#else
+#include "views/ime/input_method_gtk.h"
+#endif
+
using ui::OSExchangeData;
using ui::OSExchangeDataProviderGtk;
using ui::ActiveWindowWatcherX;
@@ -505,12 +511,13 @@ void WidgetGtk::Init(GtkWidget* parent,
// already created at this point.
// TODO(suzhe): Always enable input method when we start to use
// RenderWidgetHostViewViews in normal ChromeOS.
-#if !defined(TOUCH_UI)
- if (type_ != TYPE_CHILD && NativeTextfieldViews::IsTextfieldViewsEnabled()) {
-#else
+#if defined(TOUCH_UI) && defined(HAVE_IBUS)
if (type_ != TYPE_CHILD) {
-#endif
+ input_method_.reset(new InputMethodIBus(this));
+#else
+ if (type_ != TYPE_CHILD && NativeTextfieldViews::IsTextfieldViewsEnabled()) {
input_method_.reset(new InputMethodGtk(this));
+#endif
input_method_->Init(GetWidget());
}
diff --git a/views/widget/widget_gtk.h b/views/widget/widget_gtk.h
index 4028997..3217900 100644
--- a/views/widget/widget_gtk.h
+++ b/views/widget/widget_gtk.h
@@ -14,7 +14,6 @@
#include "ui/gfx/size.h"
#include "views/focus/focus_manager.h"
#include "views/ime/input_method_delegate.h"
-#include "views/ime/input_method_gtk.h"
#include "views/widget/native_widget.h"
#include "views/widget/widget.h"
@@ -32,6 +31,7 @@ using ui::OSExchangeDataProviderGtk;
namespace views {
class DropTargetGtk;
+class InputMethod;
class TooltipManagerGtk;
class View;
class WindowGtk;