summaryrefslogtreecommitdiff
path: root/gtk/gtkwindow-decorate.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2001-01-12 15:45:26 +0000
committerAlexander Larsson <alexl@src.gnome.org>2001-01-12 15:45:26 +0000
commit058c2d9320f088b49d7d9bfaeb43630e1593fb87 (patch)
treeab7994c3a97d5e7929a9f48b805e00e894a05abc /gtk/gtkwindow-decorate.c
parent696f0626bc1c896143ebea95c03ad77a5fa346d9 (diff)
downloadgdk-pixbuf-058c2d9320f088b49d7d9bfaeb43630e1593fb87.tar.gz
Take shaped windows in consideration when generating clip region.
2001-01-12 Alexander Larsson <alexl@redhat.com> * gdk/linux-fb/gdkdrawable-fb2.c (gdk_fb_clip_region): Take shaped windows in consideration when generating clip region. * gdk/linux-fb/gdkfb.h: Huge HACK. Added GDK_FB_USE_CHILD_SHAPE. * gdk/linux-fb/gdkprivate-fb.h: Add shape to GdkWindowFBDatat. exported gdk_fb_window_get_abs_shape(). removed gdk_fb_draw_lines declaration. * gdk/linux-fb/gdkwindow-fb.c (gdk_window_impl_fb_init): Init shape to NULL. (gdk_fb_window_send_crossing_events): Don't send focus changes when there is a grabbed window. (gdk_window_get_pointer): Handle shaped windows. (gdk_fb_region_create_from_bitmap): Convert bitmap to region. (gdk_fb_window_peek_shape): Returns the shape for a window, handles GDK_FB_USE_CHILD_SHAPE. (gdk_fb_window_get_abs_shape): Returns the shape of the window, offseted to absolute positions. Handles GDK_FB_USE_CHILD_SHAPE. (gdk_window_shape_combine_mask): Implement. * gtk/gtkwindow-decorate.c: HACK! Set GDK_FB_USE_CHILD_SHAPE on window->frame to make sure setting the shape of a window makes the window transparent.
Diffstat (limited to 'gtk/gtkwindow-decorate.c')
-rw-r--r--gtk/gtkwindow-decorate.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gtk/gtkwindow-decorate.c b/gtk/gtkwindow-decorate.c
index d864e1509..c12f52bad 100644
--- a/gtk/gtkwindow-decorate.c
+++ b/gtk/gtkwindow-decorate.c
@@ -266,8 +266,13 @@ gtk_decorated_window_realize (GtkWindow *window)
gtk_decorated_window_inner_change,
gtk_decorated_window_inner_get_pos,
window);
+
+ /* This is a huge hack to make frames have the same shape as
+ the window they wrap */
+ gdk_window_shape_combine_mask (window->frame, GDK_FB_USE_CHILD_SHAPE, 0, 0);
}
+
static void
gtk_decorated_window_unrealize (GtkWindow *window)
{