Browse Source

pstats: Fix strip chart scale glitches on Windows when switching collector

rdb 3 years ago
parent
commit
739ad1ebd6

+ 17 - 0
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.

+ 2 - 0
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: