From efef8eb219907464a9c879b0f753739c57452e4b Mon Sep 17 00:00:00 2001 From: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> Date: Tue, 14 Apr 2026 16:10:48 +0200 Subject: [PATCH] Fix "Mac: Most fl_symbols missing corner pixels" (#1409). + Fix line loop drawing on macOS (#1409) + macOS: yet another fix of line drawing (#1409) All fixes backported and merged from master, commits: - ea1b1bddd96be6616e1b2b0eccbe815f9b71ad11 - e19bc59ec1543c399c621d9a54d7ab5548bce89c - 3c8bc27458d649a85a04ee0483fec6023fa4c83e --- src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H | 2 ++ .../Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H index ca1ffce04..f5c7365a3 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H @@ -108,7 +108,9 @@ protected: int not_clipped(int x, int y, int w, int h) FL_OVERRIDE; void restore_clip() FL_OVERRIDE; void end_points() FL_OVERRIDE; + void end_loop() FL_OVERRIDE; void end_line() FL_OVERRIDE; + void end_line_or_loop(bool is_loop); void end_polygon() FL_OVERRIDE; void end_complex_polygon() FL_OVERRIDE; void circle(double x, double y, double r) FL_OVERRIDE; diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx index 16c6c6c29..86ebb5392 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx @@ -33,7 +33,16 @@ void Fl_Quartz_Graphics_Driver::end_points() { } } +void Fl_Quartz_Graphics_Driver::end_loop() { + fixloop(); + end_line_or_loop(true); +} + void Fl_Quartz_Graphics_Driver::end_line() { + end_line_or_loop(false); +} + +void Fl_Quartz_Graphics_Driver::end_line_or_loop(bool is_loop) { if (n < 2) { end_points(); return; @@ -43,6 +52,8 @@ void Fl_Quartz_Graphics_Driver::end_line() { CGContextMoveToPoint(gc_, xpoint[0].x, xpoint[0].y); for (int i=1; i