add Gtkmm2ext::event_inside_widget_window()

This commit is contained in:
Paul Davis
2014-11-02 08:53:29 -05:00
parent d02d8337a9
commit bb4e3a2916
2 changed files with 29 additions and 0 deletions

View File

@@ -49,6 +49,8 @@ namespace Gtk {
namespace Gtkmm2ext {
LIBGTKMM2EXT_API void init (const char*);
LIBGTKMM2EXT_API bool event_inside_widget_window (Gtk::Widget& widget, GdkEvent* ev);
LIBGTKMM2EXT_API std::string fit_to_pixels (const std::string&, int pixel_width, Pango::FontDescription& font, int& actual_width, bool with_ellipses = false);
LIBGTKMM2EXT_API std::pair<std::string, double> fit_to_pixels (cairo_t *, std::string, double);
LIBGTKMM2EXT_API int pixel_width (const std::string& str, Pango::FontDescription& font);

View File

@@ -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)
{