From c6215b08ed1ca6f319f2527c41702c7ff373cb17 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Fri, 31 May 2024 17:06:03 +0100 Subject: [PATCH] Use wxWidgets to track DPI. Fixes https://gitlab.com/kicad/code/kicad/-/issues/17981 (cherry picked from commit 931de120721bf0a7b76042c031f6a86cd1935464) --- 3d-viewer/3d_model_viewer/eda_3d_model_viewer.cpp | 5 ----- 3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp | 3 --- 3d-viewer/dialogs/panel_preview_3d_model.cpp | 3 --- common/gal/hidpi_gl_canvas.cpp | 11 ++--------- common/gal/opengl/opengl_gal.cpp | 7 ------- include/gal/hidpi_gl_canvas.h | 11 ----------- pcbnew/dialogs/dialog_footprint_chooser.cpp | 3 --- 7 files changed, 2 insertions(+), 41 deletions(-) diff --git a/3d-viewer/3d_model_viewer/eda_3d_model_viewer.cpp b/3d-viewer/3d_model_viewer/eda_3d_model_viewer.cpp index 1e53e8df21..577f9d3a93 100644 --- a/3d-viewer/3d_model_viewer/eda_3d_model_viewer.cpp +++ b/3d-viewer/3d_model_viewer/eda_3d_model_viewer.cpp @@ -103,11 +103,6 @@ EDA_3D_MODEL_VIEWER::EDA_3D_MODEL_VIEWER( wxWindow* aParent, const int* aAttribL m_BiuTo3dUnits = 1.0; m_glRC = nullptr; - - COMMON_SETTINGS* settings = Pgm().GetCommonSettings(); - - const DPI_SCALING_COMMON dpi{ settings, this }; - SetScaleFactor( dpi.GetScaleFactor() ); } diff --git a/3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp b/3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp index 84abb8d80c..53fb0b6c92 100644 --- a/3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp +++ b/3d-viewer/3d_viewer/eda_3d_viewer_frame.cpp @@ -812,9 +812,6 @@ void EDA_3D_VIEWER_FRAME::loadCommonSettings() COMMON_SETTINGS* settings = Pgm().GetCommonSettings(); - const DPI_SCALING_COMMON dpi{ settings, this }; - m_canvas->SetScaleFactor( dpi.GetScaleFactor() ); - // TODO(JE) use all control options m_boardAdapter.m_MousewheelPanning = settings->m_Input.scroll_modifier_zoom != 0; } diff --git a/3d-viewer/dialogs/panel_preview_3d_model.cpp b/3d-viewer/dialogs/panel_preview_3d_model.cpp index 12f5d3416a..39e93de154 100644 --- a/3d-viewer/dialogs/panel_preview_3d_model.cpp +++ b/3d-viewer/dialogs/panel_preview_3d_model.cpp @@ -210,9 +210,6 @@ void PANEL_PREVIEW_3D_MODEL::loadSettings() COMMON_SETTINGS* settings = Pgm().GetCommonSettings(); - const DPI_SCALING_COMMON dpi{ settings, this }; - m_previewPane->SetScaleFactor( dpi.GetScaleFactor() ); - // TODO(JE) use all control options m_boardAdapter.m_MousewheelPanning = settings->m_Input.scroll_modifier_zoom != 0; diff --git a/common/gal/hidpi_gl_canvas.cpp b/common/gal/hidpi_gl_canvas.cpp index 22fc2c351a..9c13e8b524 100644 --- a/common/gal/hidpi_gl_canvas.cpp +++ b/common/gal/hidpi_gl_canvas.cpp @@ -34,8 +34,7 @@ HIDPI_GL_CANVAS::HIDPI_GL_CANVAS( const KIGFX::VC_SETTINGS& aSettings, wxWindow* const wxPoint& aPos, const wxSize& aSize, long aStyle, const wxString& aName, const wxPalette& aPalette ) : wxGLCanvas( aParent, aId, aAttribList, aPos, aSize, aStyle, aName, aPalette ), - m_settings( aSettings ), - m_scale_factor( DPI_SCALING::GetDefaultScaleFactor() ) + m_settings( aSettings ) { } @@ -64,13 +63,7 @@ wxPoint HIDPI_GL_CANVAS::GetNativePosition( const wxPoint& aPoint ) const } -void HIDPI_GL_CANVAS::SetScaleFactor( double aNewScaleFactor ) -{ - m_scale_factor = aNewScaleFactor; -} - - double HIDPI_GL_CANVAS::GetScaleFactor() const { - return m_scale_factor; + return GetContentScaleFactor(); } \ No newline at end of file diff --git a/common/gal/opengl/opengl_gal.cpp b/common/gal/opengl/opengl_gal.cpp index b40525406a..843357c273 100644 --- a/common/gal/opengl/opengl_gal.cpp +++ b/common/gal/opengl/opengl_gal.cpp @@ -507,13 +507,6 @@ bool OPENGL_GAL::updatedGalDisplayOptions( const GAL_DISPLAY_OPTIONS& aOptions ) refresh = true; } - if( m_options.m_scaleFactor != GetScaleFactor() ) - { - SetScaleFactor( m_options.m_scaleFactor ); - m_gridLineWidth = m_options.m_scaleFactor * ( m_options.m_gridLineWidth + 0.25 ); - refresh = true; - } - if( super::updatedGalDisplayOptions( aOptions ) || refresh ) { Refresh(); diff --git a/include/gal/hidpi_gl_canvas.h b/include/gal/hidpi_gl_canvas.h index 6c0e5a540d..135f04a082 100644 --- a/include/gal/hidpi_gl_canvas.h +++ b/include/gal/hidpi_gl_canvas.h @@ -54,11 +54,6 @@ public: */ wxPoint GetNativePosition( const wxPoint& aPoint ) const; - /** - * Set the canvas scale factor, probably for a hi-DPI display. - */ - void SetScaleFactor( double aFactor ); - /** * Get the current scale factor */ @@ -69,12 +64,6 @@ public: protected: ///< Current VIEW_CONTROLS settings. KIGFX::VC_SETTINGS m_settings; - -private: - /** - * The current scale factor (e.g. for hi-DPI displays) - */ - double m_scale_factor; }; #endif // HIDPI_GL_CANVAS_H diff --git a/pcbnew/dialogs/dialog_footprint_chooser.cpp b/pcbnew/dialogs/dialog_footprint_chooser.cpp index 687d516838..a4de1f5c1d 100644 --- a/pcbnew/dialogs/dialog_footprint_chooser.cpp +++ b/pcbnew/dialogs/dialog_footprint_chooser.cpp @@ -173,9 +173,6 @@ void DIALOG_FOOTPRINT_CHOOSER::build3DCanvas() COMMON_SETTINGS* settings = Pgm().GetCommonSettings(); - const DPI_SCALING_COMMON dpi{ settings, this }; - m_preview3DCanvas->SetScaleFactor( dpi.GetScaleFactor() ); - // TODO(JE) use all control options m_boardAdapter.m_MousewheelPanning = settings->m_Input.scroll_modifier_zoom != 0;