aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch')
-rw-r--r--meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch b/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
new file mode 100644
index 0000000000..92d194de08
--- /dev/null
+++ b/meta-oe/recipes-navigation/orrery/orrery/use.GdkPixbuf.patch
@@ -0,0 +1,59 @@
+From: Benjamin Deering
+Subject: orrery crashing X
+Date: Thursday, September 2, 2010 - 5:25 pm
+Link: http://kerneltrap.org/mailarchive/openmoko-community/2010/9/3/13218
+
+diff -uNr orrery.orig//orrery.c orrery/orrery.c
+--- orrery.orig//orrery.c 2009-11-30 06:59:44.000000000 +0100
++++ orrery/orrery.c 2010-11-15 22:33:17.000000000 +0100
+@@ -1238,12 +1238,44 @@
+ }
+ currentEntry = currentEntry->forwardPointer;
+ }
+- if (nDarkGreyPoints > 0)
+- gdk_draw_points(pixmap, darkGreyGC, darkGreyPoints, nDarkGreyPoints);
+- if (nGreyPoints > 0)
+- gdk_draw_points(pixmap, greyGC, greyPoints, nGreyPoints);
+- if (nWhitePoints > 0)
+- gdk_draw_points(pixmap, whiteGC, whitePoints, nWhitePoints);
++ GdkPixbuf* starDrawingBuf = gdk_pixbuf_get_from_drawable( NULL,
++ pixmap,
++ gdk_colormap_get_system()
++ , 0, 0, 0, 0, displayWidth, displayHeight);
++ g_assert (gdk_pixbuf_get_bits_per_sample (starDrawingBuf) == 8);
++ guchar* p;
++ int rowstride = gdk_pixbuf_get_rowstride (starDrawingBuf);
++ guchar* pixels = gdk_pixbuf_get_pixels (starDrawingBuf);
++ int n_channels = gdk_pixbuf_get_n_channels (starDrawingBuf);
++ GdkGCValues starGCval;
++ GdkColor starColor;
++ int pointNum;
++ gdk_gc_get_values(darkGreyGC, &starGCval);
++ gdk_colormap_query_color( gdk_gc_get_colormap(darkGreyGC),starGCval.foreground.pixel, &starColor );
++ for( pointNum = 0; pointNum < nDarkGreyPoints; pointNum++) {
++ p = pixels + darkGreyPoints[pointNum].y * rowstride + darkGreyPoints[pointNum].x * n_channels;
++ p[0] = starColor.red & 0xff;
++ p[1] = starColor.green & 0xff;
++ p[2] = starColor.blue & 0xff;
++ }
++ gdk_gc_get_values(greyGC, &starGCval);
++ gdk_colormap_query_color( gdk_gc_get_colormap(greyGC), starGCval.foreground.pixel, &starColor );
++ for( pointNum = 0; pointNum < nGreyPoints; pointNum++) {
++ p = pixels + greyPoints[pointNum].y * rowstride + greyPoints[pointNum].x * n_channels;
++ p[0] = starColor.red & 0xff;
++ p[1] = starColor.green & 0xff;
++ p[2] = starColor.blue & 0xff;
++ }
++ gdk_gc_get_values(whiteGC, &starGCval);
++ gdk_colormap_query_color( gdk_gc_get_colormap(whiteGC), starGCval.foreground.pixel, &starColor );
++ for( pointNum = 0; pointNum < nWhitePoints; pointNum++) {
++ p = pixels + whitePoints[pointNum].y * rowstride + whitePoints[pointNum].x * n_channels;
++ p[0] = starColor.red & 0xff;
++ p[1] = starColor.green & 0xff;
++ p[2] = starColor.blue & 0xff;
++ }
++ gdk_draw_pixbuf ( pixmap , NULL , starDrawingBuf,
++ 0, 0, 0, 0, displayWidth, displayHeight, GDK_RGB_DITHER_NORMAL, 0, 0 ) ;
+ }
+
+ void makeTimeString(char *string)