diff options
Diffstat (limited to 'src/tracker_frame.cpp')
| -rw-r--r-- | src/tracker_frame.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
| diff --git a/src/tracker_frame.cpp b/src/tracker_frame.cpp index 6a4ab2e..fa68582 100644 --- a/src/tracker_frame.cpp +++ b/src/tracker_frame.cpp | |||
| @@ -255,8 +255,9 @@ void TrackerFrame::OnSettings(wxCommandEvent &event) { | |||
| 255 | GetTrackerConfig().track_position = dlg.GetTrackPosition(); | 255 | GetTrackerConfig().track_position = dlg.GetTrackPosition(); |
| 256 | GetTrackerConfig().Save(); | 256 | GetTrackerConfig().Save(); |
| 257 | 257 | ||
| 258 | UpdateIndicators( | 258 | UpdateIndicators(StateUpdate{.cleared_locations = true, |
| 259 | StateUpdate{.cleared_locations = true, .player_position = true}); | 259 | .player_position = true, |
| 260 | .changed_settings = true}); | ||
| 260 | } | 261 | } |
| 261 | } | 262 | } |
| 262 | 263 | ||
| @@ -328,7 +329,7 @@ void TrackerFrame::OnSashPositionChanged(wxSplitterEvent& event) { | |||
| 328 | } | 329 | } |
| 329 | 330 | ||
| 330 | void TrackerFrame::OnStateReset(wxCommandEvent &event) { | 331 | void TrackerFrame::OnStateReset(wxCommandEvent &event) { |
| 331 | tracker_panel_->UpdateIndicators(); | 332 | tracker_panel_->UpdateIndicators(/*reset=*/true); |
| 332 | achievements_pane_->UpdateIndicators(); | 333 | achievements_pane_->UpdateIndicators(); |
| 333 | items_pane_->ResetIndicators(); | 334 | items_pane_->ResetIndicators(); |
| 334 | options_pane_->OnConnect(); | 335 | options_pane_->OnConnect(); |
| @@ -350,7 +351,7 @@ void TrackerFrame::OnStateChanged(StateChangedEvent &event) { | |||
| 350 | panels_panel_->SetPanelsMode(); | 351 | panels_panel_->SetPanelsMode(); |
| 351 | notebook_->AddPage(panels_panel_, "Panels"); | 352 | notebook_->AddPage(panels_panel_, "Panels"); |
| 352 | } | 353 | } |
| 353 | panels_panel_->UpdateIndicators(); | 354 | panels_panel_->UpdateIndicators(/*reset=*/false); |
| 354 | if (notebook_->GetSelection() == 2) { | 355 | if (notebook_->GetSelection() == 2) { |
| 355 | Refresh(); | 356 | Refresh(); |
| 356 | } | 357 | } |
| @@ -361,10 +362,13 @@ void TrackerFrame::OnStateChanged(StateChangedEvent &event) { | |||
| 361 | if (!state.items.empty() || !state.paintings.empty() || | 362 | if (!state.items.empty() || !state.paintings.empty() || |
| 362 | state.cleared_locations || | 363 | state.cleared_locations || |
| 363 | (state.hunt_panels && GetTrackerConfig().show_hunt_panels)) { | 364 | (state.hunt_panels && GetTrackerConfig().show_hunt_panels)) { |
| 364 | tracker_panel_->UpdateIndicators(); | 365 | // TODO: The only real reason to reset tracker_panel during an active |
| 366 | // connection is if the hunt panels setting changes. If we remove hunt | ||
| 367 | // panels later, we can get rid of this. | ||
| 368 | tracker_panel_->UpdateIndicators(/*reset=*/state.changed_settings); | ||
| 365 | subway_map_->UpdateIndicators(); | 369 | subway_map_->UpdateIndicators(); |
| 366 | if (panels_panel_ != nullptr) { | 370 | if (panels_panel_ != nullptr) { |
| 367 | panels_panel_->UpdateIndicators(); | 371 | panels_panel_->UpdateIndicators(/*reset=*/false); |
| 368 | } | 372 | } |
| 369 | Refresh(); | 373 | Refresh(); |
| 370 | } else if (state.player_position && GetTrackerConfig().track_position) { | 374 | } else if (state.player_position && GetTrackerConfig().track_position) { |
