From 739ad1ebd6e5955efa2c0d2f0ad9c9dda6d236d9 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 20 Feb 2022 16:50:54 +0100 Subject: [PATCH] pstats: Fix strip chart scale glitches on Windows when switching collector --- pandatool/src/win-stats/winStatsStripChart.cxx | 17 +++++++++++++++++ pandatool/src/win-stats/winStatsStripChart.h | 2 ++ 2 files changed, 19 insertions(+) diff --git a/pandatool/src/win-stats/winStatsStripChart.cxx b/pandatool/src/win-stats/winStatsStripChart.cxx index b20b2d23aa..ccf0707ff4 100644 --- a/pandatool/src/win-stats/winStatsStripChart.cxx +++ b/pandatool/src/win-stats/winStatsStripChart.cxx @@ -230,6 +230,23 @@ get_label_tooltip(int collector_index) const { return PStatStripChart::get_label_tooltip(collector_index); } +/** + * Changes the collector represented by this strip chart. This may force a + * redraw. + */ +void WinStatsStripChart:: +set_collector_index(int collector_index) { + if (get_collector_index() != collector_index) { + PStatStripChart::set_collector_index(collector_index); + + // Redraw the scale labels. + RECT rect; + GetClientRect(_window, &rect); + rect.left = _right_margin; + InvalidateRect(_window, &rect, TRUE); + } +} + /** * Changes the value the height of the vertical axis represents. This may * force a redraw. diff --git a/pandatool/src/win-stats/winStatsStripChart.h b/pandatool/src/win-stats/winStatsStripChart.h index 850faa704c..3874bfe41f 100644 --- a/pandatool/src/win-stats/winStatsStripChart.h +++ b/pandatool/src/win-stats/winStatsStripChart.h @@ -46,6 +46,8 @@ public: virtual void on_click_label(int collector_index); virtual void on_popup_label(int collector_index); virtual std::string get_label_tooltip(int collector_index) const; + + void set_collector_index(int collector_index); void set_vertical_scale(double value_height); protected: