Fix cursors not showing up on Windows.
(At least mostly; there might still be a few glitches.)
This commit is contained in:
@@ -202,6 +202,7 @@ bool cControl::handleClick(location){
|
||||
clicked = frame.contains(e.mouseButton.x, e.mouseButton.y);
|
||||
depressed = false;
|
||||
} else if(e.type == sf::Event::MouseMoved){
|
||||
restore_cursor();
|
||||
depressed = frame.contains(e.mouseMove.x, e.mouseMove.y);
|
||||
}
|
||||
}
|
||||
|
@@ -1158,16 +1158,18 @@ void cDialog::run(){
|
||||
where = {currentEvent.mouseButton.x, currentEvent.mouseButton.y};
|
||||
itemHit = process_click(where);
|
||||
break;
|
||||
default: // To silence warning of unhandled enum values
|
||||
break;
|
||||
case sf::Event::MouseMoved:
|
||||
set_cursor(sword_curs);
|
||||
bool inField = false;
|
||||
for(auto& ctrl : controls) {
|
||||
if(ctrl.second->getType() == CTRL_FIELD && ctrl.second->getBounds().contains(currentEvent.mouseMove.x, currentEvent.mouseMove.y)) {
|
||||
set_cursor(text_curs);
|
||||
inField = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default: // To silence warning of unhandled enum values
|
||||
if(!inField) set_cursor(sword_curs);
|
||||
break;
|
||||
}
|
||||
if(itemHit.empty()) continue;;
|
||||
|
@@ -15,6 +15,7 @@
|
||||
#include "dlogutil.hpp"
|
||||
#include "graphtool.h"
|
||||
#include "winutil.h"
|
||||
#include "cursors.h"
|
||||
|
||||
void cTextField::attachClickHandler(click_callback_t) throw(xHandlerNotSupported){
|
||||
throw xHandlerNotSupported(false);
|
||||
@@ -122,6 +123,7 @@ bool cTextField::handleClick(location clickLoc) {
|
||||
if(e.type == sf::Event::MouseButtonReleased){
|
||||
done = true;
|
||||
} else if(e.type == sf::Event::MouseMoved){
|
||||
restore_cursor();
|
||||
location newLoc(e.mouseMove.x, e.mouseMove.y);
|
||||
set_ip(newLoc, &cTextField::selectionPoint);
|
||||
}
|
||||
|
@@ -102,6 +102,7 @@ bool cScrollbar::handleClick(location where) {
|
||||
case PART_THUMB: break;
|
||||
}
|
||||
} else if(e.type == sf::Event::MouseMoved){
|
||||
restore_cursor();
|
||||
switch(pressedPart) {
|
||||
case PART_UP:
|
||||
depressed = e.mouseMove.y < frame.top + 16;
|
||||
|
Reference in New Issue
Block a user