summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx
index df29a5dad..a72fe9d8b 100644
--- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx
+++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx
@@ -208,16 +208,22 @@ void Fl_Xlib_Graphics_Driver::XDestroyRegion(Fl_Region r) {
// --- line and polygon drawing
-void Fl_Xlib_Graphics_Driver::focus_rect(int x, int y, int w, int h)
-{
+void Fl_Xlib_Graphics_Driver::focus_rect(int x, int y, int w, int h) {
w = this->floor(x + w) - this->floor(x);
h = this->floor(y + h) - this->floor(y);
x = this->floor(x) + floor(offset_x_);
y = this->floor(y) + floor(offset_y_);
if (!clip_rect(x, y, w, h)) {
- line_style(FL_DOT);
+ int lw_save = line_width_; // preserve current line_width
+ if (line_width_ == 0)
+ line_style(FL_DOT, 1);
+ else
+ line_style(FL_DOT);
XDrawRectangle(fl_display, fl_window, gc_, x, y, w, h);
- line_style(FL_SOLID);
+ if (lw_save == 0)
+ line_style(FL_SOLID, 0); // restore line type and width
+ else
+ line_style(FL_SOLID);
}
}