[maemo-commits] [maemo-commits] r17968 - in projects/haf/branches/gtk+/rgba-ng: . gdk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Apr 2 10:07:44 EEST 2009
- Previous message: [maemo-commits] r17967 - in projects/haf/branches/gtk+/rgba-ng: . gdk/x11
- Next message: [maemo-commits] r17969 - in projects/haf/branches/gtk+/rgba-ng: . gdk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: herzi Date: 2009-04-02 10:07:39 +0300 (Thu, 02 Apr 2009) New Revision: 17968 Modified: projects/haf/branches/gtk+/rgba-ng/ChangeLog projects/haf/branches/gtk+/rgba-ng/gdk/gdkwindow.c projects/haf/branches/gtk+/rgba-ng/gdk/gdkwindow.h Log: 2009-01-09 Sven Herzberg <sven at imendio.com> Fixes: NB#89864 - RGBA support * gdk/gdkwindow.c, * gdk/gdkwindow.h: added auto_composite property to GdkWindow; if enabled a new code path in gdk_window_end_paint() will be triggered that automatically renders compoited windows. Application developers will only have to set_composited(TRUE) and set_auto_composite(TRUE) to get nice RGBA subwindows Modified: projects/haf/branches/gtk+/rgba-ng/ChangeLog =================================================================== --- projects/haf/branches/gtk+/rgba-ng/ChangeLog 2009-04-02 07:07:22 UTC (rev 17967) +++ projects/haf/branches/gtk+/rgba-ng/ChangeLog 2009-04-02 07:07:39 UTC (rev 17968) @@ -1,3 +1,14 @@ +2009-01-09 Sven Herzberg <sven at imendio.com> + + About: NB#89864 - RGBA support + + * gdk/gdkwindow.c, + * gdk/gdkwindow.h: added auto_composite property to GdkWindow; if + enabled a new code path in gdk_window_end_paint() will be triggered + that automatically renders compoited windows. Application developers + will only have to set_composited(TRUE) and set_auto_composite(TRUE) to + get nice RGBA subwindows + 2009-01-14 Sven Herzberg <sven at imendio.com> About: NB#89864 - RGBA support Modified: projects/haf/branches/gtk+/rgba-ng/gdk/gdkwindow.c =================================================================== --- projects/haf/branches/gtk+/rgba-ng/gdk/gdkwindow.c 2009-04-02 07:07:22 UTC (rev 17967) +++ projects/haf/branches/gtk+/rgba-ng/gdk/gdkwindow.c 2009-04-02 07:07:39 UTC (rev 17968) @@ -1178,6 +1178,10 @@ GdkWindowObject *composited; GdkWindowPaint *paint; GdkGC *tmp_gc; +#ifdef MAEMO_CHANGES + cairo_t *cr; + GList *subwindow; +#endif GdkRectangle clip_box; gint x_offset, y_offset; @@ -1234,7 +1238,31 @@ clip_box.width, clip_box.height); reset_redirect_clip (window, tmp_gc, &data); } - + +#ifdef MAEMO_CHANGES + cr = gdk_cairo_create (window); + for (subwindow = gdk_window_peek_children (window); + subwindow; + subwindow = subwindow->next) + { + int x, y, w, h; + + if (!gdk_window_get_auto_composite (subwindow->data)) + continue; + + gdk_window_get_position (subwindow->data, + &x, &y); + gdk_window_get_size (subwindow->data, &w, &h); + + cairo_save (cr); + gdk_cairo_set_source_pixmap (cr, subwindow->data, x, y); + cairo_rectangle (cr, x, y, w, h); + cairo_fill (cr); + cairo_restore (cr); + } + cairo_destroy (cr); +#endif + /* Reset clip region of the cached GdkGC */ gdk_gc_set_clip_region (tmp_gc, NULL); @@ -4126,6 +4154,41 @@ return GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_static_gravities (window, use_static); } +#ifdef MAEMO_CHANGES +gboolean +gdk_window_get_auto_composite (GdkWindow *window) +{ + GdkWindowObject *private = (GdkWindowObject *)window; + + g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE); + + return private->auto_composite; +} + +void +gdk_window_set_auto_composite (GdkWindow *window, + gboolean auto_composite) +{ + GdkWindowObject *private = (GdkWindowObject *)window; + + g_return_if_fail (GDK_IS_WINDOW (window)); + + auto_composite = auto_composite != FALSE; + + if (private->auto_composite == auto_composite) + return; + + if (!private->composited && auto_composite) + { + g_warning ("gdk_window_set_auto_composite called but " + "window is not composited"); + return; + } + + private->auto_composite = auto_composite; +} +#endif + /** * gdk_window_set_composited: * @window: a #GdkWindow Modified: projects/haf/branches/gtk+/rgba-ng/gdk/gdkwindow.h =================================================================== --- projects/haf/branches/gtk+/rgba-ng/gdk/gdkwindow.h 2009-04-02 07:07:22 UTC (rev 17967) +++ projects/haf/branches/gtk+/rgba-ng/gdk/gdkwindow.h 2009-04-02 07:07:39 UTC (rev 17968) @@ -297,7 +297,10 @@ guint accept_focus : 1; guint focus_on_map : 1; guint shaped : 1; - +#ifdef MAEMO_CHANGES + guint auto_composite : 1; +#endif + GdkEventMask event_mask; guint update_and_descendants_freeze_count; @@ -400,6 +403,11 @@ */ void gdk_window_set_child_shapes (GdkWindow *window); +#ifdef MAEMO_CHANGES +void gdk_window_set_auto_composite (GdkWindow *window, + gboolean auto_composite); +gboolean gdk_window_get_auto_composite (GdkWindow *window); +#endif void gdk_window_set_composited (GdkWindow *window, gboolean composited);
- Previous message: [maemo-commits] r17967 - in projects/haf/branches/gtk+/rgba-ng: . gdk/x11
- Next message: [maemo-commits] r17969 - in projects/haf/branches/gtk+/rgba-ng: . gdk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]