Browse Source

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

Ivan Savenko 2 years ago
parent
commit
b775385179
2 changed files with 5 additions and 1 deletions
  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();
 }