summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/utils.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-11-02 08:53:29 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-11-02 08:57:47 -0500
commitbb4e3a2916ce751ed97bdf2fea1a3ec54a9c1337 (patch)
tree1c16e1b37d7f001d8f07d2af8baf4f5c2332c824 /libs/gtkmm2ext/utils.cc
parentd02d8337a91358bed481ee9ffa637b825d40748f (diff)
add Gtkmm2ext::event_inside_widget_window()
Diffstat (limited to 'libs/gtkmm2ext/utils.cc')
-rw-r--r--libs/gtkmm2ext/utils.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc
index f3c5b6795f..b4926ac43b 100644
--- a/libs/gtkmm2ext/utils.cc
+++ b/libs/gtkmm2ext/utils.cc
@@ -754,6 +754,33 @@ Gtkmm2ext::disable_tooltips ()
gtk_rc_parse_string ("gtk-enable-tooltips = 0");
}
+bool
+Gtkmm2ext::event_inside_widget_window (Gtk::Widget& widget, GdkEvent* ev)
+{
+ gdouble evx, evy;
+
+ if (!gdk_event_get_root_coords (ev, &evx, &evy)) {
+ return false;
+ }
+
+ gint wx;
+ gint wy;
+ gint width, height, depth;
+ gint x, y;
+
+ Glib::RefPtr<Gdk::Window> widget_window = widget.get_window();
+
+ widget_window->get_geometry (x, y, width, height, depth);
+ widget_window->get_root_origin (wx, wy);
+
+ if ((evx >= wx && evx < wx + width) &&
+ (evy >= wy && evy < wy + height)) {
+ return true;
+ }
+
+ return false;
+}
+
const char*
Gtkmm2ext::event_type_string (int event_type)
{