summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx
index 4527ee920..1e70b7929 100644
--- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx
+++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx
@@ -62,11 +62,22 @@ void Fl_GDI_Graphics_Driver::focus_rect(int x, int y, int w, int h) {
}
void Fl_GDI_Graphics_Driver::rect_unscaled(int x, int y, int w, int h) {
- MoveToEx(fl_gc, x, y, 0L);
- LineTo(fl_gc, x+w, y);
- LineTo(fl_gc, x+w, y+h);
- LineTo(fl_gc, x, y+h);
- LineTo(fl_gc, x, y);
+ HPEN oldpen, newpen;
+ if (line_width_ > 1) {
+ LOGBRUSH penbrush = {BS_SOLID, fl_RGB(), 0};
+ newpen = ExtCreatePen(PS_GEOMETRIC | PS_ENDCAP_SQUARE, line_width_, &penbrush, 0, 0);
+ oldpen = (HPEN)SelectObject(gc_, newpen);
+ }
+ MoveToEx(gc_, x, y, 0L);
+ LineTo(gc_, x+w, y);
+ if (line_width_ <= 1) LineTo(gc_, x+w, y+h+1); // see issue #1052
+ LineTo(gc_, x+w, y+h);
+ LineTo(gc_, x, y+h);
+ LineTo(gc_, x, y);
+ if (line_width_ > 1) {
+ SelectObject(gc_, oldpen);
+ DeleteObject(newpen);
+ }
}
void Fl_GDI_Graphics_Driver::rectf_unscaled(int x, int y, int w, int h) {