wxWidgets/GTK3 compatibility fixes for eeschema
- Keep refreshing the screen as the cursor is moved. - Invert the cursor color as it is not drawn using XOR mode anymore.
This commit is contained in:
parent
4561b2cba9
commit
835fc22892
|
@ -226,7 +226,14 @@ void EDA_DRAW_PANEL::DrawCrossHair( wxDC* aDC, COLOR4D aColor )
|
||||||
|
|
||||||
wxPoint cursor = GetParent()->GetCrossHairPosition();
|
wxPoint cursor = GetParent()->GetCrossHairPosition();
|
||||||
|
|
||||||
|
#ifdef USE_WX_GRAPHICS_CONTEXT
|
||||||
|
// Normally cursor color is set to white, so when it is xored with white
|
||||||
|
// background, it is painted black effectively. wxGraphicsContext does not have
|
||||||
|
// xor operation, so we need to invert the color manually.
|
||||||
|
aColor.Invert();
|
||||||
|
#else
|
||||||
GRSetDrawMode( aDC, GR_XOR );
|
GRSetDrawMode( aDC, GR_XOR );
|
||||||
|
#endif
|
||||||
|
|
||||||
if( GetParent()->GetGalDisplayOptions().m_fullscreenCursor )
|
if( GetParent()->GetGalDisplayOptions().m_fullscreenCursor )
|
||||||
{
|
{
|
||||||
|
@ -687,8 +694,6 @@ void EDA_DRAW_PANEL::SetEnableZoomNoCenter( bool aEnable )
|
||||||
|
|
||||||
void EDA_DRAW_PANEL::DrawBackGround( wxDC* DC )
|
void EDA_DRAW_PANEL::DrawBackGround( wxDC* DC )
|
||||||
{
|
{
|
||||||
COLOR4D axis_color = COLOR4D( BLUE );
|
|
||||||
|
|
||||||
GRSetDrawMode( DC, GR_COPY );
|
GRSetDrawMode( DC, GR_COPY );
|
||||||
|
|
||||||
if( GetParent()->IsGridVisible() )
|
if( GetParent()->IsGridVisible() )
|
||||||
|
@ -697,6 +702,7 @@ void EDA_DRAW_PANEL::DrawBackGround( wxDC* DC )
|
||||||
// Draw axis
|
// Draw axis
|
||||||
if( GetParent()->m_showAxis )
|
if( GetParent()->m_showAxis )
|
||||||
{
|
{
|
||||||
|
COLOR4D axis_color = COLOR4D( BLUE );
|
||||||
wxSize pageSize = GetParent()->GetPageSizeIU();
|
wxSize pageSize = GetParent()->GetPageSizeIU();
|
||||||
|
|
||||||
// Draw the Y axis
|
// Draw the Y axis
|
||||||
|
@ -765,10 +771,12 @@ void EDA_DRAW_PANEL::DrawGrid( wxDC* aDC )
|
||||||
double right = ( double ) m_ClipBox.GetRight();
|
double right = ( double ) m_ClipBox.GetRight();
|
||||||
double bottom = ( double ) m_ClipBox.GetBottom();
|
double bottom = ( double ) m_ClipBox.GetBottom();
|
||||||
|
|
||||||
#if defined( __WXMAC__ ) && defined( USE_WX_GRAPHICS_CONTEXT )
|
#if defined( USE_WX_GRAPHICS_CONTEXT )
|
||||||
wxGCDC *gcdc = wxDynamicCast( aDC, wxGCDC );
|
wxGCDC *gcdc = wxDynamicCast( aDC, wxGCDC );
|
||||||
|
|
||||||
if( gcdc )
|
if( gcdc )
|
||||||
{
|
{
|
||||||
|
// Much faster grid drawing on systems using wxGraphicsContext
|
||||||
wxGraphicsContext *gc = gcdc->GetGraphicsContext();
|
wxGraphicsContext *gc = gcdc->GetGraphicsContext();
|
||||||
|
|
||||||
// Grid point size
|
// Grid point size
|
||||||
|
@ -1363,17 +1371,14 @@ void EDA_DRAW_PANEL::OnMouseEvent( wxMouseEvent& event )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
wxString msg_debug;
|
|
||||||
msg_debug.Printf( " block state %d, cmd %d",
|
|
||||||
screen->m_BlockLocate.GetState(),
|
|
||||||
screen->m_BlockLocate.GetCommand() );
|
|
||||||
GetParent()->PrintMsg( msg_debug );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
lastPanel = this;
|
lastPanel = this;
|
||||||
}
|
|
||||||
|
|
||||||
|
#ifdef WXGTK3
|
||||||
|
// Screen has to be updated on every operation, otherwise the cursor leaves a trail (when xor
|
||||||
|
// operation is changed to copy) or is not updated at all.
|
||||||
|
Refresh();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void EDA_DRAW_PANEL::OnCharHook( wxKeyEvent& event )
|
void EDA_DRAW_PANEL::OnCharHook( wxKeyEvent& event )
|
||||||
|
@ -1381,6 +1386,7 @@ void EDA_DRAW_PANEL::OnCharHook( wxKeyEvent& event )
|
||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void EDA_DRAW_PANEL::OnKeyEvent( wxKeyEvent& event )
|
void EDA_DRAW_PANEL::OnKeyEvent( wxKeyEvent& event )
|
||||||
{
|
{
|
||||||
int localkey;
|
int localkey;
|
||||||
|
|
Loading…
Reference in New Issue