Fix Fl_GDI_Graphics_Driver::rect_unscaled() (#1052)

This commit is contained in:
ManoloFLTK 2024-08-26 09:22:04 +02:00
parent 01f687e26a
commit 6d04ef2caa

View File

@ -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) { void Fl_GDI_Graphics_Driver::rect_unscaled(int x, int y, int w, int h) {
MoveToEx(fl_gc, x, y, 0L); HPEN oldpen, newpen;
LineTo(fl_gc, x+w, y); if (line_width_ > 1) {
LineTo(fl_gc, x+w, y+h); LOGBRUSH penbrush = {BS_SOLID, fl_RGB(), 0};
LineTo(fl_gc, x, y+h); newpen = ExtCreatePen(PS_GEOMETRIC | PS_ENDCAP_SQUARE, line_width_, &penbrush, 0, 0);
LineTo(fl_gc, x, y); 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) { void Fl_GDI_Graphics_Driver::rectf_unscaled(int x, int y, int w, int h) {