[maemo-commits] [maemo-commits] r9294 - in projects/haf/trunk/sapwood: . src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Jan 24 15:24:27 EET 2007
Author: tko
Date: 2007-01-24 15:24:24 +0200 (Wed, 24 Jan 2007)
New Revision: 9294

Modified:
   projects/haf/trunk/sapwood/ChangeLog
   projects/haf/trunk/sapwood/src/sapwood-server.c
Log:
MB#856: use system default visual depth to avoid crash when bpp != 16

2007-01-24  Jose Dapena Paz  <jdapena at igalia.com>

	* src/sapwood-server.c (extract_pixmap_single, main,
	get_display_depth): use system default visual depth for all pixmaps.
	This avoids crashing when running maemo desktop in a 24 bits color
	depth X server (bug #856).


Modified: projects/haf/trunk/sapwood/ChangeLog
===================================================================
--- projects/haf/trunk/sapwood/ChangeLog	2007-01-24 13:14:19 UTC (rev 9293)
+++ projects/haf/trunk/sapwood/ChangeLog	2007-01-24 13:24:24 UTC (rev 9294)
@@ -1,3 +1,10 @@
+2007-01-24  Jose Dapena Paz  <jdapena at igalia.com>
+
+	* src/sapwood-server.c (extract_pixmap_single, main,
+	get_display_depth): use system default visual depth for all pixmaps.
+	This avoids crashing when running maemo desktop in a 24 bits color
+	depth X server (bug #856).
+
 2006-10-26  Tommi Komulainen  <tommi.komulainen at nokia.com>
 
 	* === Release 2.43 ===

Modified: projects/haf/trunk/sapwood/src/sapwood-server.c
===================================================================
--- projects/haf/trunk/sapwood/src/sapwood-server.c	2007-01-24 13:14:19 UTC (rev 9293)
+++ projects/haf/trunk/sapwood/src/sapwood-server.c	2007-01-24 13:24:24 UTC (rev 9294)
@@ -49,6 +49,7 @@
 static GCache *pixmap_cache   = NULL;
 static int     pixmap_counter = 0;
 static int     pixbuf_counter = 0;
+static int     server_depth   = 0;
 
 static const char *sock_path;
 
@@ -85,7 +86,7 @@
   static GdkGC *tmp_gc = NULL;
   gboolean      need_mask;
 
-  pixmap = gdk_pixmap_new (NULL, width, height, 16);
+  pixmap = gdk_pixmap_new (NULL, width, height, server_depth);
 
   if (!tmp_gc)
     tmp_gc = gdk_gc_new (pixmap);
@@ -512,6 +513,21 @@
   return TRUE;
 }
 
+static int
+get_display_depth (void)
+{
+  GdkScreen *screen;
+  GdkVisual *system_visual;
+
+  screen = gdk_screen_get_default ();
+  g_assert (screen != NULL);
+
+  system_visual = gdk_screen_get_system_visual (screen);
+
+  return system_visual->depth;
+}
+
+
 int
 main (int argc, char **argv)
 {
@@ -528,6 +544,8 @@
 
   gdk_init (&argc, &argv);
 
+  server_depth = get_display_depth ();
+
   sock_path = sapwood_socket_path_get_default ();
 
   fd = socket (PF_LOCAL, SOCK_STREAM, 0);


More information about the maemo-commits mailing list