1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-11-03 16:26:39 +00:00

Controller menus: don't wrap focus when only two buttons

This commit is contained in:
Andrew Lanzone 2025-05-11 13:48:50 -07:00
parent 4c5db612f0
commit c9ce93a22f

View file

@ -456,8 +456,11 @@ namespace MWGui
} }
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_LEFT) else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_LEFT)
{ {
if (mButtons.size() > 1) if (mButtons.size() <= 1)
{ return true;
if (mButtons.size() == 2 && mControllerFocus == 0)
return true;
mButtons[mControllerFocus]->setStateSelected(false); mButtons[mControllerFocus]->setStateSelected(false);
if (mControllerFocus == 0) if (mControllerFocus == 0)
mControllerFocus = mButtons.size() - 1; mControllerFocus = mButtons.size() - 1;
@ -465,11 +468,13 @@ namespace MWGui
mControllerFocus--; mControllerFocus--;
mButtons[mControllerFocus]->setStateSelected(true); mButtons[mControllerFocus]->setStateSelected(true);
} }
}
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_RIGHT) else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_RIGHT)
{ {
if (mButtons.size() > 1) if (mButtons.size() <= 1)
{ return true;
if (mButtons.size() == 2 && mControllerFocus == mButtons.size() - 1)
return true;
mButtons[mControllerFocus]->setStateSelected(false); mButtons[mControllerFocus]->setStateSelected(false);
if (mControllerFocus == mButtons.size() - 1) if (mControllerFocus == mButtons.size() - 1)
mControllerFocus = 0; mControllerFocus = 0;
@ -477,7 +482,6 @@ namespace MWGui
mControllerFocus++; mControllerFocus++;
mButtons[mControllerFocus]->setStateSelected(true); mButtons[mControllerFocus]->setStateSelected(true);
} }
}
return true; return true;
} }