Jelajahi Sumber

Fix usage of left/right button to select amounts, e.g. in recruit screen

Ivan Savenko 2 tahun lalu
induk
melakukan
b775385179
2 mengubah file dengan 5 tambahan dan 1 penghapusan
  1. 1 1
      client/lobby/SelectionTab.cpp
  2. 4 0
      client/widgets/Slider.cpp

+ 1 - 1
client/lobby/SelectionTab.cpp

@@ -460,7 +460,7 @@ void SelectionTab::updateListItems()
 bool SelectionTab::receiveEvent(const Point & position, int eventType) const
 {
 	// FIXME: widget should instead have well-defined pos so events will be filtered using standard routine
-	return getLine(position) != -1;
+	return getLine(position - pos.topLeft()) != -1;
 }
 
 int SelectionTab::getLine() const

+ 4 - 0
client/widgets/Slider.cpp

@@ -214,6 +214,10 @@ CSlider::CSlider(Point position, int totalw, std::function<void(int)> Moved, int
 		pos.h = totalw;
 	}
 
+	// for horizontal sliders that act as values selection - add keyboard event to receive left/right click
+	if (getOrientation() == Orientation::HORIZONTAL)
+		addUsedEvents(KEYBOARD);
+
 	updateSliderPos();
 }