summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@gnu.org>2002-01-03 00:30:39 +0000
committerAnders Carlsson <andersca@src.gnome.org>2002-01-03 00:30:39 +0000
commita11baab148e120df14d60d53cfb4fe0fa16b2745 (patch)
treecd9e07852d23f56274d4ca406b95da5bce0b4077 /gtk
parent88edb0e58ef4dc63ae089f0aeeeff9d7800e52da (diff)
downloadgdk-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.c2
-rw-r--r--gtk/gtkdnd.c4
-rw-r--r--gtk/gtkhsv.c2
-rw-r--r--gtk/gtkstyle.c26
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