summaryrefslogtreecommitdiff
path: root/src/drivers/Cairo
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/Cairo')
-rw-r--r--src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H1
-rw-r--r--src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx16
2 files changed, 17 insertions, 0 deletions
diff --git a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H
index c6fa15403..c2a7d4c54 100644
--- a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H
+++ b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.H
@@ -197,6 +197,7 @@ public:
void restore_scale(float) FL_OVERRIDE;
void antialias(int state) FL_OVERRIDE;
int antialias() FL_OVERRIDE;
+ void focus_rect(int x, int y, int w, int h) FL_OVERRIDE;
};
#endif // FL_CAIRO_GRAPHICS_DRIVER_H
diff --git a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx
index e0cbf26ce..6db069b35 100644
--- a/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx
+++ b/src/drivers/Cairo/Fl_Cairo_Graphics_Driver.cxx
@@ -1422,4 +1422,20 @@ int Fl_Cairo_Graphics_Driver::antialias() {
return (cairo_get_antialias(cairo_) != CAIRO_ANTIALIAS_NONE);
}
+
+void Fl_Cairo_Graphics_Driver::focus_rect(int x, int y, int w, int h)
+{
+ cairo_save(cairo_);
+ cairo_set_line_width(cairo_, 1);
+ cairo_set_line_cap(cairo_, CAIRO_LINE_CAP_BUTT);
+ cairo_set_line_join(cairo_, CAIRO_LINE_JOIN_MITER);
+ static double dots[2] = {1., 1.};
+ cairo_set_dash(cairo_, dots, 2, 1);
+ cairo_set_antialias(cairo_, CAIRO_ANTIALIAS_NONE);
+ cairo_rectangle(cairo_, x, y, w-1, h-1);
+ cairo_stroke(cairo_);
+ cairo_restore(cairo_);
+ surface_needs_commit();
+}
+
#endif // USE_PANGO