summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/cairo_widget.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/gtkmm2ext/cairo_widget.cc')
-rw-r--r--libs/gtkmm2ext/cairo_widget.cc16
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;
+}