[gtk+/client-side-windows: 75/75] Merge branch 'master' into client-side-windows
- From: Alexander Larsson <alexl src gnome org>
- To: svn-commits-list gnome org
- Subject: [gtk+/client-side-windows: 75/75] Merge branch 'master' into client-side-windows
- Date: Wed, 17 Jun 2009 06:58:29 -0400 (EDT)
commit 7303f3c9fdc2fcb75907a3fd81cc4a44446931a7
Merge: c08bf93... 1a385c5...
Author: Alexander Larsson <alexl redhat com>
Date: Wed Jun 17 12:56:05 2009 +0200
Merge branch 'master' into client-side-windows
This updates client-side-windows to the the latest soname
change for easier testing.
Conflicts:
gdk/x11/gdkwindow-x11.c
tests/Makefile.am
Makefile.am | 2 +-
NEWS | 120 +-
configure.in | 132 +-
demos/gtk-demo/appwindow.c | 196 +-
demos/gtk-demo/rotated_text.c | 6 +-
docs/reference/gtk/gtk-docs.sgml | 1 +
docs/reference/gtk/gtk-sections.txt | 40 +
docs/reference/gtk/gtk.types | 1 +
docs/reference/gtk/tmpl/filesystem.sgml | 36 +-
docs/reference/gtk/tmpl/gtkactivatable.sgml | 32 +-
docs/reference/gtk/tmpl/gtkimcontext.sgml | 110 +-
docs/reference/gtk/tmpl/gtklabel.sgml | 25 +
docs/reference/gtk/tmpl/gtkmenu.sgml | 2 +
docs/reference/gtk/tmpl/gtkprintoperation.sgml | 46 +
docs/reference/gtk/tmpl/gtkprintsettings.sgml | 1 +
docs/reference/gtk/tmpl/gtkprintunixdialog.sgml | 60 +
docs/reference/gtk/tmpl/gtksettings.sgml | 28 +
docs/reference/gtk/tmpl/gtktoolshell.sgml | 30 +-
gdk-pixbuf/gdk-pixbuf-io.c | 4 +-
gdk-pixbuf/gdk-pixdata.c | 7 +-
gdk/x11/gdkapplaunchcontext-x11.c | 8 +-
gdk/x11/gdkdisplay-x11.c | 7 +-
gdk/x11/gdkproperty-x11.c | 29 +-
gdk/x11/gdkscreen-x11.c | 5 +-
gdk/x11/gdkwindow-x11.c | 22 +-
gtk/Makefile.am | 2 +
gtk/gtk.h | 1 +
gtk/gtk.symbols | 31 +
gtk/gtkaboutdialog.c | 2 +-
gtk/gtkactivatable.c | 4 +-
gtk/gtkassistant.c | 34 +-
gtk/gtkbbox.c | 349 +++
gtk/gtkbuilderparser.c | 36 +-
gtk/gtkcellrendererpixbuf.c | 155 +-
gtk/gtkcellview.c | 4 +-
gtk/gtkcellview.h | 2 +
gtk/gtkcombobox.c | 6 +-
gtk/gtkdnd.c | 146 ++-
gtk/gtkentry.c | 5 +
gtk/gtkentrycompletion.c | 10 +-
gtk/gtkenums.h | 12 +-
gtk/gtkfilechooserdefault.c | 304 ++-
gtk/gtkfilechooserprivate.h | 6 +
gtk/gtkfilechoosersettings.c | 125 +
gtk/gtkfilechoosersettings.h | 19 +
gtk/gtkfilesystemmodel.c | 3 +-
gtk/gtkfontsel.c | 2 +-
gtk/gtkhandlebox.c | 3 +-
gtk/gtkhbbox.c | 196 +--
gtk/gtkiconview.c | 6 +-
gtk/gtkinfobar.c | 1263 ++++++++++
gtk/gtkinfobar.h | 116 +
gtk/gtkmessagedialog.h | 10 +-
gtk/gtkpathbar.c | 106 +-
gtk/gtkprintoperation-private.h | 2 +
gtk/gtkprintoperation-unix.c | 6 +
gtk/gtkprintoperation.c | 132 +-
gtk/gtkprintoperation.h | 6 +
gtk/gtkprintsettings.c | 6 +
gtk/gtkprintunixdialog.c | 241 ++-
gtk/gtkprintunixdialog.h | 7 +
gtk/gtkrecentmanager.c | 7 +-
gtk/gtkrecentmanager.h | 2 +-
gtk/gtkstatusicon.c | 3 +
gtk/gtkstock.c | 2 +-
gtk/gtktreeprivate.h | 2 +
gtk/gtktreeview.c | 45 +-
gtk/gtktreeviewcolumn.c | 2 +
gtk/gtktreeviewcolumn.h | 2 +
gtk/gtkvbbox.c | 195 +--
gtk/tests/builder.c | 55 +-
gtk/tests/treeview-scrolling.c | 2 +-
gtk/updateiconcache.c | 2 +-
modules/other/gail/gailtreeview.c | 10 +-
modules/printbackends/cups/gtkprintbackendcups.c | 33 +
po-properties/af.po | 200 +-
po-properties/am.po | 198 +-
po-properties/ang.po | 196 +-
po-properties/ar.po | 200 +-
po-properties/as.po | 201 +-
po-properties/ast.po | 196 +-
po-properties/az.po | 200 +-
po-properties/az_IR.po | 196 +-
po-properties/be.po | 200 +-
po-properties/be latin po | 200 +-
po-properties/bg.po | 200 +-
po-properties/bn.po | 202 +-
po-properties/bn_IN.po | 202 +-
po-properties/br.po | 196 +-
po-properties/bs.po | 200 +-
po-properties/ca.po | 200 +-
po-properties/ca valencia po | 200 +-
po-properties/crh.po | 203 +-
po-properties/cs.po | 200 +-
po-properties/cy.po | 205 +-
po-properties/da.po | 206 +-
po-properties/de.po | 201 +-
po-properties/dz.po | 207 +-
po-properties/el.po | 200 +-
po-properties/en_CA.po | 200 +-
po-properties/en_GB.po | 200 +-
po-properties/eo.po | 196 +-
po-properties/es.po | 198 +-
po-properties/et.po | 200 +-
po-properties/eu.po | 201 +-
po-properties/fa.po | 199 +-
po-properties/fi.po | 200 +-
po-properties/fr.po | 200 +-
po-properties/ga.po | 198 +-
po-properties/gl.po | 200 +-
po-properties/gu.po | 200 +-
po-properties/he.po | 200 +-
po-properties/hi.po | 200 +-
po-properties/hr.po | 200 +-
po-properties/hu.po | 200 +-
po-properties/hy.po | 198 +-
po-properties/ia.po | 198 +-
po-properties/id.po | 204 +-
po-properties/io.po | 196 +-
po-properties/is.po | 200 +-
po-properties/it.po | 203 +-
po-properties/ja.po | 200 +-
po-properties/ka.po | 200 +-
po-properties/kn.po | 200 +-
po-properties/ko.po | 200 +-
po-properties/ku.po | 196 +-
po-properties/li.po | 200 +-
po-properties/lt.po | 200 +-
po-properties/lv.po | 200 +-
po-properties/mai.po | 200 +-
po-properties/mi.po | 198 +-
po-properties/mk.po | 200 +-
po-properties/ml.po | 200 +-
po-properties/mn.po | 204 +-
po-properties/mr.po | 200 +-
po-properties/ms.po | 200 +-
po-properties/nb.po | 200 +-
po-properties/ne.po | 200 +-
po-properties/nl.po | 201 +-
po-properties/nn.po | 200 +-
po-properties/nso.po | 200 +-
po-properties/oc.po | 198 +-
po-properties/or.po | 406 ++--
po-properties/pa.po | 200 +-
po-properties/pl.po | 200 +-
po-properties/ps.po | 199 +-
po-properties/pt.po | 200 +-
po-properties/pt_BR.po | 200 +-
po-properties/ro.po | 200 +-
po-properties/ru.po | 200 +-
po-properties/rw.po | 200 +-
po-properties/si.po | 200 +-
po-properties/sk.po | 200 +-
po-properties/sl.po | 200 +-
po-properties/sq.po | 200 +-
po-properties/sr.po | 200 +-
po-properties/sr ije po | 200 +-
po-properties/sr latin po | 200 +-
po-properties/sv.po | 200 +-
po-properties/ta.po | 200 +-
po-properties/te.po | 200 +-
po-properties/th.po | 198 +-
po-properties/tk.po | 198 +-
po-properties/tr.po | 203 +-
po-properties/tt.po | 199 +-
po-properties/uk.po | 200 +-
po-properties/ur.po | 196 +-
po-properties/uz.po | 199 +-
po-properties/uz cyrillic po | 199 +-
po-properties/vi.po | 200 +-
po-properties/wa.po | 208 +-
po-properties/xh.po | 200 +-
po-properties/yi.po | 200 +-
po-properties/zh_CN.po | 200 +-
po-properties/zh_HK.po | 200 +-
po-properties/zh_TW.po | 200 +-
po/ChangeLog | 4 +
po/Makefile.in.in | 2 +
po/af.po | 441 ++--
po/am.po | 438 ++--
po/ang.po | 434 ++--
po/ar.po | 440 ++--
po/as.po | 440 ++--
po/ast.po | 440 ++--
po/az.po | 437 ++--
po/az_IR.po | 432 ++--
po/be.po | 441 ++--
po/be latin po | 440 ++--
po/bg.po | 2147 ++++++++--------
po/bn.po | 434 ++--
po/bn_IN.po | 484 ++--
po/br.po | 434 ++--
po/bs.po | 437 ++--
po/ca.po | 443 ++--
po/ca valencia po | 439 ++--
po/crh.po | 441 ++--
po/cs.po | 440 ++--
po/cy.po | 439 ++--
po/da.po | 2147 ++++++++--------
po/de.po | 2214 +++++++++--------
po/dz.po | 437 ++--
po/el.po | 2209 +++++++++--------
po/en_CA.po | 436 ++--
po/en_GB.po | 443 ++--
po/eo.po | 437 ++--
po/es.po | 2157 ++++++++--------
po/et.po | 943 ++------
po/eu.po | 440 ++--
po/fa.po | 437 ++--
po/fi.po | 440 ++--
po/fr.po | 2166 ++++++++--------
po/ga.po | 2215 +++++++++---------
po/gl.po | 443 ++--
po/gu.po | 440 ++--
po/he.po | 440 ++--
po/hi.po | 464 ++--
po/hr.po | 436 ++--
po/hu.po | 440 ++--
po/hy.po | 437 ++--
po/ia.po | 434 ++--
po/id.po | 437 ++--
po/io.po | 435 ++--
po/is.po | 434 ++--
po/it.po | 459 ++--
po/ja.po | 440 ++--
po/ka.po | 440 ++--
po/kn.po | 440 ++--
po/ko.po | 440 ++--
po/ku.po | 436 ++--
po/li.po | 438 ++--
po/lt.po | 440 ++--
po/lv.po | 440 ++--
po/mai.po | 440 ++--
po/mi.po | 434 ++--
po/mk.po | 436 ++--
po/ml.po | 453 ++--
po/mn.po | 438 ++--
po/mr.po | 440 ++--
po/ms.po | 437 ++--
po/nb.po | 490 ++--
po/ne.po | 437 ++--
po/nl.po | 451 ++--
po/nn.po | 444 ++--
po/nso.po | 437 ++--
po/oc.po | 435 ++--
po/or.po | 440 ++--
po/pa.po | 440 ++--
po/pl.po | 440 ++--
po/ps.po | 436 ++--
po/pt.po | 446 ++--
po/pt_BR.po | 452 ++--
po/ro.po | 440 ++--
po/ru.po | 490 ++--
po/rw.po | 443 ++--
po/si.po | 436 ++--
po/sk.po | 440 ++--
po/sl.po | 440 ++--
po/sq.po | 441 ++--
po/sr.po | 446 ++--
po/sr ije po | 441 ++--
po/sr latin po | 446 ++--
po/sv.po | 2867 ++++++++++------------
po/ta.po | 440 ++--
po/te.po | 440 ++--
po/th.po | 446 ++--
po/tk.po | 434 ++--
po/tr.po | 442 ++--
po/tt.po | 437 ++--
po/uk.po | 440 ++--
po/ur.po | 433 ++--
po/uz.po | 438 ++--
po/uz cyrillic po | 438 ++--
po/vi.po | 440 ++--
po/wa.po | 434 ++--
po/xh.po | 437 ++--
po/yi.po | 438 ++--
po/zh_CN.po | 440 ++--
po/zh_HK.po | 443 ++--
po/zh_TW.po | 443 ++--
tests/Makefile.am | 3 +
tests/testfilechooser.c | 18 +
tests/testgtk.c | 2 +-
tests/testorientable.c | 111 +
283 files changed, 47091 insertions(+), 37795 deletions(-)
---
diff --cc gdk/x11/gdkwindow-x11.c
index 0f3ef1c,bfaa7a1..303b18a
--- a/gdk/x11/gdkwindow-x11.c
+++ b/gdk/x11/gdkwindow-x11.c
@@@ -3393,8 -3734,8 +3391,7 @@@ do_shape_combine_region (GdkWindo
gint shape)
{
GdkWindowObject *private = (GdkWindowObject *)window;
- gint xoffset, yoffset;
-
+
- #ifdef HAVE_SHAPE_EXT
if (GDK_WINDOW_DESTROYED (window))
return;
@@@ -3455,15 -3775,8 +3452,14 @@@
ShapeSet,
YXBanded);
+ if (shape == ShapeBounding)
+ {
+ _gdk_x11_window_tmp_reset_parent_bg (window);
+ _gdk_x11_window_tmp_reset_bg (window, TRUE);
+ }
+
g_free (xrects);
}
- #endif /* HAVE_SHAPE_EXT */
}
static void
@@@ -4558,109 -4898,404 +4554,105 @@@ gdk_window_set_functions (GdkWindow
gdk_window_set_mwm_hints (window, &hints);
}
-/*
- * propagate the shapes from all child windows of a GDK window to the parent
- * window. Shamelessly ripped from Enlightenment's code
- *
- * - Raster
- */
-struct _gdk_span
+static GdkRegion *
+xwindow_get_shape (Display *xdisplay,
+ Window window,
+ gint shape_type)
{
- gint start;
- gint end;
- struct _gdk_span *next;
-};
+ GdkRegion *shape;
+ GdkRectangle *rl;
+ XRectangle *xrl;
+ gint rn, ord, i;
-static void
-gdk_add_to_span (struct _gdk_span **s,
- gint x,
- gint xx)
-{
- struct _gdk_span *ptr1, *ptr2, *noo, *ss;
- gchar spanning;
-
- ptr2 = NULL;
- ptr1 = *s;
- spanning = 0;
- ss = NULL;
- /* scan the spans for this line */
- while (ptr1)
- {
- /* -- -> new span */
- /* == -> existing span */
- /* ## -> spans intersect */
- /* if we are in the middle of spanning the span into the line */
- if (spanning)
- {
- /* case: ---- ==== */
- if (xx < ptr1->start - 1)
- {
- /* ends before next span - extend to here */
- ss->end = xx;
- return;
- }
- /* case: ----##=== */
- else if (xx <= ptr1->end)
- {
- /* crosses into next span - delete next span and append */
- ss->end = ptr1->end;
- ss->next = ptr1->next;
- g_free (ptr1);
- return;
- }
- /* case: ---###--- */
- else
- {
- /* overlaps next span - delete and keep checking */
- ss->next = ptr1->next;
- g_free (ptr1);
- ptr1 = ss;
- }
- }
- /* otherwise havent started spanning it in yet */
- else
- {
- /* case: ---- ==== */
- if (xx < ptr1->start - 1)
- {
- /* insert span here in list */
- noo = g_malloc (sizeof (struct _gdk_span));
-
- if (noo)
- {
- noo->start = x;
- noo->end = xx;
- noo->next = ptr1;
- if (ptr2)
- ptr2->next = noo;
- else
- *s = noo;
- }
- return;
- }
- /* case: ----##=== */
- else if ((x < ptr1->start) && (xx <= ptr1->end))
- {
- /* expand this span to the left point of the new one */
- ptr1->start = x;
- return;
- }
- /* case: ===###=== */
- else if ((x >= ptr1->start) && (xx <= ptr1->end))
- {
- /* throw the span away */
- return;
- }
- /* case: ---###--- */
- else if ((x < ptr1->start) && (xx > ptr1->end))
- {
- ss = ptr1;
- spanning = 1;
- ptr1->start = x;
- ptr1->end = xx;
- }
- /* case: ===##---- */
- else if ((x >= ptr1->start) && (x <= ptr1->end + 1) && (xx > ptr1->end))
- {
- ss = ptr1;
- spanning = 1;
- ptr1->end = xx;
- }
- /* case: ==== ---- */
- /* case handled by next loop iteration - first case */
- }
- ptr2 = ptr1;
- ptr1 = ptr1->next;
- }
- /* it started in the middle but spans beyond your current list */
- if (spanning)
- {
- ptr2->end = xx;
- return;
- }
- /* it does not start inside a span or in the middle, so add it to the end */
- noo = g_malloc (sizeof (struct _gdk_span));
+ shape = NULL;
- #if defined(HAVE_SHAPE_EXT)
- if (noo)
+ xrl = XShapeGetRectangles (xdisplay,
+ window,
+ shape_type, &rn, &ord);
+
+ if (rn == 0)
+ return gdk_region_new (); /* Empty */
+
+ if (ord != YXBanded)
{
- noo->start = x;
- noo->end = xx;
- if (ptr2)
- {
- noo->next = ptr2->next;
- ptr2->next = noo;
- }
- else
- {
- noo->next = NULL;
- *s = noo;
- }
+ /* This really shouldn't happen with any xserver, as they
+ generally convert regions to YXBanded internally */
+ g_warning ("non YXBanded shape masks not supported");
+ XFree (xrl);
+ return NULL;
}
- return;
-}
-static void
-gdk_add_rectangles (Display *disp,
- Window win,
- struct _gdk_span **spans,
- gint basew,
- gint baseh,
- gint x,
- gint y)
-{
- gint a, k;
- gint x1, y1, x2, y2;
- gint rn, ord;
- XRectangle *rl;
-
- rl = XShapeGetRectangles (disp, win, ShapeBounding, &rn, &ord);
- if (rl)
- {
- /* go through all clip rects in this window's shape */
- for (k = 0; k < rn; k++)
- {
- /* for each clip rect, add it to each line's spans */
- x1 = x + rl[k].x;
- x2 = x + rl[k].x + (rl[k].width - 1);
- y1 = y + rl[k].y;
- y2 = y + rl[k].y + (rl[k].height - 1);
- if (x1 < 0)
- x1 = 0;
- if (y1 < 0)
- y1 = 0;
- if (x2 >= basew)
- x2 = basew - 1;
- if (y2 >= baseh)
- y2 = baseh - 1;
- for (a = y1; a <= y2; a++)
- {
- if ((x2 - x1) >= 0)
- gdk_add_to_span (&spans[a], x1, x2);
- }
- }
- XFree (rl);
+ rl = g_new (GdkRectangle, rn);
+ for (i = 0; i < rn; i++)
+ {
+ rl[i].x = xrl[i].x;
+ rl[i].y = xrl[i].y;
+ rl[i].width = xrl[i].width;
+ rl[i].height = xrl[i].height;
}
+ XFree (xrl);
+
+ shape = _gdk_region_new_from_yxbanded_rects (rl, rn);
+ g_free (rl);
- #endif
+
+ return shape;
}
-static void
-gdk_propagate_shapes (Display *disp,
- Window win,
- gboolean merge,
- int shape)
-{
- Window rt, par, *list = NULL;
- gint i, j, num = 0, num_rects = 0;
- gint x, y, contig;
- guint w, h, d;
- gint baseh, basew;
- XRectangle *rects = NULL;
- struct _gdk_span **spans = NULL, *ptr1, *ptr2, *ptr3;
- XWindowAttributes xatt;
-
- XGetGeometry (disp, win, &rt, &x, &y, &w, &h, &d, &d);
- if (h <= 0)
- return;
- basew = w;
- baseh = h;
- spans = g_malloc (sizeof (struct _gdk_span *) * h);
+
+GdkRegion *
+_gdk_windowing_get_shape_for_mask (GdkBitmap *mask)
+{
+ GdkDisplay *display;
+ Window window;
+ GdkRegion *region;
+
+ display = gdk_drawable_get_display (GDK_DRAWABLE (mask));
+
+ window = XCreateSimpleWindow (GDK_DISPLAY_XDISPLAY (display),
+ GDK_SCREEN_XROOTWIN (gdk_display_get_default_screen (display)),
+ -1, -1, 1, 1, 0,
+ 0, 0);
+ XShapeCombineMask (GDK_DISPLAY_XDISPLAY (display),
+ window,
+ ShapeBounding,
+ 0, 0,
+ GDK_PIXMAP_XID (mask),
+ ShapeSet);
- for (i = 0; i < h; i++)
- spans[i] = NULL;
- XQueryTree (disp, win, &rt, &par, &list, (unsigned int *)&num);
- if (list)
- {
- /* go through all child windows and create/insert spans */
- for (i = 0; i < num; i++)
- {
- if (XGetWindowAttributes (disp, list[i], &xatt) && (xatt.map_state != IsUnmapped))
- if (XGetGeometry (disp, list[i], &rt, &x, &y, &w, &h, &d, &d))
- gdk_add_rectangles (disp, list[i], spans, basew, baseh, x, y);
- }
- if (merge)
- gdk_add_rectangles (disp, win, spans, basew, baseh, x, y);
-
- /* go through the spans list and build a list of rects */
- rects = g_malloc (sizeof (XRectangle) * 256);
- num_rects = 0;
- for (i = 0; i < baseh; i++)
- {
- ptr1 = spans[i];
- /* go through the line for all spans */
- while (ptr1)
- {
- rects[num_rects].x = ptr1->start;
- rects[num_rects].y = i;
- rects[num_rects].width = ptr1->end - ptr1->start + 1;
- rects[num_rects].height = 1;
- j = i + 1;
- /* if there are more lines */
- contig = 1;
- /* while contigous rects (same start/end coords) exist */
- while ((contig) && (j < baseh))
- {
- /* search next line for spans matching this one */
- contig = 0;
- ptr2 = spans[j];
- ptr3 = NULL;
- while (ptr2)
- {
- /* if we have an exact span match set contig */
- if ((ptr2->start == ptr1->start) &&
- (ptr2->end == ptr1->end))
- {
- contig = 1;
- /* remove the span - not needed */
- if (ptr3)
- {
- ptr3->next = ptr2->next;
- g_free (ptr2);
- ptr2 = NULL;
- }
- else
- {
- spans[j] = ptr2->next;
- g_free (ptr2);
- ptr2 = NULL;
- }
- break;
- }
- /* gone past the span point no point looking */
- else if (ptr2->start < ptr1->start)
- break;
- if (ptr2)
- {
- ptr3 = ptr2;
- ptr2 = ptr2->next;
- }
- }
- /* if a contiguous span was found increase the rect h */
- if (contig)
- {
- rects[num_rects].height++;
- j++;
- }
- }
- /* up the rect count */
- num_rects++;
- /* every 256 new rects increase the rect array */
- if ((num_rects % 256) == 0)
- rects = g_realloc (rects, sizeof (XRectangle) * (num_rects + 256));
- ptr1 = ptr1->next;
- }
- }
- /* set the rects as the shape mask */
- if (rects)
- {
- XShapeCombineRectangles (disp, win, shape, 0, 0, rects, num_rects,
- ShapeSet, YXSorted);
- g_free (rects);
- }
- XFree (list);
- }
- /* free up all the spans we made */
- for (i = 0; i < baseh; i++)
- {
- ptr1 = spans[i];
- while (ptr1)
- {
- ptr2 = ptr1;
- ptr1 = ptr1->next;
- g_free (ptr2);
- }
- }
- g_free (spans);
+ region = xwindow_get_shape (GDK_DISPLAY_XDISPLAY (display),
+ window, ShapeBounding);
+
+ XDestroyWindow (GDK_DISPLAY_XDISPLAY (display),
+ window);
+
+ return region;
}
-static inline void
-do_child_shapes (GdkWindow *window,
- gboolean merge)
+GdkRegion *
+_gdk_windowing_window_get_shape (GdkWindow *window)
{
- #if defined(HAVE_SHAPE_EXT)
if (!GDK_WINDOW_DESTROYED (window) &&
gdk_display_supports_shapes (GDK_WINDOW_DISPLAY (window)))
- {
- gdk_propagate_shapes (GDK_WINDOW_XDISPLAY (window),
- GDK_WINDOW_XID (window),
- merge,
- ShapeBounding);
- }
-}
+ return xwindow_get_shape (GDK_WINDOW_XDISPLAY (window),
+ GDK_WINDOW_XID (window), ShapeBounding);
- #endif
-static void
-gdk_window_x11_set_child_shapes (GdkWindow *window)
-{
- do_child_shapes (window, FALSE);
+ return NULL;
}
-static void
-gdk_window_x11_merge_child_shapes (GdkWindow *window)
-{
- do_child_shapes (window, TRUE);
-}
-
-static inline void
-do_child_input_shapes (GdkWindow *window,
- gboolean merge)
+GdkRegion *
+_gdk_windowing_window_get_input_shape (GdkWindow *window)
{
- #if defined(HAVE_SHAPE_EXT)
+ #if defined(ShapeInput)
if (!GDK_WINDOW_DESTROYED (window) &&
gdk_display_supports_shapes (GDK_WINDOW_DISPLAY (window)))
- {
- gdk_propagate_shapes (GDK_WINDOW_XDISPLAY (window),
- GDK_WINDOW_XID (window),
- merge,
- ShapeInput);
- }
+ return xwindow_get_shape (GDK_WINDOW_XDISPLAY (window),
+ GDK_WINDOW_XID (window),
+ ShapeInput);
#endif
-}
-/**
- * gdk_window_set_child_input_shapes:
- * @window: a #GdkWindow
- *
- * Sets the input shape mask of @window to the union of input shape masks
- * for all children of @window, ignoring the input shape mask of @window
- * itself. Contrast with gdk_window_merge_child_input_shapes() which includes
- * the input shape mask of @window in the masks to be merged.
- *
- * Since: 2.10
- **/
-void
-gdk_window_set_child_input_shapes (GdkWindow *window)
-{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
- do_child_input_shapes (window, FALSE);
+ return NULL;
}
-/**
- * gdk_window_merge_child_input_shapes:
- * @window: a #GdkWindow
- *
- * Merges the input shape masks for any child windows into the
- * input shape mask for @window. i.e. the union of all input masks
- * for @window and its children will become the new input mask
- * for @window. See gdk_window_input_shape_combine_mask().
- *
- * This function is distinct from gdk_window_set_child_input_shapes()
- * because it includes @window's input shape mask in the set of
- * shapes to be merged.
- *
- * Since: 2.10
- **/
-void
-gdk_window_merge_child_input_shapes (GdkWindow *window)
-{
- g_return_if_fail (GDK_IS_WINDOW (window));
-
- do_child_input_shapes (window, TRUE);
-}
-
-
static void
gdk_window_set_static_bit_gravity (GdkWindow *window,
gboolean on)
diff --cc tests/Makefile.am
index 48e4405,d5b07e7..db68626
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@@ -56,7 -55,7 +56,8 @@@ noinst_PROGRAMS = $(TEST_PROGS)
testmultiscreen \
testnotebookdnd \
testnouiprint \
+ testoffscreen \
+ testorientable \
testprint \
testrgb \
testrecentchooser \
@@@ -137,7 -134,7 +138,8 @@@ testmultidisplay_DEPENDENCIES = $(TEST_
testmultiscreen_DEPENDENCIES = $(TEST_DEPS)
testnotebookdnd_DEPENDENCIES = $(TEST_DEPS)
testnouiprint_DEPENDENCIES = $(TEST_DEPS)
+testoffscreen_DEPENDENCIES = $(TEST_DEPS)
+ testorientable_DEPENDENCIES = $(TEST_DEPS)
testprint_DEPENDENCIES = $(TEST_DEPS)
testrecentchooser_DEPENDENCIES = $(TEST_DEPS)
testrecentchoosermenu_DEPENDENCIES = $(TEST_DEPS)
@@@ -198,7 -193,7 +200,8 @@@ testmultidisplay_LDADD = $(LDADDS
testmultiscreen_LDADD = $(LDADDS)
testnotebookdnd_LDADD = $(LDADDS)
testnouiprint_LDADD = $(LDADDS)
+testoffscreen_LDADD = $(LDADDS)
+ testorientable_LDADD = $(LDADDS)
testprint_LDADD = $(LDADDS)
testrecentchooser_LDADD = $(LDADDS)
testrecentchoosermenu_LDADD = $(LDADDS)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]