[gtk+/wip/im-osk-position: 5/6] entry: Handle GtkIMContext::clear-area
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/im-osk-position: 5/6] entry: Handle GtkIMContext::clear-area
- Date: Fri, 3 Aug 2012 23:57:06 +0000 (UTC)
commit 12d9c93aff610fccd3c943a5e23d95a205993ad8
Author: Carlos Garnacho <carlos lanedo com>
Date: Wed Jun 27 15:52:04 2012 +0200
entry: Handle GtkIMContext::clear-area
gtk/gtkentry.c | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 335cb0f..2f4c890 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -501,6 +501,10 @@ static gboolean gtk_entry_delete_surrounding_cb (GtkIMContext *context,
gint offset,
gint n_chars,
GtkEntry *entry);
+static void gtk_entry_clear_area_cb (GtkIMContext *context,
+ cairo_rectangle_int_t *clear_area,
+ cairo_rectangle_int_t *cursor_rect,
+ GtkEntry *entry);
/* Internal routines
*/
@@ -2488,6 +2492,8 @@ gtk_entry_init (GtkEntry *entry)
G_CALLBACK (gtk_entry_retrieve_surrounding_cb), entry);
g_signal_connect (priv->im_context, "delete-surrounding",
G_CALLBACK (gtk_entry_delete_surrounding_cb), entry);
+ g_signal_connect (priv->im_context, "clear-area",
+ G_CALLBACK (gtk_entry_clear_area_cb), entry);
context = gtk_widget_get_style_context (GTK_WIDGET (entry));
gtk_style_context_add_class (context, GTK_STYLE_CLASS_ENTRY);
@@ -5404,6 +5410,25 @@ gtk_entry_delete_surrounding_cb (GtkIMContext *slave,
return TRUE;
}
+static void
+gtk_entry_clear_area_cb (GtkIMContext *context,
+ cairo_rectangle_int_t *clear_area,
+ cairo_rectangle_int_t *cursor_rect,
+ GtkEntry *entry)
+{
+ GtkEntryPrivate *priv = entry->priv;
+ GtkWidget *widget;
+
+ if (!priv->editable)
+ return;
+
+ widget = GTK_WIDGET (entry);
+ gtk_widget_unset_clear_area (widget, TRUE);
+
+ if (clear_area->width != 0 && clear_area->height != 0)
+ gtk_widget_request_clear_area (widget, clear_area, cursor_rect);
+}
+
/* Internal functions
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]