Hello,

I want this want to go into gtk+.

This patch to gtk+971025 makes
the X11 shape extension available.

With this patch, every gtk widget that has a
gdkwindow can have a nonrectangular shape, which
allows for transparent pixmaps which is important
for drag and drop.

The shape of a gdk_window can be set by
gdk_window_shape_combine_mask. The mask that
defines the new shape can be taken directly
from the call gdk_pixmap_create_from_xpm{_d}.
This makes use of .xpm files with transparent
background very easy.

For GtkWidgets there is call
gtk_widget_shape_combine_mask. It can be called
before a widget is shown. The call also takes a
shape mask. Both calls take x and y offsets that
can be used to make the shape apply at a different
point than (0,0) of the widget.

One of the GtkWidget status bits (GTK_HAS_SHAPE_MASK)
is used to denote if a widget has a nonrectangular shape.

If a widget gets hidden and shown again, the
mask of the widget is still active.

The patch also extends testgtk.c with a test case
called 'shapes'. It shows three shaped xpm's
that can be dragged around like in a drag and drop
action.

All in all, I would say this is a cool feature :)

I hope this will go into the drag and drag efforts
that seem to be made soon with gtk+. For DnD, there
probably should be a new widget 'GtkDragIcon' or so
that bundles the necessary steps of the creation
of draggable shaped pixmaps.

bye
Stefan    Stefan_Wille@public.uni-hamburg.de




