diff options
author | Anders Carlsson <andersca@gnu.org> | 2002-01-03 00:30:39 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@src.gnome.org> | 2002-01-03 00:30:39 +0000 |
commit | a11baab148e120df14d60d53cfb4fe0fa16b2745 (patch) | |
tree | cd9e07852d23f56274d4ca406b95da5bce0b4077 /gtk | |
parent | 88edb0e58ef4dc63ae089f0aeeeff9d7800e52da (diff) | |
download | gdk-pixbuf-a11baab148e120df14d60d53cfb4fe0fa16b2745.tar.gz |
Free dash list if necessary.
2002-01-03 Anders Carlsson <andersca@gnu.org>
* gtk/gtkstyle.c (gtk_default_draw_focus): Free dash list if
necessary.
* gtk/gtkhsv.c (gtk_hsv_get_focus_gc): Free dash list.
* gtk/gtkcolorsel.c (get_focus_gc): Free dash list.
* gtk/gtkdnd.c (set_icon_stock_pixbuf): Don't unref the mask
if it's NULL.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkcolorsel.c | 2 | ||||
-rw-r--r-- | gtk/gtkdnd.c | 4 | ||||
-rw-r--r-- | gtk/gtkhsv.c | 2 | ||||
-rw-r--r-- | gtk/gtkstyle.c | 26 |
4 files changed, 27 insertions, 7 deletions
diff --git a/gtk/gtkcolorsel.c b/gtk/gtkcolorsel.c index 891f7ce6c..64be1c05b 100644 --- a/gtk/gtkcolorsel.c +++ b/gtk/gtkcolorsel.c @@ -676,6 +676,8 @@ get_focus_gc (GtkWidget *drawing_area, if (dash_list[0]) gdk_gc_set_dashes (gc, 0, dash_list, strlen (dash_list)); + g_free (dash_list); + return gc; } diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index 6af2c50d9..83b79ef46 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -2169,7 +2169,9 @@ set_icon_stock_pixbuf (GdkDragContext *context, gtk_widget_shape_combine_mask (window, mask, 0, 0); g_object_unref (G_OBJECT (pixmap)); - g_object_unref (G_OBJECT (mask)); + + if (mask) + g_object_unref (G_OBJECT (mask)); gtk_drag_set_icon_window (context, window, hot_x, hot_y, TRUE); } diff --git a/gtk/gtkhsv.c b/gtk/gtkhsv.c index cc041c589..737c1b463 100644 --- a/gtk/gtkhsv.c +++ b/gtk/gtkhsv.c @@ -1755,5 +1755,7 @@ gtk_hsv_get_focus_gc (GtkHSV *hsv, if (dash_list[0]) gdk_gc_set_dashes (focus_gc, 0, dash_list, strlen (dash_list)); + g_free (dash_list); + return focus_gc; } diff --git a/gtk/gtkstyle.c b/gtk/gtkstyle.c index ed8a4ba5b..9f5d91bad 100644 --- a/gtk/gtkstyle.c +++ b/gtk/gtkstyle.c @@ -3804,6 +3804,7 @@ gtk_default_draw_focus (GtkStyle *style, { GdkPoint points[5]; GdkGC *gc; + gboolean free_dash_list = FALSE; gint line_width = 1; gchar *dash_list = "\1\1"; gint dash_len; @@ -3811,11 +3812,15 @@ gtk_default_draw_focus (GtkStyle *style, gc = style->fg_gc[state_type]; if (widget) - gtk_widget_style_get (widget, - "focus-line-width", &line_width, - "focus-line-pattern", (gchar *)&dash_list, - NULL); - + { + gtk_widget_style_get (widget, + "focus-line-width", &line_width, + "focus-line-pattern", (gchar *)&dash_list, + NULL); + + free_dash_list = TRUE; + } + sanitize_size (window, &width, &height); if (area) @@ -3827,7 +3832,13 @@ gtk_default_draw_focus (GtkStyle *style, if (detail && !strcmp (detail, "add-mode")) - dash_list = "\4\4"; + { + if (free_dash_list) + g_free (dash_list); + + dash_list = "\4\4"; + free_dash_list = FALSE; + } points[0].x = x + line_width / 2; points[0].y = y + line_width / 2; @@ -3911,6 +3922,9 @@ gtk_default_draw_focus (GtkStyle *style, if (area) gdk_gc_set_clip_rectangle (gc, NULL); + + if (free_dash_list) + g_free (dash_list); } static void |