diff options
author | Robin Gareus <robin@gareus.org> | 2017-03-20 16:31:42 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-03-20 17:12:08 +0100 |
commit | 60a0b8f6458b15fd6f1a282010ad8d1b2aabf86a (patch) | |
tree | 36e50c2b87c0d4a8951fdc2c0ab68cc6a33aad5a /libs/gtkmm2ext | |
parent | c0828792f0877690bd29bb7f98ec0e6577112d30 (diff) |
Forward un/map events to NSGLView
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r-- | libs/gtkmm2ext/cairo_widget.cc | 29 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/cairo_widget.h | 2 |
2 files changed, 31 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/cairo_widget.cc b/libs/gtkmm2ext/cairo_widget.cc index ca46d1aecf..088e21b6a8 100644 --- a/libs/gtkmm2ext/cairo_widget.cc +++ b/libs/gtkmm2ext/cairo_widget.cc @@ -473,6 +473,35 @@ CairoWidget::on_realize () } void +CairoWidget::on_map () +{ + Gtk::EventBox::on_map(); +#ifdef __APPLE__ + if (_nsglview) { + Gtkmm2ext::nsglview_set_visible (_nsglview, true); + Gtk::Allocation a = get_allocation(); + gint xx, yy; + gtk_widget_translate_coordinates( + GTK_WIDGET(gobj()), + GTK_WIDGET(get_toplevel()->gobj()), + 0, 0, &xx, &yy); + Gtkmm2ext::nsglview_resize (_nsglview, xx, yy, a.get_width(), a.get_height()); + } +#endif +} + +void +CairoWidget::on_unmap () +{ + Gtk::EventBox::on_unmap(); +#ifdef __APPLE__ + if (_nsglview) { + Gtkmm2ext::nsglview_set_visible (_nsglview, false); + } +#endif +} + +void CairoWidget::on_state_changed (Gtk::StateType) { /* this will catch GTK-level state changes from calls like diff --git a/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h b/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h index ad14c8ca2a..3b8fc545a9 100644 --- a/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h +++ b/libs/gtkmm2ext/gtkmm2ext/cairo_widget.h @@ -123,6 +123,8 @@ protected: void on_realize (); bool on_button_press_event (GdkEventButton*); Gdk::Color get_parent_bg (); + void on_map(); + void on_unmap(); /* this is an additional virtual "on_..." method. Glibmm does not provide a direct signal for name changes, so this acts as a proxy. |