diff options
author | Alexander Larsson <alexl@redhat.com> | 2015-06-08 15:36:43 +0200 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2015-06-15 10:56:45 +0200 |
commit | 4c3eece6638aa36fbcd8379109dcb4e27323a306 (patch) | |
tree | c84c9e853bef2325b9402253423f9960bab88610 /gdk/gdkwindow.h | |
parent | ccc4b192ec994ee06817fbf19ff8c662be8d995a (diff) | |
download | gtk+-4c3eece6638aa36fbcd8379109dcb4e27323a306.tar.gz |
gdk: Add gdk_window_set_pass_through
An pass_through window is something you can draw in but does not
affect event handling. Normally if a window has with no event mask set
for a particular event then input events in it go to its parent window
(X11 semantics), whereas if pass_through is enabled the window below
the window will get the event. The later mode is useful when the
window is partially transparent. Note that an pass-through windows can
have child windows that are not pass-through so they can still get events
on some parts.
Semantically, this behaves the same as an regular window with
gdk_window_set_child_input_shapes() called on it (and re-called any
time a child is changed), but its far more efficient and easy to use.
This allows us to fix the testoverlay input stacking test.
https://bugzilla.gnome.org/show_bug.cgi?id=750568
https://bugs.freedesktop.org/show_bug.cgi?id=90917
Diffstat (limited to 'gdk/gdkwindow.h')
-rw-r--r-- | gdk/gdkwindow.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gdk/gdkwindow.h b/gdk/gdkwindow.h index ad5e88cc14..b42f9dfe93 100644 --- a/gdk/gdkwindow.h +++ b/gdk/gdkwindow.h @@ -654,6 +654,12 @@ GDK_AVAILABLE_IN_ALL void gdk_window_merge_child_input_shapes (GdkWindow *window); +GDK_AVAILABLE_IN_3_18 +void gdk_window_set_pass_through (GdkWindow *window, + gboolean pass_through); +GDK_AVAILABLE_IN_3_18 +gboolean gdk_window_get_pass_through (GdkWindow *window); + /* * Check if a window has been shown, and whether all its * parents up to a toplevel have been shown, respectively. |