From 22288e02a280d6747b5652bc51707076a73efe53 Mon Sep 17 00:00:00 2001 From: Mark Roszko Date: Mon, 8 Sep 2025 12:31:21 -0400 Subject: [PATCH] Fix cairo rendering on windows under wx 3.3 --- common/draw_panel_gal.cpp | 4 ++++ common/gal/cairo/cairo_gal.cpp | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/common/draw_panel_gal.cpp b/common/draw_panel_gal.cpp index 924fd81f60..db2757c11d 100644 --- a/common/draw_panel_gal.cpp +++ b/common/draw_panel_gal.cpp @@ -87,6 +87,10 @@ EDA_DRAW_PANEL_GAL::EDA_DRAW_PANEL_GAL( wxWindow* aParentWindow, wxWindowID aWin m_stealsFocus( true ), m_statusPopup( nullptr ) { +#ifdef _WIN32 + // need to fix broken cairo rendering on Windows with wx 3.3 + SetDoubleBuffered( false ); +#endif m_PaintEventCounter = std::make_unique( "Draw panel paint events" ); if( Pgm().GetCommonSettings()->m_Appearance.show_scrollbars ) diff --git a/common/gal/cairo/cairo_gal.cpp b/common/gal/cairo/cairo_gal.cpp index bb14fd79f6..ed92e08bd4 100644 --- a/common/gal/cairo/cairo_gal.cpp +++ b/common/gal/cairo/cairo_gal.cpp @@ -1364,6 +1364,11 @@ CAIRO_GAL::CAIRO_GAL( GAL_DISPLAY_OPTIONS& aDisplayOptions, wxWindow* aParent, m_currentTarget = TARGET_NONCACHED; SetTarget( TARGET_NONCACHED ); +#ifdef _WIN32 + // need to fix broken cairo rendering on Windows with wx 3.3 + SetDoubleBuffered( false ); +#endif + m_bitmapBuffer = nullptr; m_wxOutput = nullptr;