Commit 15bb7fdf authored by eric@webkit.org's avatar eric@webkit.org

2010-01-27 Martin Robinson <mrobinson@webkit.org>

        Reviewed by Gustavo Noronha Silva.

        [GTK] Expose the IM context via the API
        https://bugs.webkit.org/show_bug.cgi?id=33327

        Expose the GtkIMMultiContext as a property of WebKitWebView. This will
        allow embedders to generate the input method context menu entries and
        make testing certain IM context behavior possible.

        * webkit/webkitwebview.cpp:
        (webkit_web_view_get_property):
        (DNDContentsRequest::webkit_web_view_get_im_context):
        (DNDContentsRequest::webkit_web_view_class_init):

git-svn-id: svn://svn.chromium.org/blink/trunk@53967 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 5c9eb9e9
2010-01-27 Martin Robinson <mrobinson@webkit.org>
Reviewed by Gustavo Noronha Silva.
[GTK] Expose the IM context via the API
https://bugs.webkit.org/show_bug.cgi?id=33327
Expose the GtkIMMultiContext as a property of WebKitWebView. This will
allow embedders to generate the input method context menu entries and
make testing certain IM context behavior possible.
* webkit/webkitwebview.cpp:
(webkit_web_view_get_property):
(DNDContentsRequest::webkit_web_view_get_im_context):
(DNDContentsRequest::webkit_web_view_class_init):
2010-01-19 Joanmarie Diggs <joanmarie.diggs@gmail.com> 2010-01-19 Joanmarie Diggs <joanmarie.diggs@gmail.com>
Reviewed by Xan Lopez. Reviewed by Xan Lopez.
......
...@@ -179,7 +179,8 @@ enum { ...@@ -179,7 +179,8 @@ enum {
PROP_PROGRESS, PROP_PROGRESS,
PROP_ENCODING, PROP_ENCODING,
PROP_CUSTOM_ENCODING, PROP_CUSTOM_ENCODING,
PROP_ICON_URI PROP_ICON_URI,
PROP_IM_CONTEXT
}; };
static guint webkit_web_view_signals[LAST_SIGNAL] = { 0, }; static guint webkit_web_view_signals[LAST_SIGNAL] = { 0, };
...@@ -189,6 +190,8 @@ G_DEFINE_TYPE(WebKitWebView, webkit_web_view, GTK_TYPE_CONTAINER) ...@@ -189,6 +190,8 @@ G_DEFINE_TYPE(WebKitWebView, webkit_web_view, GTK_TYPE_CONTAINER)
static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GParamSpec* pspec, WebKitWebView* webView); static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GParamSpec* pspec, WebKitWebView* webView);
static void webkit_web_view_set_window_features(WebKitWebView* webView, WebKitWebWindowFeatures* webWindowFeatures); static void webkit_web_view_set_window_features(WebKitWebView* webView, WebKitWebWindowFeatures* webWindowFeatures);
static GtkIMContext* webkit_web_view_get_im_context(WebKitWebView*);
static void destroy_menu_cb(GtkObject* object, gpointer data) static void destroy_menu_cb(GtkObject* object, gpointer data)
{ {
WebKitWebView* webView = WEBKIT_WEB_VIEW(data); WebKitWebView* webView = WEBKIT_WEB_VIEW(data);
...@@ -384,6 +387,9 @@ static void webkit_web_view_get_property(GObject* object, guint prop_id, GValue* ...@@ -384,6 +387,9 @@ static void webkit_web_view_get_property(GObject* object, guint prop_id, GValue*
case PROP_ICON_URI: case PROP_ICON_URI:
g_value_set_string(value, webkit_web_view_get_icon_uri(webView)); g_value_set_string(value, webkit_web_view_get_icon_uri(webView));
break; break;
case PROP_IM_CONTEXT:
g_value_set_object(value, webkit_web_view_get_im_context(webView));
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
} }
...@@ -1299,6 +1305,12 @@ static gboolean webkit_web_view_query_tooltip(GtkWidget *widget, gint x, gint y, ...@@ -1299,6 +1305,12 @@ static gboolean webkit_web_view_query_tooltip(GtkWidget *widget, gint x, gint y,
} }
#endif #endif
static GtkIMContext* webkit_web_view_get_im_context(WebKitWebView* webView)
{
g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0);
return GTK_IM_CONTEXT(webView->priv->imContext);
}
static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
{ {
GtkBindingSet* binding_set; GtkBindingSet* binding_set;
...@@ -2481,6 +2493,23 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) ...@@ -2481,6 +2493,23 @@ static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass)
_("The URI for the favicon for the #WebKitWebView."), _("The URI for the favicon for the #WebKitWebView."),
NULL, NULL,
WEBKIT_PARAM_READABLE)); WEBKIT_PARAM_READABLE));
/**
* WebKitWebView:im-context:
*
* The GtkIMMulticontext for the #WebKitWebView.
*
* This is the input method context used for all text entry widgets inside
* the #WebKitWebView. It can be used to generate context menu items for
* controlling the active input method.
*
* Since: 1.1.20
*/
g_object_class_install_property(objectClass, PROP_IM_CONTEXT,
g_param_spec_object("im-context",
"IM Context",
"The GtkIMMultiContext for the #WebKitWebView.",
GTK_TYPE_IM_CONTEXT,
WEBKIT_PARAM_READABLE));
g_type_class_add_private(webViewClass, sizeof(WebKitWebViewPrivate)); g_type_class_add_private(webViewClass, sizeof(WebKitWebViewPrivate));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment