Improve default canvas handling.
Fixes: lp:1813973 * https://bugs.launchpad.net/kicad/+bug/1813973
This commit is contained in:
parent
a375edf9ac
commit
b6a06aa129
|
@ -258,11 +258,6 @@ int BASE_SCREEN::SetGrid( const wxRealPoint& size )
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Grid = nearest_grid;
|
m_Grid = nearest_grid;
|
||||||
|
|
||||||
wxLogWarning( _( "Grid size( %f, %f ) not in grid list, falling back "
|
|
||||||
"to grid size( %f, %f )." ),
|
|
||||||
size.x, size.y, m_Grid.m_Size.x, m_Grid.m_Size.y );
|
|
||||||
|
|
||||||
return gridIdx;
|
return gridIdx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,11 +276,6 @@ int BASE_SCREEN::SetGrid( int aCommandId )
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Grid = m_grids[0];
|
m_Grid = m_grids[0];
|
||||||
|
|
||||||
wxLogWarning( _( "Grid ID %d not in grid list, falling back to "
|
|
||||||
"grid size( %g, %g )." ), aCommandId,
|
|
||||||
m_Grid.m_Size.x, m_Grid.m_Size.y );
|
|
||||||
|
|
||||||
return m_grids[0].m_CmdId - ID_POPUP_GRID_LEVEL_1000;
|
return m_grids[0].m_CmdId - ID_POPUP_GRID_LEVEL_1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1069,8 +1069,10 @@ EDA_DRAW_PANEL_GAL::GAL_TYPE EDA_DRAW_FRAME::LoadCanvasTypeSetting()
|
||||||
wxConfigBase* cfg = Kiface().KifaceSettings();
|
wxConfigBase* cfg = Kiface().KifaceSettings();
|
||||||
|
|
||||||
if( cfg )
|
if( cfg )
|
||||||
canvasType = (EDA_DRAW_PANEL_GAL::GAL_TYPE) cfg->ReadLong( GetCanvasTypeKey(),
|
{
|
||||||
EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE );
|
canvasType = (EDA_DRAW_PANEL_GAL::GAL_TYPE)
|
||||||
|
cfg->ReadLong( GetCanvasTypeKey(), EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE );
|
||||||
|
}
|
||||||
|
|
||||||
if( canvasType < EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE
|
if( canvasType < EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE
|
||||||
|| canvasType >= EDA_DRAW_PANEL_GAL::GAL_TYPE_LAST )
|
|| canvasType >= EDA_DRAW_PANEL_GAL::GAL_TYPE_LAST )
|
||||||
|
@ -1084,7 +1086,12 @@ EDA_DRAW_PANEL_GAL::GAL_TYPE EDA_DRAW_FRAME::LoadCanvasTypeSetting()
|
||||||
if( canvasType == EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE
|
if( canvasType == EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE
|
||||||
&& !ADVANCED_CFG::GetCfg().AllowLegacyCanvas() )
|
&& !ADVANCED_CFG::GetCfg().AllowLegacyCanvas() )
|
||||||
{
|
{
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
// Cairo renderer doesn't handle Retina displays
|
||||||
|
canvasType = EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL;
|
||||||
|
#else
|
||||||
canvasType = EDA_DRAW_PANEL_GAL::GAL_TYPE_CAIRO;
|
canvasType = EDA_DRAW_PANEL_GAL::GAL_TYPE_CAIRO;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return canvasType;
|
return canvasType;
|
||||||
|
|
|
@ -1322,8 +1322,10 @@ EDA_DRAW_PANEL_GAL::GAL_TYPE EDA_DRAW_FRAME::LoadCanvasTypeSetting()
|
||||||
wxConfigBase* cfg = Kiface().KifaceSettings();
|
wxConfigBase* cfg = Kiface().KifaceSettings();
|
||||||
|
|
||||||
if( cfg )
|
if( cfg )
|
||||||
canvasType = (EDA_DRAW_PANEL_GAL::GAL_TYPE) cfg->ReadLong( GetCanvasTypeKey(),
|
{
|
||||||
EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE );
|
canvasType = (EDA_DRAW_PANEL_GAL::GAL_TYPE)
|
||||||
|
cfg->ReadLong( GetCanvasTypeKey(), EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE );
|
||||||
|
}
|
||||||
|
|
||||||
if( canvasType < EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE
|
if( canvasType < EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE
|
||||||
|| canvasType >= EDA_DRAW_PANEL_GAL::GAL_TYPE_LAST )
|
|| canvasType >= EDA_DRAW_PANEL_GAL::GAL_TYPE_LAST )
|
||||||
|
@ -1337,7 +1339,12 @@ EDA_DRAW_PANEL_GAL::GAL_TYPE EDA_DRAW_FRAME::LoadCanvasTypeSetting()
|
||||||
if( canvasType == EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE
|
if( canvasType == EDA_DRAW_PANEL_GAL::GAL_TYPE_NONE
|
||||||
&& !ADVANCED_CFG::GetCfg().AllowLegacyCanvas() )
|
&& !ADVANCED_CFG::GetCfg().AllowLegacyCanvas() )
|
||||||
{
|
{
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
// Cairo renderer doesn't handle Retina displays
|
||||||
|
canvasType = EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL;
|
||||||
|
#else
|
||||||
canvasType = EDA_DRAW_PANEL_GAL::GAL_TYPE_CAIRO;
|
canvasType = EDA_DRAW_PANEL_GAL::GAL_TYPE_CAIRO;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return canvasType;
|
return canvasType;
|
||||||
|
|
|
@ -396,13 +396,15 @@ FOOTPRINT_PREVIEW_PANEL* FOOTPRINT_PREVIEW_PANEL::New( KIWAY* aKiway, wxWindow*
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __WXMAC__
|
#ifdef __WXMAC__
|
||||||
// Cairo renderer doesn't handle Retina displays
|
// Cairo renderer doesn't handle Retina displays so default to OpenGL
|
||||||
EDA_DRAW_PANEL_GAL::GAL_TYPE backend = EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL;
|
EDA_DRAW_PANEL_GAL::GAL_TYPE canvasType = (EDA_DRAW_PANEL_GAL::GAL_TYPE)
|
||||||
|
cfg->ReadLong( CanvasTypeKeyBase, EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL );
|
||||||
#else
|
#else
|
||||||
EDA_DRAW_PANEL_GAL::GAL_TYPE backend = EDA_DRAW_PANEL_GAL::GAL_TYPE_CAIRO;
|
EDA_DRAW_PANEL_GAL::GAL_TYPE canvasType = (EDA_DRAW_PANEL_GAL::GAL_TYPE)
|
||||||
|
cfg->ReadLong( CanvasTypeKeyBase, EDA_DRAW_PANEL_GAL::GAL_TYPE_CAIRO );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
auto panel = new FOOTPRINT_PREVIEW_PANEL( aKiway, aParent, gal_opts, backend );
|
auto panel = new FOOTPRINT_PREVIEW_PANEL( aKiway, aParent, gal_opts, canvasType );
|
||||||
|
|
||||||
if( pcbnew )
|
if( pcbnew )
|
||||||
{
|
{
|
||||||
|
|
|
@ -193,14 +193,9 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent
|
||||||
UpdateTitle();
|
UpdateTitle();
|
||||||
|
|
||||||
// Create GAL canvas
|
// Create GAL canvas
|
||||||
#ifdef __WXMAC__
|
|
||||||
// Cairo renderer doesn't handle Retina displays
|
|
||||||
EDA_DRAW_PANEL_GAL::GAL_TYPE backend = EDA_DRAW_PANEL_GAL::GAL_TYPE_OPENGL;
|
|
||||||
#else
|
|
||||||
EDA_DRAW_PANEL_GAL::GAL_TYPE backend = EDA_DRAW_PANEL_GAL::GAL_TYPE_CAIRO;
|
|
||||||
#endif
|
|
||||||
PCB_DRAW_PANEL_GAL* drawPanel = new PCB_DRAW_PANEL_GAL( this, -1, wxPoint( 0, 0 ), m_FrameSize,
|
PCB_DRAW_PANEL_GAL* drawPanel = new PCB_DRAW_PANEL_GAL( this, -1, wxPoint( 0, 0 ), m_FrameSize,
|
||||||
GetGalDisplayOptions(), backend );
|
GetGalDisplayOptions(),
|
||||||
|
LoadCanvasTypeSetting() );
|
||||||
SetGalCanvas( drawPanel );
|
SetGalCanvas( drawPanel );
|
||||||
|
|
||||||
// Create the manager and dispatcher & route draw panel events to the dispatcher
|
// Create the manager and dispatcher & route draw panel events to the dispatcher
|
||||||
|
|
Loading…
Reference in New Issue