diff options
Diffstat (limited to 'libs/gtkmm2ext/cairo_widget.cc')
-rw-r--r-- | libs/gtkmm2ext/cairo_widget.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/cairo_widget.cc b/libs/gtkmm2ext/cairo_widget.cc index 16e7f29b5f..03c23000a2 100644 --- a/libs/gtkmm2ext/cairo_widget.cc +++ b/libs/gtkmm2ext/cairo_widget.cc @@ -26,6 +26,9 @@ static const char* has_cairo_widget_background_info = "has_cairo_widget_backgrou bool CairoWidget::_flat_buttons = false; +static void noop() { } +sigc::slot<void> CairoWidget::focus_handler (sigc::ptr_fun (noop)); + void CairoWidget::set_source_rgb_a( cairo_t* cr, Gdk::Color col, float a) //ToDo: this one and the Canvas version should be in a shared file (?) { float r = col.get_red_p (); @@ -52,6 +55,13 @@ CairoWidget::~CairoWidget () } bool +CairoWidget::on_button_press_event (GdkEventButton*) +{ + focus_handler(); + return false; +} + +bool CairoWidget::on_expose_event (GdkEventExpose *ev) { cairo_t* cr = gdk_cairo_create (get_window ()->gobj()); @@ -220,3 +230,9 @@ CairoWidget::set_flat_buttons (bool yn) { _flat_buttons = yn; } + +void +CairoWidget::set_focus_handler (sigc::slot<void> s) +{ + focus_handler = s; +} |