summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/widget/widget.vala23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/widget/widget.vala b/src/widget/widget.vala
index de5ba00..2506bc8 100644
--- a/src/widget/widget.vala
+++ b/src/widget/widget.vala
@@ -131,4 +131,27 @@ public void widget_set_cursor(Gtk.Widget widget, string cursor) {
public string widget_get_cursor(Gtk.Widget widget) {
return Cursor.cursors.get(widget);
}
+
+private class ClickThrough {
+ private static HashTable<Gtk.Widget, bool> _click_through;
+ public static HashTable<Gtk.Widget, bool> click_through {
+ get {
+ if (_click_through == null) {
+ _click_through = new HashTable<Gtk.Widget, bool>(
+ (w) => (uint)w,
+ (a, b) => a == b);
+ }
+ return _click_through;
+ }
+ }
+}
+
+public void widget_set_click_through(Gtk.Widget widget, bool click_through) {
+ ClickThrough.click_through.set(widget, click_through);
+ widget.input_shape_combine_region(click_through ? new Cairo.Region() : null);
+}
+
+public bool widget_get_click_through(Gtk.Widget widget) {
+ return ClickThrough.click_through.get(widget);
+}
}