diff --git a/common/dialogs/dialog_page_settings.cpp b/common/dialogs/dialog_page_settings.cpp index 7ab002480b..961024e065 100644 --- a/common/dialogs/dialog_page_settings.cpp +++ b/common/dialogs/dialog_page_settings.cpp @@ -222,7 +222,7 @@ void DIALOG_PAGES_SETTINGS::OnOkClick( wxCommandEvent& event ) if( SavePageSettings() ) { m_screen->SetModify(); - m_parent->GetCanvas()->Refresh(); + m_parent->RefreshCanvas(); if( m_localPrjConfigChanged ) m_parent->SaveProjectSettings( true ); diff --git a/common/drawframe.cpp b/common/drawframe.cpp index a38908e970..a8857896c2 100644 --- a/common/drawframe.cpp +++ b/common/drawframe.cpp @@ -235,12 +235,9 @@ void EDA_DRAW_FRAME::OnToggleGridState( wxCommandEvent& aEvent ) { SetGridVisibility( !IsGridVisible() ); if( m_galCanvasActive ) - { m_galCanvas->GetGAL()->SetGridVisibility( IsGridVisible() ); - m_galCanvas->Refresh(); - } - else - m_canvas->Refresh(); + + RefreshCanvas(); } diff --git a/common/view/view.cpp b/common/view/view.cpp index 72d8cf79c7..f8ba2db28f 100644 --- a/common/view/view.cpp +++ b/common/view/view.cpp @@ -915,7 +915,7 @@ void VIEW::RecacheAllItems( bool aImmediately ) m_gal->SetLayerDepth( l->renderingOrder ); recacheLayer visitor( this, m_gal, l->id, aImmediately ); l->items->Query( r, visitor ); - l->isDirty = false; + l->isDirty = true; } } diff --git a/common/view/view_group.cpp b/common/view/view_group.cpp index f7ff19da96..3b740e01b5 100644 --- a/common/view/view_group.cpp +++ b/common/view/view_group.cpp @@ -82,15 +82,9 @@ unsigned int VIEW_GROUP::GetSize() const const BOX2I VIEW_GROUP::ViewBBox() const { - BOX2I box; - - // Merge all bounding boxes, so the returned one contains all stored items - BOOST_FOREACH( VIEW_ITEM* item, m_items ) - { - box.Merge( item->ViewBBox() ); - } - - return box; + BOX2I maxBox; + maxBox.SetMaximum(); + return maxBox; } @@ -107,31 +101,33 @@ void VIEW_GROUP::ViewDraw( int aLayer, GAL* aGal, const BOX2I& aVisibleArea ) co for( int i = 0; i < layers_count; i++ ) { - aGal->SetLayerDepth( m_view->GetLayerOrder( layers[i] ) ); + if( m_view->IsCached( layers[i] ) && m_view->IsLayerVisible( layers[i] ) ) + { + aGal->SetLayerDepth( m_view->GetLayerOrder( layers[i] ) ); - if( !painter->Draw( item, layers[i] ) ) - item->ViewDraw( layers[i], aGal, aVisibleArea ); // Alternative drawing method + if( !painter->Draw( item, layers[i] ) ) + item->ViewDraw( layers[i], aGal, aVisibleArea ); // Alternative drawing method + } } - - /// m_view->Draw( item, true ); } } void VIEW_GROUP::ViewGetLayers( int aLayers[], int& aCount ) const { + // Everything is displayed on a single layer aLayers[0] = m_layer; aCount = 1; } -void VIEW_GROUP::ViewUpdate( int aUpdateFlags, bool aForceImmediateRedraw ) +/*void VIEW_GROUP::ViewUpdate( int aUpdateFlags, bool aForceImmediateRedraw ) { BOOST_FOREACH( VIEW_ITEM* item, m_items ) { item->ViewUpdate( aUpdateFlags, aForceImmediateRedraw ); } -} +}*/ void VIEW_GROUP::updateBbox() diff --git a/common/zoom.cpp b/common/zoom.cpp index a537256eea..9e1175c3b8 100644 --- a/common/zoom.cpp +++ b/common/zoom.cpp @@ -52,7 +52,7 @@ void EDA_DRAW_FRAME::RedrawScreen( const wxPoint& aCenterPoint, bool aWarpPointe if( aWarpPointer ) m_canvas->MoveCursorToCrossHair(); - m_canvas->Refresh(); + RefreshCanvas(); m_canvas->Update(); } @@ -64,11 +64,20 @@ void EDA_DRAW_FRAME::RedrawScreen2( const wxPoint& posBefore ) AdjustScrollBars( newCenter ); - m_canvas->Refresh(); + RefreshCanvas(); m_canvas->Update(); } +void EDA_DRAW_FRAME::RefreshCanvas() +{ + if( m_galCanvasActive ) + m_galCanvas->Refresh(); + else + m_canvas->Refresh(); +} + + void EDA_DRAW_FRAME::Zoom_Automatique( bool aWarpPointer ) { BASE_SCREEN* screen = GetScreen(); @@ -160,7 +169,7 @@ void EDA_DRAW_FRAME::OnZoom( wxCommandEvent& event ) break; case ID_ZOOM_REDRAW: - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_POPUP_ZOOM_CENTER: diff --git a/include/view/view.h b/include/view/view.h index d5a1b9348c..f5eb6b13ca 100644 --- a/include/view/view.h +++ b/include/view/view.h @@ -262,15 +262,24 @@ public: /** * Function SetLayerVisible() * Controls the visibility of a particular layer. - * @param aLayer: the layer to show/hide. When ALL_LAYERS constant is given, all layers' - * visibility is updated - * @param aVisible: the obivous + * @param aLayer: the layer to show/hide + * @param aVisible: the obvious */ inline void SetLayerVisible( int aLayer, bool aVisible = true ) { m_layers[aLayer].enabled = aVisible; } + /** + * Function IsLayerVisible() + * Returns information about visibility of a particular layer. + * @param aLayer: true if the layer is visible, false otherwise + */ + inline bool IsLayerVisible( int aLayer ) const + { + return m_layers.at( aLayer ).enabled; + } + /** * Function SetLayerTarget() * Changes the rendering target for a particular layer. diff --git a/include/wxstruct.h b/include/wxstruct.h index 938e15c24b..76e5987b50 100644 --- a/include/wxstruct.h +++ b/include/wxstruct.h @@ -452,8 +452,6 @@ protected: wxOverlay m_overlay; #endif -protected: - void SetScreen( BASE_SCREEN* aScreen ) { m_currentScreen = aScreen; } /** @@ -692,6 +690,12 @@ public: */ void RedrawScreen2( const wxPoint& posBefore ); + /** + * Function RefreshCanvas + * Depending on the current state of GAL - it refreshes the default canvas of the GAL canvas. + */ + void RefreshCanvas(); + /** * Function Zoom_Automatique * redraws the screen with best zoom level and the best centering diff --git a/pcbnew/autorouter/automove.cpp b/pcbnew/autorouter/automove.cpp index 401b7d8606..cd8e191927 100644 --- a/pcbnew/autorouter/automove.cpp +++ b/pcbnew/autorouter/automove.cpp @@ -293,7 +293,7 @@ void PCB_EDIT_FRAME::AutoMoveModulesOnPcb( bool PlaceModulesHorsPcb ) if( newList.GetCount() ) SaveCopyInUndoList( newList, UR_CHANGED ); - m_canvas->Refresh(); + RefreshCanvas(); } diff --git a/pcbnew/basepcbframe.cpp b/pcbnew/basepcbframe.cpp index 1c4c6a65e1..bd5e71781a 100644 --- a/pcbnew/basepcbframe.cpp +++ b/pcbnew/basepcbframe.cpp @@ -431,7 +431,7 @@ void PCB_BASE_FRAME::SwitchLayer( wxDC* DC, LAYER_NUM layer ) GetScreen()->m_Active_Layer = layer; if( DisplayOpt.ContrastModeDisplay ) - m_canvas->Refresh(); + RefreshCanvas(); } @@ -455,10 +455,7 @@ void PCB_BASE_FRAME::OnTogglePadDrawMode( wxCommandEvent& aEvent ) settings->LoadDisplayOptions( DisplayOpt ); m_galCanvas->GetView()->RecacheAllItems( true ); - if( IsGalCanvasActive() ) - m_galCanvas->Refresh(); - else - m_canvas->Refresh(); + RefreshCanvas(); } @@ -625,8 +622,8 @@ void PCB_BASE_FRAME::SetToolID( int aId, int aCursor, const wxString& aToolMsg ) // must do this after the tool has been set, otherwise pad::Draw() does // not show proper color when DisplayOpt.ContrastModeDisplay is true. - if( redraw && m_canvas) - m_canvas->Refresh(); + if( redraw && m_canvas ) + RefreshCanvas(); } diff --git a/pcbnew/board_undo_redo.cpp b/pcbnew/board_undo_redo.cpp index 88cfaa49b1..1b132fa1a2 100644 --- a/pcbnew/board_undo_redo.cpp +++ b/pcbnew/board_undo_redo.cpp @@ -367,7 +367,7 @@ void PCB_EDIT_FRAME::SaveCopyInUndoList( BOARD_ITEM* aItem, if( aItem->Type() == PCB_MODULE_T ) if( ((MODULE*)aItem)->GetFlags() & MODULE_to_PLACE ) break; - m_canvas->Refresh(); + RefreshCanvas(); #endif case UR_MOVED: case UR_FLIPPED: @@ -622,7 +622,7 @@ void PCB_EDIT_FRAME::GetBoardFromUndoList( wxCommandEvent& event ) GetScreen()->PushCommandToRedoList( List ); OnModify(); - m_canvas->Refresh(); + RefreshCanvas(); } @@ -650,7 +650,7 @@ void PCB_EDIT_FRAME::GetBoardFromRedoList( wxCommandEvent& event ) GetScreen()->PushCommandToUndoList( List ); OnModify(); - m_canvas->Refresh(); + RefreshCanvas(); } diff --git a/pcbnew/class_pcb_layer_widget.cpp b/pcbnew/class_pcb_layer_widget.cpp index 54fb33d740..3ac5b7f640 100644 --- a/pcbnew/class_pcb_layer_widget.cpp +++ b/pcbnew/class_pcb_layer_widget.cpp @@ -346,7 +346,7 @@ void PCB_LAYER_WIDGET::OnLayerColorChange( LAYER_NUM aLayer, EDA_COLOR_T aColor { myframe->GetBoard()->SetLayerColor( aLayer, aColor ); myframe->ReCreateLayerBox( NULL ); - myframe->GetCanvas()->Refresh(); + myframe->RefreshCanvas(); } @@ -359,7 +359,7 @@ bool PCB_LAYER_WIDGET::OnLayerSelect( LAYER_NUM aLayer ) if( m_alwaysShowActiveCopperLayer ) OnLayerSelected(); else if( DisplayOpt.ContrastModeDisplay ) - myframe->GetCanvas()->Refresh(); + myframe->RefreshCanvas(); return true; } @@ -405,14 +405,14 @@ void PCB_LAYER_WIDGET::OnLayerVisible( LAYER_NUM aLayer, bool isVisible, bool is if( myframe->IsGalCanvasActive() ) galCanvas->Refresh(); else - myframe->GetCanvas()->Refresh(); + myframe->RefreshCanvas(); } } void PCB_LAYER_WIDGET::OnRenderColorChange( int aId, EDA_COLOR_T aColor ) { myframe->GetBoard()->SetVisibleElementColor( aId, aColor ); - myframe->GetCanvas()->Refresh(); + myframe->RefreshCanvas(); } void PCB_LAYER_WIDGET::OnRenderEnable( int aId, bool isEnabled ) @@ -430,7 +430,7 @@ void PCB_LAYER_WIDGET::OnRenderEnable( int aId, bool isEnabled ) if( myframe->IsGalCanvasActive() ) galCanvas->Refresh(); else - myframe->GetCanvas()->Refresh(); + myframe->RefreshCanvas(); } //----------------------------------------------- diff --git a/pcbnew/dialogs/dialog_display_options.cpp b/pcbnew/dialogs/dialog_display_options.cpp index 8b44757d90..4f5fb1cbea 100644 --- a/pcbnew/dialogs/dialog_display_options.cpp +++ b/pcbnew/dialogs/dialog_display_options.cpp @@ -180,7 +180,7 @@ void DIALOG_DISPLAY_OPTIONS::OnOkClick(wxCommandEvent& event) if( m_Parent->IsGalCanvasActive() ) m_Parent->GetGalCanvas()->Refresh(); else - m_Parent->GetCanvas()->Refresh(); + m_Parent->RefreshCanvas(); EndModal( 1 ); } diff --git a/pcbnew/dialogs/dialog_drc.cpp b/pcbnew/dialogs/dialog_drc.cpp index d65d497784..0a779540b3 100644 --- a/pcbnew/dialogs/dialog_drc.cpp +++ b/pcbnew/dialogs/dialog_drc.cpp @@ -548,7 +548,7 @@ void DIALOG_DRC_CONTROL::OnUnconnectedSelectionEvent( wxCommandEvent& event ) void DIALOG_DRC_CONTROL::RedrawDrawPanel() { - m_Parent->GetCanvas()->Refresh(); + m_Parent->RefreshCanvas(); } diff --git a/pcbnew/dialogs/dialog_general_options.cpp b/pcbnew/dialogs/dialog_general_options.cpp index 3c86cd8d4a..37854ac88f 100644 --- a/pcbnew/dialogs/dialog_general_options.cpp +++ b/pcbnew/dialogs/dialog_general_options.cpp @@ -185,7 +185,7 @@ void PCB_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) if( state && (GetBoard()->m_Status_Pcb & LISTE_RATSNEST_ITEM_OK) == 0 ) Compile_Ratsnest( NULL, true ); - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_TB_OPTIONS_SHOW_MODULE_RATSNEST: @@ -200,35 +200,35 @@ void PCB_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) DisplayOpt.DisplayZonesMode = 0; recache = true; if( !m_galCanvasActive ) - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_TB_OPTIONS_SHOW_ZONES_DISABLE: DisplayOpt.DisplayZonesMode = 1; recache = true; if( !m_galCanvasActive ) - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_TB_OPTIONS_SHOW_ZONES_OUTLINES_ONLY: DisplayOpt.DisplayZonesMode = 2; recache = true; if( !m_galCanvasActive ) - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_TB_OPTIONS_SHOW_VIAS_SKETCH: m_DisplayViaFill = DisplayOpt.DisplayViaFill = !state; recache = true; if( !m_galCanvasActive ) - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_TB_OPTIONS_SHOW_TRACKS_SKETCH: m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill = !state; recache = true; if( !m_galCanvasActive ) - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_TB_OPTIONS_SHOW_HIGH_CONTRAST_MODE: @@ -244,7 +244,7 @@ void PCB_EDIT_FRAME::OnSelectOptionToolbar( wxCommandEvent& event ) if( m_galCanvasActive ) m_galCanvas->Refresh(); else - m_canvas->Refresh(); + RefreshCanvas(); break; } diff --git a/pcbnew/dialogs/dialog_global_deletion.cpp b/pcbnew/dialogs/dialog_global_deletion.cpp index cce6a7b4b5..3048f5b7c0 100644 --- a/pcbnew/dialogs/dialog_global_deletion.cpp +++ b/pcbnew/dialogs/dialog_global_deletion.cpp @@ -182,7 +182,7 @@ void DIALOG_GLOBAL_DELETION::AcceptPcbDelete( ) m_Parent->Compile_Ratsnest( NULL, true ); } - m_Parent->GetCanvas()->Refresh(); + m_Parent->RefreshCanvas(); m_Parent->OnModify(); EndModal( 1 ); diff --git a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp index b5114a0ce8..8fd7b9f040 100644 --- a/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp +++ b/pcbnew/dialogs/dialog_global_edit_tracks_and_vias.cpp @@ -206,7 +206,7 @@ void DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::OnOkClick( wxCommandEvent& event ) EndModal( 1 ); if( change ) - m_Parent->GetCanvas()->Refresh(); + m_Parent->RefreshCanvas(); } diff --git a/pcbnew/dialogs/dialog_global_modules_fields_edition.cpp b/pcbnew/dialogs/dialog_global_modules_fields_edition.cpp index aa8f2c9186..55fa8efdc7 100644 --- a/pcbnew/dialogs/dialog_global_modules_fields_edition.cpp +++ b/pcbnew/dialogs/dialog_global_modules_fields_edition.cpp @@ -136,7 +136,7 @@ void PCB_EDIT_FRAME::OnResetModuleTextSizes( wxCommandEvent& event ) DIALOG_GLOBAL_MODULES_FIELDS_EDITION dlg(this); dlg.ShowModal(); - m_canvas->Refresh(); + RefreshCanvas(); } void PCB_BASE_FRAME::ResetModuleTextSizes( const wxString & aFilter, bool aRef, diff --git a/pcbnew/dialogs/dialog_orient_footprints.cpp b/pcbnew/dialogs/dialog_orient_footprints.cpp index 4c6dd832d5..20b31aab44 100644 --- a/pcbnew/dialogs/dialog_orient_footprints.cpp +++ b/pcbnew/dialogs/dialog_orient_footprints.cpp @@ -104,7 +104,7 @@ void PCB_EDIT_FRAME::OnOrientFootprints( wxCommandEvent& event ) if( ReOrientModules( text, dlg.GetOrientation(), dlg.ApplyToLockedModules() ) ) { - m_canvas->Refresh(); + RefreshCanvas(); Compile_Ratsnest( NULL, true ); } } diff --git a/pcbnew/dialogs/dialog_set_grid.cpp b/pcbnew/dialogs/dialog_set_grid.cpp index 36527c6df6..5c37f16f5c 100644 --- a/pcbnew/dialogs/dialog_set_grid.cpp +++ b/pcbnew/dialogs/dialog_set_grid.cpp @@ -216,7 +216,7 @@ bool PCB_BASE_FRAME::InvokeDialogGrid() if( GetScreen()->GetGridId() == ID_POPUP_GRID_USER ) GetScreen()->SetGrid( ID_POPUP_GRID_USER ); - m_canvas->Refresh(); + RefreshCanvas(); return true; } diff --git a/pcbnew/edit.cpp b/pcbnew/edit.cpp index 0a2fb5434f..47e60041ba 100755 --- a/pcbnew/edit.cpp +++ b/pcbnew/edit.cpp @@ -399,7 +399,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) GetDesignSettings().m_CurrentViaType = v_type; if( DisplayOpt.ContrastModeDisplay ) - m_canvas->Refresh(); + RefreshCanvas(); } break; @@ -572,7 +572,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_FILL_ALL_ZONES: m_canvas->MoveCursorToCrossHair(); Fill_All_Zones( this ); - m_canvas->Refresh(); + RefreshCanvas(); SetMsgPanel( GetBoard() ); break; @@ -584,7 +584,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) TestNetConnection( NULL, zone_container->GetNet() ); OnModify(); SetMsgPanel( GetBoard() ); - m_canvas->Refresh(); + RefreshCanvas(); } SetCurItem( NULL ); break; @@ -604,7 +604,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) TestForActiveLinksInRatsnest( 0 ); // Recalculate the active ratsnest, i.e. the unconnected links OnModify(); SetMsgPanel( GetBoard() ); - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_POPUP_PCB_FILL_ZONE: @@ -612,7 +612,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) Fill_Zone( (ZONE_CONTAINER*) GetCurItem() ); TestNetConnection( NULL, ( (ZONE_CONTAINER*) GetCurItem() )->GetNet() ); SetMsgPanel( GetBoard() ); - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_POPUP_PCB_MOVE_TEXTEPCB_REQUEST: @@ -1040,7 +1040,7 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) Delete_Drawings_All_Layer( GetCurItem()->GetLayer() ); SetCurItem( NULL ); m_canvas->MoveCursorToCrossHair(); - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_POPUP_PCB_EDIT_DRAWING: @@ -1287,7 +1287,7 @@ void PCB_EDIT_FRAME::SwitchLayer( wxDC* DC, LAYER_NUM layer ) if( Other_Layer_Route( (TRACK*) GetScreen()->GetCurItem(), DC ) ) { if( DisplayOpt.ContrastModeDisplay ) - m_canvas->Refresh(); + RefreshCanvas(); } // if the via was allowed by DRC, then the layer swap has already @@ -1306,7 +1306,7 @@ void PCB_EDIT_FRAME::SwitchLayer( wxDC* DC, LAYER_NUM layer ) setActiveLayer( layer ); if( DisplayOpt.ContrastModeDisplay ) - m_canvas->Refresh(); + RefreshCanvas(); } diff --git a/pcbnew/edit_pcb_text.cpp b/pcbnew/edit_pcb_text.cpp index c7a62aaa01..72901a5a56 100644 --- a/pcbnew/edit_pcb_text.cpp +++ b/pcbnew/edit_pcb_text.cpp @@ -126,7 +126,7 @@ void PCB_EDIT_FRAME::Place_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC ) TextePcb->ClearFlags(); #ifdef USE_WX_OVERLAY - m_canvas->Refresh(); + RefreshCanvas(); #endif } @@ -144,7 +144,7 @@ void PCB_EDIT_FRAME::StartMoveTextePcb( TEXTE_PCB* aTextePcb, wxDC* aDC, bool aE SetMsgPanel( aTextePcb ); #ifdef USE_WX_OVERLAY - m_canvas->Refresh(); + RefreshCanvas(); #endif GetScreen()->SetCrossHairPosition( aTextePcb->GetTextPosition() ); @@ -257,7 +257,7 @@ void PCB_EDIT_FRAME::Rotate_Texte_Pcb( TEXTE_PCB* TextePcb, wxDC* DC ) OnModify(); #ifdef USE_WX_OVERLAY - m_canvas->Refresh(); + RefreshCanvas(); #endif } @@ -281,6 +281,6 @@ void PCB_EDIT_FRAME::FlipTextePcb( TEXTE_PCB* aTextePcb, wxDC* aDC ) OnModify(); #ifdef USE_WX_OVERLAY - m_canvas->Refresh(); + RefreshCanvas(); #endif } diff --git a/pcbnew/editmod.cpp b/pcbnew/editmod.cpp index 1f217d6194..9f4e01a7f0 100644 --- a/pcbnew/editmod.cpp +++ b/pcbnew/editmod.cpp @@ -68,7 +68,7 @@ void PCB_EDIT_FRAME::InstallModuleOptionsFrame( MODULE* Module, wxDC* DC ) #ifdef __WXMAC__ // If something edited, push a refresh request if (retvalue == 0 || retvalue == 1) - m_canvas->Refresh(); + RefreshCanvas(); #endif if( retvalue == 2 ) @@ -120,7 +120,7 @@ void FOOTPRINT_EDIT_FRAME::RemoveStruct( EDA_ITEM* Item ) case PCB_MODULE_EDGE_T: Delete_Edge_Module( (EDGE_MODULE*) Item ); - m_canvas->Refresh(); + RefreshCanvas(); break; case PCB_MODULE_T: diff --git a/pcbnew/edtxtmod.cpp b/pcbnew/edtxtmod.cpp index 01869ae06f..4da20c4956 100644 --- a/pcbnew/edtxtmod.cpp +++ b/pcbnew/edtxtmod.cpp @@ -349,7 +349,7 @@ void PCB_BASE_FRAME::ResetTextSize( BOARD_ITEM* aItem, wxDC* aDC ) text->SetThickness( newThickness ); if( aDC ) - m_canvas->Refresh(); + RefreshCanvas(); OnModify(); } diff --git a/pcbnew/event_handlers_tracks_vias_sizes.cpp b/pcbnew/event_handlers_tracks_vias_sizes.cpp index 52428a3834..33f975b07c 100644 --- a/pcbnew/event_handlers_tracks_vias_sizes.cpp +++ b/pcbnew/event_handlers_tracks_vias_sizes.cpp @@ -118,5 +118,5 @@ void PCB_EDIT_FRAME::Tracks_and_Vias_Size_Event( wxCommandEvent& event ) }*/ //+hp //Refresh canvas, that we can see changes instantly. I use this because it dont,t throw mouse up-left corner. - m_canvas->Refresh(); + RefreshCanvas(); } diff --git a/pcbnew/footprint_wizard.cpp b/pcbnew/footprint_wizard.cpp index 75560423a0..451d7964dc 100644 --- a/pcbnew/footprint_wizard.cpp +++ b/pcbnew/footprint_wizard.cpp @@ -117,7 +117,7 @@ void FOOTPRINT_WIZARD_FRAME::ReloadFootprint() printf( "footprintWizard->GetModule() returns NULL\n" ); } - m_canvas->Refresh(); + RefreshCanvas(); } diff --git a/pcbnew/footprint_wizard_frame.cpp b/pcbnew/footprint_wizard_frame.cpp index 73fe27b054..c48e6ebcf2 100644 --- a/pcbnew/footprint_wizard_frame.cpp +++ b/pcbnew/footprint_wizard_frame.cpp @@ -408,7 +408,7 @@ void FOOTPRINT_WIZARD_FRAME::ReCreatePageList() ReCreateParameterList(); ReCreateHToolbar(); DisplayWizardInfos(); - m_canvas->Refresh(); + RefreshCanvas(); } @@ -506,7 +506,7 @@ void FOOTPRINT_WIZARD_FRAME::ClickOnPageList( wxCommandEvent& event ) return; ReCreateParameterList(); - m_canvas->Refresh(); + RefreshCanvas(); DisplayWizardInfos(); } diff --git a/pcbnew/hotkeys_board_editor.cpp b/pcbnew/hotkeys_board_editor.cpp index 691346005a..30b07f55b2 100644 --- a/pcbnew/hotkeys_board_editor.cpp +++ b/pcbnew/hotkeys_board_editor.cpp @@ -357,7 +357,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit DisplayOpt.DisplayPcbTrackFill ^= 1; DisplayOpt.DisplayPcbTrackFill &= 1; m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill; - m_canvas->Refresh(); + RefreshCanvas(); break; case HK_DELETE: @@ -454,7 +454,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit { Other_Layer_Route( NULL, aDC ); if( DisplayOpt.ContrastModeDisplay ) - m_canvas->Refresh(); + RefreshCanvas(); break; } @@ -538,7 +538,7 @@ void PCB_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotkeyCode, const wxPoint& aPosit case HK_SWITCH_HIGHCONTRAST_MODE: // switch to high contrast mode and refresh the canvas DisplayOpt.ContrastModeDisplay = !DisplayOpt.ContrastModeDisplay; - m_canvas->Refresh(); + RefreshCanvas(); break; case HK_CANVAS_CAIRO: diff --git a/pcbnew/modedit.cpp b/pcbnew/modedit.cpp index fb1b5f1035..e8fb7e2bba 100644 --- a/pcbnew/modedit.cpp +++ b/pcbnew/modedit.cpp @@ -542,7 +542,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) GetScreen()->GetCurItem()->ClearFlags(); if( ret > 0 ) - m_canvas->Refresh(); + RefreshCanvas(); } break; @@ -572,7 +572,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) m_canvas->MoveCursorToCrossHair(); if( ret > 0 ) - m_canvas->Refresh(); + RefreshCanvas(); } break; @@ -661,38 +661,38 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) m_canvas->MoveCursorToCrossHair(); if( edge ) - m_canvas->Refresh(); + RefreshCanvas(); } break; case ID_POPUP_MODEDIT_EDIT_BODY_ITEM : m_canvas->MoveCursorToCrossHair(); InstallFootprintBodyItemPropertiesDlg( (EDGE_MODULE*) GetScreen()->GetCurItem() ); - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_POPUP_MODEDIT_EDIT_WIDTH_CURRENT_EDGE: m_canvas->MoveCursorToCrossHair(); Edit_Edge_Width( (EDGE_MODULE*) GetScreen()->GetCurItem() ); - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_POPUP_MODEDIT_EDIT_WIDTH_ALL_EDGE: m_canvas->MoveCursorToCrossHair(); Edit_Edge_Width( NULL ); - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_POPUP_MODEDIT_EDIT_LAYER_CURRENT_EDGE: m_canvas->MoveCursorToCrossHair(); Edit_Edge_Layer( (EDGE_MODULE*) GetScreen()->GetCurItem() ); - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_POPUP_MODEDIT_EDIT_LAYER_ALL_EDGE: m_canvas->MoveCursorToCrossHair(); Edit_Edge_Layer( NULL ); - m_canvas->Refresh(); + RefreshCanvas(); break; case ID_POPUP_PCB_DELETE_EDGE: @@ -775,7 +775,7 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event ) } if( redraw ) - m_canvas->Refresh(); + RefreshCanvas(); } diff --git a/pcbnew/modedit_onclick.cpp b/pcbnew/modedit_onclick.cpp index 4628f1ba80..07f9fd35ab 100644 --- a/pcbnew/modedit_onclick.cpp +++ b/pcbnew/modedit_onclick.cpp @@ -97,13 +97,13 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) { End_Edge_Module( (EDGE_MODULE*) item ); SetCurItem( NULL ); - m_canvas->Refresh(); + RefreshCanvas(); } else if( ( (EDGE_MODULE*) item )->GetShape() == S_ARC ) { End_Edge_Module( (EDGE_MODULE*) item ); SetCurItem( NULL ); - m_canvas->Refresh(); + RefreshCanvas(); } else if( ( (EDGE_MODULE*) item )->GetShape() == S_SEGMENT ) { @@ -150,7 +150,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftClick( wxDC* DC, const wxPoint& MousePos ) // so deselect the active tool SetToolID( ID_NO_TOOL_SELECTED, m_canvas->GetDefaultCursor(), wxEmptyString ); SetCurItem( NULL ); - m_canvas->Refresh(); + RefreshCanvas(); } break; @@ -436,7 +436,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) m_canvas->MoveCursorToCrossHair(); if( ret > 0 ) - m_canvas->Refresh(); + RefreshCanvas(); } break; @@ -448,7 +448,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) case PCB_MODULE_EDGE_T : m_canvas->MoveCursorToCrossHair(); InstallFootprintBodyItemPropertiesDlg( (EDGE_MODULE*) item ); - m_canvas->Refresh(); + RefreshCanvas(); break; default: @@ -463,7 +463,7 @@ void FOOTPRINT_EDIT_FRAME::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) { End_Edge_Module( (EDGE_MODULE*) item ); SetCurItem( NULL ); - m_canvas->Refresh(); + RefreshCanvas(); } break; diff --git a/pcbnew/modedit_undo_redo.cpp b/pcbnew/modedit_undo_redo.cpp index 5e1fc518cc..8d4fea8620 100644 --- a/pcbnew/modedit_undo_redo.cpp +++ b/pcbnew/modedit_undo_redo.cpp @@ -72,7 +72,7 @@ void FOOTPRINT_EDIT_FRAME::GetComponentFromRedoList( wxCommandEvent& event ) SetCurItem( NULL ); OnModify(); - m_canvas->Refresh(); + RefreshCanvas(); } @@ -101,5 +101,5 @@ void FOOTPRINT_EDIT_FRAME::GetComponentFromUndoList( wxCommandEvent& event ) SetCurItem( NULL ); OnModify(); - m_canvas->Refresh(); + RefreshCanvas(); } diff --git a/pcbnew/modules.cpp b/pcbnew/modules.cpp index f19e944a9b..edaae23008 100644 --- a/pcbnew/modules.cpp +++ b/pcbnew/modules.cpp @@ -285,7 +285,7 @@ bool PCB_EDIT_FRAME::Delete_Module( MODULE* aModule, wxDC* aDC, bool aAskBeforeD // Redraw the full screen to ensure perfect display of board and ratsnest. if( aDC ) - m_canvas->Refresh(); + RefreshCanvas(); return true; } @@ -421,7 +421,7 @@ void PCB_BASE_FRAME::PlaceModule( MODULE* aModule, wxDC* aDC, bool aDoNotRecreat Compile_Ratsnest( aDC, true ); if( aDC ) - m_canvas->Refresh(); + RefreshCanvas(); SetMsgPanel( aModule ); } @@ -490,7 +490,7 @@ void PCB_BASE_FRAME::Rotate_Module( wxDC* DC, MODULE* module, double angle, bool } if( module->GetFlags() == 0 ) // module not in edit: redraw full screen - m_canvas->Refresh(); + RefreshCanvas(); } } diff --git a/pcbnew/modview.cpp b/pcbnew/modview.cpp index 2fb378ef84..bfeed514cc 100644 --- a/pcbnew/modview.cpp +++ b/pcbnew/modview.cpp @@ -165,7 +165,7 @@ void FOOTPRINT_VIEWER_FRAME::SelectCurrentFootprint( wxCommandEvent& event ) SetCurItem( NULL ); Zoom_Automatique( false ); - m_canvas->Refresh(); + RefreshCanvas(); Update3D_Frame(); m_FootprintList->SetStringSelection( m_footprintName ); } diff --git a/pcbnew/modview_frame.cpp b/pcbnew/modview_frame.cpp index a051ea942d..5ec3ed8ae2 100644 --- a/pcbnew/modview_frame.cpp +++ b/pcbnew/modview_frame.cpp @@ -411,7 +411,7 @@ void FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList() ReCreateFootprintList(); ReCreateHToolbar(); DisplayLibInfos(); - m_canvas->Refresh(); + RefreshCanvas(); } @@ -477,7 +477,7 @@ void FOOTPRINT_VIEWER_FRAME::ClickOnLibList( wxCommandEvent& event ) m_libraryName = name; ReCreateFootprintList(); - m_canvas->Refresh(); + RefreshCanvas(); DisplayLibInfos(); ReCreateHToolbar(); } @@ -525,7 +525,7 @@ void FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList( wxCommandEvent& event ) DisplayLibInfos(); Zoom_Automatique( false ); - m_canvas->Refresh(); + RefreshCanvas(); Update3D_Frame(); } } diff --git a/pcbnew/move_or_drag_track.cpp b/pcbnew/move_or_drag_track.cpp index 877edfcd03..82f9cac46f 100644 --- a/pcbnew/move_or_drag_track.cpp +++ b/pcbnew/move_or_drag_track.cpp @@ -894,7 +894,7 @@ bool PCB_EDIT_FRAME::PlaceDraggedOrMovedTrackSegment( TRACK* Track, wxDC* DC ) if( current_net_code > 0 ) TestNetConnection( DC, current_net_code ); - m_canvas->Refresh(); + RefreshCanvas(); return true; } diff --git a/pcbnew/netlist.cpp b/pcbnew/netlist.cpp index 5b40506808..f358c5fcc6 100644 --- a/pcbnew/netlist.cpp +++ b/pcbnew/netlist.cpp @@ -109,7 +109,7 @@ void PCB_EDIT_FRAME::ReadPcbNetlist( const wxString& aNetlistFileName, // Rebuild the board connectivity: Compile_Ratsnest( NULL, true ); SetMsgPanel( GetBoard() ); - m_canvas->Refresh(); + RefreshCanvas(); } diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index fe9e5ee01d..7e29efb5ed 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -790,11 +790,9 @@ void PCB_EDIT_FRAME::setHighContrastLayer( LAYER_NUM aLayer ) rSettings->SetActiveLayer( ITEM_GAL_LAYER( PAD_FR_NETNAMES_VISIBLE ) ); } } + view->UpdateAllLayersOrder(); view->UpdateAllLayersColor(); - - if( m_galCanvasActive ) - m_galCanvas->Refresh(); } } diff --git a/pcbnew/sel_layer.cpp b/pcbnew/sel_layer.cpp index 5e265a26dc..e2e524beb2 100644 --- a/pcbnew/sel_layer.cpp +++ b/pcbnew/sel_layer.cpp @@ -243,7 +243,7 @@ void PCB_BASE_FRAME::SelectLayerPair() // because the PAD_SMD pads may change color. if( result >= 0 && DisplayOpt.ContrastModeDisplay ) { - m_canvas->Refresh(); + RefreshCanvas(); } } diff --git a/pcbnew/xchgmod.cpp b/pcbnew/xchgmod.cpp index 32ee549465..67bb2edb3a 100644 --- a/pcbnew/xchgmod.cpp +++ b/pcbnew/xchgmod.cpp @@ -281,7 +281,7 @@ void DIALOG_EXCHANGE_MODULE::Change_Current_Module() if( m_Parent->GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) m_Parent->Compile_Ratsnest( NULL, true ); - m_Parent->GetCanvas()->Refresh(); + m_Parent->RefreshCanvas(); } if( pickList.GetCount() ) @@ -370,7 +370,7 @@ void DIALOG_EXCHANGE_MODULE::Change_ModuleId( bool aUseValue ) if( m_Parent->GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) m_Parent->Compile_Ratsnest( NULL, true ); - m_Parent->GetCanvas()->Refresh(); + m_Parent->RefreshCanvas(); } if( pickList.GetCount() ) @@ -423,7 +423,7 @@ void DIALOG_EXCHANGE_MODULE::Change_ModuleAll() if( m_Parent->GetBoard()->IsElementVisible( RATSNEST_VISIBLE ) ) m_Parent->Compile_Ratsnest( NULL, true ); - m_Parent->GetCanvas()->Refresh(); + m_Parent->RefreshCanvas(); } if( pickList.GetCount() ) diff --git a/pcbnew/zones_by_polygon.cpp b/pcbnew/zones_by_polygon.cpp index 9effa3977c..8973ffccb3 100644 --- a/pcbnew/zones_by_polygon.cpp +++ b/pcbnew/zones_by_polygon.cpp @@ -333,7 +333,7 @@ void PCB_EDIT_FRAME::End_Move_Zone_Corner_Or_Outlines( wxDC* DC, ZONE_CONTAINER* // Combine zones if possible wxBusyCursor dummy; GetBoard()->OnAreaPolygonModified( &s_AuxiliaryList, aZone ); - m_canvas->Refresh(); + RefreshCanvas(); int ii = GetBoard()->GetAreaIndex( aZone ); // test if aZone exists diff --git a/pcbnew/zones_by_polygon_fill_functions.cpp b/pcbnew/zones_by_polygon_fill_functions.cpp index 61324cb6c7..2697f03e6e 100644 --- a/pcbnew/zones_by_polygon_fill_functions.cpp +++ b/pcbnew/zones_by_polygon_fill_functions.cpp @@ -80,7 +80,7 @@ void PCB_EDIT_FRAME::Delete_OldZone_Fill( SEGZONE* aZone, time_t aTimestamp ) if( modify ) { OnModify(); - m_canvas->Refresh(); + RefreshCanvas(); } }