gtk-bar-990524-0.patch patch for Gtk 1.2.3 This patch allows to specify an operation code (like in XShapeCombineMask) when applying shapes to containers. A new enum type is provided in gdk/gdktypes.h typedef enum { GDK_SHAPE_SET, /* ShapeSet */ GDK_SHAPE_UNION, /* ShapeUnion */ GDK_SHAPE_INTERSECT, /* ShapeIntersect */ GDK_SHAPE_SUBTRACT, /* ShapeSubtract */ GDK_SHAPE_INVERT /* ShapeInvert */ } GdkShapeOp; A new function is included in gdk/gdkwindow.c void gdk_window_shape_combine_mask_with_op( GdkWindow *window, GdkBitmap *mask, gint x, gint y, GdkShapeOp shape_op) And another new function in gtk/gtkwidget.c void gtk_widget_shape_combine_mask_with_op( GtkWidget *widget, GdkBitmap *shape_mask, gint offset_x, gint offset_y, GdkShapeOp shape_op) Whith these functions, we can , i.e to put two pixmaps in a fixed widget and then apply the union of their masks to the fixed widget.