pcbnew: Don't use frame refresh to update display

Frame refresh in wxWidgets sets the focus back to indeterminate state
and prevents hotkey action until the focus is captured again.  Using
canvas update is the correct method to update the canvas display after
modifying zones/similar

Fixes: lp:1810993
* https://bugs.launchpad.net/kicad/+bug/1810993
This commit is contained in:
Seth Hillbrand 2019-01-08 03:36:35 -08:00
parent 7f6b35c6bc
commit b0da1e19ee
3 changed files with 8 additions and 8 deletions

View File

@ -33,6 +33,7 @@
#include <class_board.h>
#include <view/view_group.h>
#include <pcb_view.h>
#include <pcb_draw_panel_gal.h>
#include <functional>
#include <tool/tool_menu.h>
@ -46,7 +47,6 @@
class PCB_TOOL;
class PCB_EDIT_FRAME;
class PCB_DISPLAY_OPTIONS;
class PCB_DRAW_PANEL_GAL;
class SELECTION;
struct INTERACTIVE_PLACER_BASE

View File

@ -130,8 +130,8 @@ int POSITION_RELATIVE_TOOL::RelativeItemSelectionMove( wxPoint aPosAnchor, wxPoi
m_toolMgr->RunAction( PCB_ACTIONS::selectionClear, true );
m_toolMgr->RunAction( PCB_ACTIONS::selectionModified, true );
getEditFrame<PCB_EDIT_FRAME>()->Refresh();
canvas()->Refresh();
return 0;
}

View File

@ -101,7 +101,7 @@ int ZONE_FILLER_TOOL::ZoneFill( const TOOL_EVENT& aEvent )
filler.SetProgressReporter( progressReporter.get() );
filler.Fill( toFill );
getEditFrame<PCB_EDIT_FRAME>()->Refresh();
canvas()->Refresh();
return 0;
}
@ -128,7 +128,7 @@ int ZONE_FILLER_TOOL::ZoneFillAll( const TOOL_EVENT& aEvent )
if( filler.Fill( toFill ) )
frame()->m_ZoneFillsDirty = false;
getEditFrame<PCB_EDIT_FRAME>()->Refresh();
canvas()->Refresh();
return 0;
}
@ -151,7 +151,7 @@ int ZONE_FILLER_TOOL::ZoneUnfill( const TOOL_EVENT& aEvent )
}
commit.Push( _( "Unfill Zone" ) );
getEditFrame<PCB_EDIT_FRAME>()->Refresh();
canvas()->Refresh();
return 0;
}
@ -179,7 +179,7 @@ int ZONE_FILLER_TOOL::SegzoneDeleteFill( const TOOL_EVENT& aEvent )
}
commit.Push( _( "Delete Zone Filling" ) );
getEditFrame<PCB_EDIT_FRAME>()->Refresh();
canvas()->Refresh();
return 0;
}
@ -198,7 +198,7 @@ int ZONE_FILLER_TOOL::ZoneUnfillAll( const TOOL_EVENT& aEvent )
}
commit.Push( _( "Unfill All Zones" ) );
getEditFrame<PCB_EDIT_FRAME>()->Refresh();
canvas()->Refresh();
return 0;
}