[maemo-commits] [maemo-commits] r18892 - in projects/haf/trunk/gtk+: . gdk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Mon Jul 20 16:50:42 EEST 2009
Author: herzi
Date: 2009-07-20 16:50:40 +0300 (Mon, 20 Jul 2009)
New Revision: 18892

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gdk/gdkwindow.c
Log:
2009-07-20  Sven Herzberg  <herzi at lanedo.com>

	About: NB#89864 - RGBA support

	* gdk/gdkwindow.c (gdk_window_new), (gdk_window_end_paint): only
	compose output child windows


Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2009-07-20 13:50:36 UTC (rev 18891)
+++ projects/haf/trunk/gtk+/ChangeLog	2009-07-20 13:50:40 UTC (rev 18892)
@@ -1,3 +1,10 @@
+2009-07-20  Sven Herzberg  <herzi at lanedo.com>
+
+	About: NB#89864 - RGBA support
+
+	* gdk/gdkwindow.c (gdk_window_new), (gdk_window_end_paint): only
+	compose output child windows
+
 2009-04-02  Sven Herzberg  <herzi at lanedo.com>
 
 	Fixes: NB#89864 - RGBA support

Modified: projects/haf/trunk/gtk+/gdk/gdkwindow.c
===================================================================
--- projects/haf/trunk/gtk+/gdk/gdkwindow.c	2009-07-20 13:50:36 UTC (rev 18891)
+++ projects/haf/trunk/gtk+/gdk/gdkwindow.c	2009-07-20 13:50:40 UTC (rev 18892)
@@ -384,7 +384,9 @@
 
 #ifdef MAEMO_CHANGES
   /* auto-enable compositing for these widgets */
-  if (attributes->window_type == GDK_WINDOW_CHILD && gdk_drawable_get_depth (window) == 32)
+  if (attributes->window_type == GDK_WINDOW_CHILD &&
+      attributes->wclass != GDK_INPUT_ONLY &&
+      gdk_drawable_get_depth (window) == 32)
     {
       gdk_window_set_composited (window, TRUE);
       gdk_window_set_auto_composite (window, TRUE);
@@ -1264,12 +1266,25 @@
       GdkWindowClipData data;
       
       setup_redirect_clip (window, tmp_gc, &data);
+#ifndef MAEMO_CHANGES
       gdk_draw_drawable (private->redirect->pixmap, tmp_gc, paint->pixmap,
 			 clip_box.x - paint->x_offset,
 			 clip_box.y - paint->y_offset,
 			 clip_box.x + data.x_offset,
 			 clip_box.y + data.y_offset,
 			 clip_box.width, clip_box.height);
+#else
+      cairo_t* cr = gdk_cairo_create (private->redirect->pixmap);
+      cairo_rectangle (cr,
+                       clip_box.x + data.x_offset,
+                       clip_box.y + data.y_offset,
+                       clip_box.width, clip_box.height);
+      gdk_cairo_set_source_pixmap (cr, paint->pixmap,
+                                   clip_box.x - paint->x_offset,
+                                   clip_box.y - paint->y_offset);
+      cairo_fill (cr);
+      cairo_destroy (cr);
+#endif
       reset_redirect_clip (window, tmp_gc, &data);
     }
 
@@ -1322,6 +1337,7 @@
   gdk_region_destroy (paint->region);
   g_free (paint);
 
+#ifndef MAEMO_CHANGES
   /* find a composited window in our hierarchy to signal its
    * parent to redraw, calculating the clip box as we go...
    *
@@ -1349,6 +1365,7 @@
 	  break;
 	}
     }
+#endif
 #endif /* USE_BACKING_STORE */
 }
 

More information about the maemo-commits mailing list