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

Side by Side Diff: chrome/browser/renderer_host/gtk_im_context_wrapper.h

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 | « no previous file | chrome/browser/renderer_host/gtk_im_context_wrapper.cc » ('j') | 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 #ifndef CHROME_BROWSER_RENDERER_HOST_GTK_IM_CONTEXT_WRAPPER_H_ 5 #ifndef CHROME_BROWSER_RENDERER_HOST_GTK_IM_CONTEXT_WRAPPER_H_
6 #define CHROME_BROWSER_RENDERER_HOST_GTK_IM_CONTEXT_WRAPPER_H_ 6 #define CHROME_BROWSER_RENDERER_HOST_GTK_IM_CONTEXT_WRAPPER_H_
7 7
8 #include <gdk/gdk.h> 8 #include <gdk/gdk.h>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/string16.h" 11 #include "base/string16.h"
12 12
13 namespace gfx { 13 namespace gfx {
14 class Rect; 14 class Rect;
15 } 15 }
16 16
17 class RenderWidgetHostViewGtk; 17 class RenderWidgetHostViewGtk;
18 class NativeWebKeyboardEvent; 18 class NativeWebKeyboardEvent;
19 typedef struct _GtkIMContext GtkIMContext; 19 typedef struct _GtkIMContext GtkIMContext;
20 typedef struct _GtkWidget GtkWidget;
20 21
21 // This class is a convenience wrapper for GtkIMContext. 22 // This class is a convenience wrapper for GtkIMContext.
22 // It creates and manages two GtkIMContext instances, one is GtkIMMulticontext, 23 // It creates and manages two GtkIMContext instances, one is GtkIMMulticontext,
23 // for plain text input box, another is GtkIMContextSimple, for password input 24 // for plain text input box, another is GtkIMContextSimple, for password input
24 // box. 25 // box.
25 // 26 //
26 // This class is in charge of dispatching key events to these two GtkIMContext 27 // This class is in charge of dispatching key events to these two GtkIMContext
27 // instances and handling signals emitted by them. Key events then will be 28 // instances and handling signals emitted by them. Key events then will be
28 // forwarded to renderer along with input method results via corresponding host 29 // forwarded to renderer along with input method results via corresponding host
29 // view. 30 // view.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 62
62 // Real code of "preedit-start" signal handler. 63 // Real code of "preedit-start" signal handler.
63 void HandlePreeditStart(); 64 void HandlePreeditStart();
64 65
65 // Real code of "preedit-changed" signal handler. 66 // Real code of "preedit-changed" signal handler.
66 void HandlePreeditChanged(const string16& text, int cursor_position); 67 void HandlePreeditChanged(const string16& text, int cursor_position);
67 68
68 // Real code of "preedit-end" signal handler. 69 // Real code of "preedit-end" signal handler.
69 void HandlePreeditEnd(); 70 void HandlePreeditEnd();
70 71
72 // Real code of "realize" signal handler, used for setting im context's client
73 // window.
74 void HandleHostViewRealize(GtkWidget* widget);
75
76 // Real code of "unrealize" signal handler, used for unsetting im context's
77 // client window.
78 void HandleHostViewUnrealize();
79
71 // Signal handlers of GtkIMContext object. 80 // Signal handlers of GtkIMContext object.
72 static void HandleCommitThunk(GtkIMContext* context, gchar* text, 81 static void HandleCommitThunk(GtkIMContext* context, gchar* text,
73 GtkIMContextWrapper* self); 82 GtkIMContextWrapper* self);
74 static void HandlePreeditStartThunk(GtkIMContext* context, 83 static void HandlePreeditStartThunk(GtkIMContext* context,
75 GtkIMContextWrapper* self); 84 GtkIMContextWrapper* self);
76 static void HandlePreeditChangedThunk(GtkIMContext* context, 85 static void HandlePreeditChangedThunk(GtkIMContext* context,
77 GtkIMContextWrapper* self); 86 GtkIMContextWrapper* self);
78 static void HandlePreeditEndThunk(GtkIMContext* context, 87 static void HandlePreeditEndThunk(GtkIMContext* context,
79 GtkIMContextWrapper* self); 88 GtkIMContextWrapper* self);
80 89
90 // Signal handlers connecting to |host_view_|'s native view widget.
91 static void HandleHostViewRealizeThunk(GtkWidget* widget,
92 GtkIMContextWrapper* self);
93 static void HandleHostViewUnrealizeThunk(GtkWidget* widget,
94 GtkIMContextWrapper* self);
95
81 // The parent object. 96 // The parent object.
82 RenderWidgetHostViewGtk* host_view_; 97 RenderWidgetHostViewGtk* host_view_;
83 98
84 // The GtkIMContext object. 99 // The GtkIMContext object.
85 // In terms of the DOM event specification Appendix A 100 // In terms of the DOM event specification Appendix A
86 // <http://www.w3.org/TR/DOM-Level-3-Events/keyset.html>, 101 // <http://www.w3.org/TR/DOM-Level-3-Events/keyset.html>,
87 // GTK uses a GtkIMContext object for the following two purposes: 102 // GTK uses a GtkIMContext object for the following two purposes:
88 // 1. Composing Latin characters (A.1.2), and; 103 // 1. Composing Latin characters (A.1.2), and;
89 // 2. Composing CJK characters with an IME (A.1.3). 104 // 2. Composing CJK characters with an IME (A.1.3).
90 // Many JavaScript pages assume composed Latin characters are dispatched to 105 // Many JavaScript pages assume composed Latin characters are dispatched to
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 164
150 // Stores a copy of the most recent commit text received by commit signal 165 // Stores a copy of the most recent commit text received by commit signal
151 // handler. 166 // handler.
152 string16 commit_text_; 167 string16 commit_text_;
153 168
154 DISALLOW_COPY_AND_ASSIGN(GtkIMContextWrapper); 169 DISALLOW_COPY_AND_ASSIGN(GtkIMContextWrapper);
155 }; 170 };
156 171
157 172
158 #endif // CHROME_BROWSER_RENDERER_HOST_GTK_IM_CONTEXT_WRAPPER_H_ 173 #endif // CHROME_BROWSER_RENDERER_HOST_GTK_IM_CONTEXT_WRAPPER_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/renderer_host/gtk_im_context_wrapper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698