about summary refs log tree commit diff stats
path: root/src/tracker_frame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tracker_frame.cpp')
-rw-r--r--src/tracker_frame.cpp16
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
330void TrackerFrame::OnStateReset(wxCommandEvent &event) { 331void 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) {