Locked cursor GUI interaction fix

This commit is contained in:
MihailRis
2023-11-23 14:42:26 +03:00
parent 568c612970
commit d888eded89
2 changed files with 15 additions and 5 deletions
+14 -5
View File
@@ -36,10 +36,7 @@ PagesControl* GUI::getMenu() {
return menu; return menu;
} }
void GUI::act(float delta) { void GUI::actMouse(float delta) {
container->size(vec2(Window::width, Window::height));
container->act(delta);
int mx = Events::x; int mx = Events::x;
int my = Events::y; int my = Events::y;
@@ -55,7 +52,6 @@ void GUI::act(float delta) {
} }
this->hover = hover; this->hover = hover;
auto prevfocus = focus;
if (Events::jclicked(0)) { if (Events::jclicked(0)) {
if (pressed == nullptr && this->hover) { if (pressed == nullptr && this->hover) {
pressed = hover; pressed = hover;
@@ -76,6 +72,17 @@ void GUI::act(float delta) {
pressed->mouseRelease(this, mx, my); pressed->mouseRelease(this, mx, my);
pressed = nullptr; pressed = nullptr;
} }
}
void GUI::act(float delta) {
container->size(vec2(Window::width, Window::height));
container->act(delta);
auto prevfocus = focus;
if (!Events::_cursor_locked) {
actMouse(delta);
}
if (focus) { if (focus) {
if (Events::jpressed(keycode::ESCAPE)) { if (Events::jpressed(keycode::ESCAPE)) {
focus->defocus(); focus->defocus();
@@ -88,6 +95,8 @@ void GUI::act(float delta) {
focus->keyPressed(key); focus->keyPressed(key);
} }
if (Events::clicked(mousecode::BUTTON_1)) { if (Events::clicked(mousecode::BUTTON_1)) {
int mx = Events::x;
int my = Events::y;
focus->mouseMove(this, mx, my); focus->mouseMove(this, mx, my);
} }
if (prevfocus == focus){ if (prevfocus == focus){
+1
View File
@@ -57,6 +57,7 @@ namespace gui {
Camera* uicamera; Camera* uicamera;
PagesControl* menu; PagesControl* menu;
void actMouse(float delta);
public: public:
GUI(); GUI();
~GUI(); ~GUI();