diff options
author | Alexander Larsson <alla@lysator.liu.se> | 2001-06-13 15:02:35 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2001-06-13 15:02:35 +0000 |
commit | 099da4d22236deecd17b4ebcf9ad3c3a1ee6c755 (patch) | |
tree | e253cd0e8157c356e41711d811eac41dabee4188 /gdk/linux-fb/gdkgc-fb.c | |
parent | 2b448b8e37e2e4e8ae95e8ee0ee66a45ba58a267 (diff) | |
download | gtk+-099da4d22236deecd17b4ebcf9ad3c3a1ee6c755.tar.gz |
Deep copy dash_list too. (_gdk_fb_gc_new): Set default cap_style before
2001-06-13 Alexander Larsson <alla@lysator.liu.se>
* gdk/linux-fb/gdkgc-fb.c (gdk_gc_copy):
Deep copy dash_list too.
(_gdk_fb_gc_new): Set default cap_style before
setting values.
Diffstat (limited to 'gdk/linux-fb/gdkgc-fb.c')
-rw-r--r-- | gdk/linux-fb/gdkgc-fb.c | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/gdk/linux-fb/gdkgc-fb.c b/gdk/linux-fb/gdkgc-fb.c index b9252d1561..9a927fbd5e 100644 --- a/gdk/linux-fb/gdkgc-fb.c +++ b/gdk/linux-fb/gdkgc-fb.c @@ -75,7 +75,7 @@ _gdk_fb_gc_new (GdkDrawable *drawable, { GdkGC *gc; GdkGCFBData *private; - + gc = GDK_GC (g_object_new (gdk_gc_fb_get_type (), NULL)); private = (GdkGCFBData *)gc; @@ -86,11 +86,11 @@ _gdk_fb_gc_new (GdkDrawable *drawable, private->values.foreground.green = private->values.foreground.blue = 65535; + private->values.cap_style = GDK_CAP_BUTT; + _gdk_fb_gc_calc_state (gc, _GDK_FB_GC_DEPTH); gdk_fb_gc_set_values (gc, values, values_mask); - - private->values.cap_style = GDK_CAP_BUTT; return gc; } @@ -379,33 +379,46 @@ void gdk_gc_copy (GdkGC *dst_gc, GdkGC *src_gc) { GdkGCFBData *dst_private; + GdkGCFBData *src_private; + src_private = GDK_GC_FBDATA (dst_gc); dst_private = GDK_GC_FBDATA (dst_gc); g_return_if_fail (dst_gc != NULL); g_return_if_fail (src_gc != NULL); if (dst_private->clip_region) - gdk_region_destroy(dst_private->clip_region); + gdk_region_destroy (dst_private->clip_region); if (dst_private->values_mask & GDK_GC_FONT) - gdk_font_unref(dst_private->values.font); + gdk_font_unref (dst_private->values.font); if (dst_private->values_mask & GDK_GC_TILE) - gdk_pixmap_unref(dst_private->values.tile); + gdk_pixmap_unref (dst_private->values.tile); if (dst_private->values_mask & GDK_GC_STIPPLE) - gdk_pixmap_unref(dst_private->values.stipple); + gdk_pixmap_unref (dst_private->values.stipple); if (dst_private->values_mask & GDK_GC_CLIP_MASK) - gdk_pixmap_unref(dst_private->values.clip_mask); + gdk_pixmap_unref (dst_private->values.clip_mask); - *dst_private = *GDK_GC_FBDATA (src_gc); + g_free (dst_private->dash_list); + + *dst_private = *src_private; if (dst_private->values_mask & GDK_GC_FONT) - gdk_font_ref(dst_private->values.font); + gdk_font_ref (dst_private->values.font); if (dst_private->values_mask & GDK_GC_TILE) - gdk_pixmap_ref(dst_private->values.tile); + gdk_pixmap_ref (dst_private->values.tile); if (dst_private->values_mask & GDK_GC_STIPPLE) - gdk_pixmap_ref(dst_private->values.stipple); + gdk_pixmap_ref (dst_private->values.stipple); if (dst_private->values_mask & GDK_GC_CLIP_MASK) - gdk_pixmap_ref(dst_private->values.clip_mask); + gdk_pixmap_ref (dst_private->values.clip_mask); + if (dst_private->clip_region) - dst_private->clip_region = gdk_region_copy(dst_private->clip_region); + dst_private->clip_region = gdk_region_copy (dst_private->clip_region); + + if (dst_private->dash_list) + { + dst_private->dash_list = g_malloc (dst_private->dash_list_len); + memcpy (dst_private->dash_list, + src_private->dash_list, + dst_private->dash_list_len); + } } |