From 60542887d5f85d976e71ded505a99d29fe2570a4 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Sat, 9 Feb 2002 05:24:25 +0000 Subject: [PATCH] XCopyArea with subwindow_mode = IncludeInferiors. (#70999) Sat Feb 9 00:16:31 2002 Owen Taylor * gdk/x11/gdkimage-x11.c (_gdk_x11_copy_to_image): XCopyArea with subwindow_mode = IncludeInferiors. (#70999) * demos/testpixbuf-save.c (configure_cb): Fix a minor memory management problem. --- ChangeLog | 9 +++++++++ ChangeLog.pre-2-0 | 9 +++++++++ ChangeLog.pre-2-10 | 9 +++++++++ ChangeLog.pre-2-2 | 9 +++++++++ ChangeLog.pre-2-4 | 9 +++++++++ ChangeLog.pre-2-6 | 9 +++++++++ ChangeLog.pre-2-8 | 9 +++++++++ demos/testpixbuf-save.c | 4 ++-- gdk/x11/gdkimage-x11.c | 6 +++++- 9 files changed, 70 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8ceaed0b54..afd7613122 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Sat Feb 9 00:16:31 2002 Owen Taylor + + * gdk/x11/gdkimage-x11.c (_gdk_x11_copy_to_image): + XCopyArea with subwindow_mode = IncludeInferiors. + (#70999) + + * demos/testpixbuf-save.c (configure_cb): Fix a minor + memory management problem. + Fri Feb 8 20:24:58 2002 Owen Taylor diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 8ceaed0b54..afd7613122 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,12 @@ +Sat Feb 9 00:16:31 2002 Owen Taylor + + * gdk/x11/gdkimage-x11.c (_gdk_x11_copy_to_image): + XCopyArea with subwindow_mode = IncludeInferiors. + (#70999) + + * demos/testpixbuf-save.c (configure_cb): Fix a minor + memory management problem. + Fri Feb 8 20:24:58 2002 Owen Taylor diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 8ceaed0b54..afd7613122 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +Sat Feb 9 00:16:31 2002 Owen Taylor + + * gdk/x11/gdkimage-x11.c (_gdk_x11_copy_to_image): + XCopyArea with subwindow_mode = IncludeInferiors. + (#70999) + + * demos/testpixbuf-save.c (configure_cb): Fix a minor + memory management problem. + Fri Feb 8 20:24:58 2002 Owen Taylor diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 8ceaed0b54..afd7613122 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,12 @@ +Sat Feb 9 00:16:31 2002 Owen Taylor + + * gdk/x11/gdkimage-x11.c (_gdk_x11_copy_to_image): + XCopyArea with subwindow_mode = IncludeInferiors. + (#70999) + + * demos/testpixbuf-save.c (configure_cb): Fix a minor + memory management problem. + Fri Feb 8 20:24:58 2002 Owen Taylor diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 8ceaed0b54..afd7613122 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,12 @@ +Sat Feb 9 00:16:31 2002 Owen Taylor + + * gdk/x11/gdkimage-x11.c (_gdk_x11_copy_to_image): + XCopyArea with subwindow_mode = IncludeInferiors. + (#70999) + + * demos/testpixbuf-save.c (configure_cb): Fix a minor + memory management problem. + Fri Feb 8 20:24:58 2002 Owen Taylor diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 8ceaed0b54..afd7613122 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +Sat Feb 9 00:16:31 2002 Owen Taylor + + * gdk/x11/gdkimage-x11.c (_gdk_x11_copy_to_image): + XCopyArea with subwindow_mode = IncludeInferiors. + (#70999) + + * demos/testpixbuf-save.c (configure_cb): Fix a minor + memory management problem. + Fri Feb 8 20:24:58 2002 Owen Taylor diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 8ceaed0b54..afd7613122 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +Sat Feb 9 00:16:31 2002 Owen Taylor + + * gdk/x11/gdkimage-x11.c (_gdk_x11_copy_to_image): + XCopyArea with subwindow_mode = IncludeInferiors. + (#70999) + + * demos/testpixbuf-save.c (configure_cb): Fix a minor + memory management problem. + Fri Feb 8 20:24:58 2002 Owen Taylor diff --git a/demos/testpixbuf-save.c b/demos/testpixbuf-save.c index f592ffc455..2c589d227b 100644 --- a/demos/testpixbuf-save.c +++ b/demos/testpixbuf-save.c @@ -204,8 +204,8 @@ configure_cb (GtkWidget *drawing_area, GdkEventConfigure *evt, gpointer data) root = gdk_get_default_root_window (); new_pixbuf = gdk_pixbuf_get_from_drawable (NULL, root, NULL, 0, 0, 0, 0, evt->width, evt->height); - g_object_set_data (G_OBJECT (drawing_area), "pixbuf", new_pixbuf); - g_object_unref (pixbuf); + g_object_set_data_full (G_OBJECT (drawing_area), "pixbuf", new_pixbuf, + (GDestroyNotify) g_object_unref); } return FALSE; diff --git a/gdk/x11/gdkimage-x11.c b/gdk/x11/gdkimage-x11.c index c1de3d2a3d..8b3bf6036e 100644 --- a/gdk/x11/gdkimage-x11.c +++ b/gdk/x11/gdkimage-x11.c @@ -506,9 +506,13 @@ _gdk_x11_copy_to_image (GdkDrawable *drawable, shm_pixmap = _gdk_x11_image_get_shm_pixmap (image); if (shm_pixmap) { + GC xgc; + XGCValues values; + /* Again easy, we can just XCopyArea, and don't have to worry about clipping */ - GC xgc = XCreateGC (impl->xdisplay, impl->xid, 0, NULL); + values.subwindow_mode = IncludeInferiors; + xgc = XCreateGC (impl->xdisplay, impl->xid, GCSubwindowMode, &values); XCopyArea (impl->xdisplay, impl->xid, shm_pixmap, xgc, src_x, src_y, width, height, dest_x, dest_y);