[gimp/gtk3-port: 83/215] app: port the tag entry to GTK+ 3.0
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gtk3-port: 83/215] app: port the tag entry to GTK+ 3.0
- Date: Mon, 3 Jan 2011 15:05:21 +0000 (UTC)
commit 46224a6c2dd4160cf040fd0af0dc39a8050f521b
Author: Michael Natterer <mitch gimp org>
Date: Tue Oct 19 20:05:17 2010 +0200
app: port the tag entry to GTK+ 3.0
app/widgets/gimptagentry.c | 47 ++++++++++++++++++++++---------------------
1 files changed, 24 insertions(+), 23 deletions(-)
---
diff --git a/app/widgets/gimptagentry.c b/app/widgets/gimptagentry.c
index 934c3d4..a25ae47 100644
--- a/app/widgets/gimptagentry.c
+++ b/app/widgets/gimptagentry.c
@@ -110,8 +110,8 @@ static gboolean gimp_tag_entry_auto_complete (GimpTagEntry *entr
static void gimp_tag_entry_toggle_desc (GimpTagEntry *widget,
gboolean show);
-static gboolean gimp_tag_entry_expose (GtkWidget *widget,
- GdkEventExpose *event);
+static gboolean gimp_tag_entry_draw (GtkWidget *widget,
+ cairo_t *cr);
static void gimp_tag_entry_commit_region (GString *tags,
GString *mask);
static void gimp_tag_entry_commit_tags (GimpTagEntry *entry);
@@ -207,8 +207,8 @@ gimp_tag_entry_init (GimpTagEntry *entry)
g_signal_connect (entry, "focus-out-event",
G_CALLBACK (gimp_tag_entry_focus_out),
NULL);
- g_signal_connect_after (entry, "expose-event",
- G_CALLBACK (gimp_tag_entry_expose),
+ g_signal_connect_after (entry, "draw",
+ G_CALLBACK (gimp_tag_entry_draw),
NULL);
}
@@ -1254,10 +1254,11 @@ gimp_tag_entry_toggle_desc (GimpTagEntry *tag_entry,
}
static gboolean
-gimp_tag_entry_expose (GtkWidget *widget,
- GdkEventExpose *event)
+gimp_tag_entry_draw (GtkWidget *widget,
+ cairo_t *cr)
{
GimpTagEntry *tag_entry = GIMP_TAG_ENTRY (widget);
+ GdkWindow *window;
PangoLayout *layout;
PangoAttrList *attr_list;
PangoAttribute *attribute;
@@ -1268,8 +1269,9 @@ gimp_tag_entry_expose (GtkWidget *widget,
gint offset;
const char *display_text;
- /* eeeeeek */
- if (event->window != gtk_entry_get_text_window (GTK_ENTRY (widget)))
+ window = gtk_entry_get_text_window (GTK_ENTRY (widget));
+
+ if (! gtk_cairo_should_draw_window (cr, window))
return FALSE;
if (! GIMP_TAG_ENTRY (widget)->description_shown)
@@ -1293,17 +1295,16 @@ gimp_tag_entry_expose (GtkWidget *widget,
pango_layout_set_attributes (layout, attr_list);
pango_attr_list_unref (attr_list);
- gdk_drawable_get_size (GDK_DRAWABLE (event->window),
- &window_width, &window_height);
+ window_width = gdk_window_get_width (window);
+ window_height = gdk_window_get_height (window);
pango_layout_get_size (layout,
&layout_width, &layout_height);
offset = (window_height - PANGO_PIXELS (layout_height)) / 2;
gtk_paint_layout (gtk_widget_get_style (widget),
- event->window,
+ cr,
GTK_STATE_INSENSITIVE,
TRUE,
- &event->area,
widget,
NULL,
(gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) ?
@@ -1333,9 +1334,9 @@ gimp_tag_entry_key_press (GtkWidget *widget,
switch (event->keyval)
{
- case GDK_Tab:
- case GDK_KP_Tab:
- case GDK_ISO_Left_Tab:
+ case GDK_KEY_Tab:
+ case GDK_KEY_KP_Tab:
+ case GDK_KEY_ISO_Left_Tab:
/* allow to leave the widget with Ctrl+Tab */
if (! (event->state & GDK_CONTROL_MASK))
{
@@ -1352,21 +1353,21 @@ gimp_tag_entry_key_press (GtkWidget *widget,
}
return TRUE;
- case GDK_Return:
+ case GDK_KEY_Return:
gimp_tag_entry_commit_tags (entry);
break;
- case GDK_Left:
+ case GDK_KEY_Left:
gimp_tag_entry_previous_tag (entry,
(event->state & GDK_SHIFT_MASK) ? TRUE : FALSE);
return TRUE;
- case GDK_Right:
+ case GDK_KEY_Right:
gimp_tag_entry_next_tag (entry,
(event->state & GDK_SHIFT_MASK) ? TRUE : FALSE);
return TRUE;
- case GDK_BackSpace:
+ case GDK_KEY_BackSpace:
{
gint selection_start;
gint selection_end;
@@ -1389,7 +1390,7 @@ gimp_tag_entry_key_press (GtkWidget *widget,
}
break;
- case GDK_Delete:
+ case GDK_KEY_Delete:
{
gint selection_start;
gint selection_end;
@@ -1412,8 +1413,8 @@ gimp_tag_entry_key_press (GtkWidget *widget,
}
break;
- case GDK_Up:
- case GDK_Down:
+ case GDK_KEY_Up:
+ case GDK_KEY_Down:
if (entry->recent_list != NULL)
{
gchar *recent_item;
@@ -1423,7 +1424,7 @@ gimp_tag_entry_key_press (GtkWidget *widget,
gimp_tag_entry_add_to_recent (entry, very_recent_item, TRUE);
g_free (very_recent_item);
- if (event->keyval == GDK_Up)
+ if (event->keyval == GDK_KEY_Up)
{
recent_item = (gchar *) g_list_first (entry->recent_list)->data;
entry->recent_list = g_list_remove (entry->recent_list, recent_item);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]