diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-11-02 08:53:29 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-11-02 08:57:47 -0500 |
commit | bb4e3a2916ce751ed97bdf2fea1a3ec54a9c1337 (patch) | |
tree | 1c16e1b37d7f001d8f07d2af8baf4f5c2332c824 /libs/gtkmm2ext/utils.cc | |
parent | d02d8337a91358bed481ee9ffa637b825d40748f (diff) |
add Gtkmm2ext::event_inside_widget_window()
Diffstat (limited to 'libs/gtkmm2ext/utils.cc')
-rw-r--r-- | libs/gtkmm2ext/utils.cc | 27 |
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) { |