mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
Fixed sorting maps breaking after multiple clicks in succession
This commit is contained in:
@@ -457,10 +457,21 @@ void SelectionTab::updateListItems()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int SelectionTab::getLine()
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SelectionTab::getLine() const
|
||||||
|
{
|
||||||
|
Point clickPos = GH.getCursorPosition() - pos.topLeft();
|
||||||
|
return getLine(clickPos);
|
||||||
|
}
|
||||||
|
|
||||||
|
int SelectionTab::getLine(const Point & clickPos) const
|
||||||
{
|
{
|
||||||
int line = -1;
|
int line = -1;
|
||||||
Point clickPos = GH.getCursorPosition() - pos.topLeft();
|
|
||||||
|
|
||||||
// Ignore clicks on save name area
|
// Ignore clicks on save name area
|
||||||
int maxPosY;
|
int maxPosY;
|
||||||
|
@@ -67,8 +67,8 @@ public:
|
|||||||
|
|
||||||
void clickLeft(tribool down, bool previousState) override;
|
void clickLeft(tribool down, bool previousState) override;
|
||||||
void keyPressed(EShortcut key) override;
|
void keyPressed(EShortcut key) override;
|
||||||
|
|
||||||
void clickDouble() override;
|
void clickDouble() override;
|
||||||
|
bool receiveEvent(const Point & position, int eventType) const override;
|
||||||
|
|
||||||
void filter(int size, bool selectFirst = false); //0 - all
|
void filter(int size, bool selectFirst = false); //0 - all
|
||||||
void sortBy(int criteria);
|
void sortBy(int criteria);
|
||||||
@@ -77,7 +77,8 @@ public:
|
|||||||
void selectAbs(int position); //position: absolute position in curItems vector
|
void selectAbs(int position); //position: absolute position in curItems vector
|
||||||
void sliderMove(int slidPos);
|
void sliderMove(int slidPos);
|
||||||
void updateListItems();
|
void updateListItems();
|
||||||
int getLine();
|
int getLine() const;
|
||||||
|
int getLine(const Point & position) const;
|
||||||
void selectFileName(std::string fname);
|
void selectFileName(std::string fname);
|
||||||
std::shared_ptr<CMapInfo> getSelectedMapInfo() const;
|
std::shared_ptr<CMapInfo> getSelectedMapInfo() const;
|
||||||
void rememberCurrentSelection();
|
void rememberCurrentSelection();
|
||||||
|
Reference in New Issue
Block a user