mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-13 17:47:12 -04:00
Fix speed/half-speed on-screen controls getting stuck down
This commit is contained in:
parent
03b8a949d0
commit
d789184e9a
@ -3613,6 +3613,7 @@ static void TouchOnscreen_Any(void* s, void* w) {
|
|||||||
Gui._onscreenButtons |= bit;
|
Gui._onscreenButtons |= bit;
|
||||||
}
|
}
|
||||||
Options_SetInt(OPT_TOUCH_BUTTONS, Gui._onscreenButtons);
|
Options_SetInt(OPT_TOUCH_BUTTONS, Gui._onscreenButtons);
|
||||||
|
TouchScreen_Refresh();
|
||||||
}
|
}
|
||||||
static void TouchOnscreen_More(void* s, void* w) { TouchCtrlsScreen_Show(); }
|
static void TouchOnscreen_More(void* s, void* w) { TouchCtrlsScreen_Show(); }
|
||||||
|
|
||||||
@ -3738,7 +3739,8 @@ static void TouchCtrls_OnDone(const cc_string* value, cc_bool valid) {
|
|||||||
TouchCtrls_UpdateSensitivity(&TouchCtrlsScreen);
|
TouchCtrls_UpdateSensitivity(&TouchCtrlsScreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TouchCtrls_Sensitivity(void* s, void* w) {
|
static void TouchCtrls_Sensitivity(void* screen, void* w) {
|
||||||
|
struct TouchCtrlsScreen* s = (struct TouchCtrlsScreen*)screen;
|
||||||
static struct MenuInputDesc desc;
|
static struct MenuInputDesc desc;
|
||||||
cc_string value; char valueBuffer[STRING_SIZE];
|
cc_string value; char valueBuffer[STRING_SIZE];
|
||||||
String_InitArray(value, valueBuffer);
|
String_InitArray(value, valueBuffer);
|
||||||
@ -3746,6 +3748,9 @@ static void TouchCtrls_Sensitivity(void* s, void* w) {
|
|||||||
MenuInput_Int(desc, 1, 200, 30);
|
MenuInput_Int(desc, 1, 200, 30);
|
||||||
MiscOptionsScreen_GetSensitivity(&value);
|
MiscOptionsScreen_GetSensitivity(&value);
|
||||||
MenuInputOverlay_Show(&desc, &value, TouchCtrls_OnDone, true);
|
MenuInputOverlay_Show(&desc, &value, TouchCtrls_OnDone, true);
|
||||||
|
/* Fix Sensitivity button getting stuck as 'active' */
|
||||||
|
/* (input overlay swallows subsequent pointer events) */
|
||||||
|
s->btns[4].active = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct SimpleButtonDesc touchCtrls_btns[8] = {
|
static const struct SimpleButtonDesc touchCtrls_btns[8] = {
|
||||||
|
@ -1936,7 +1936,8 @@ static void TouchScreen_MoreClick(void* s, void* w) { TouchMoreScreen_Show(); }
|
|||||||
static void TouchScreen_BindClick(void* screen, void* widget) {
|
static void TouchScreen_BindClick(void* screen, void* widget) {
|
||||||
struct TouchScreen* s = (struct TouchScreen*)screen;
|
struct TouchScreen* s = (struct TouchScreen*)screen;
|
||||||
int i = Screen_Index(screen, widget) - ONSCREEN_MAX_BTNS;
|
int i = Screen_Index(screen, widget) - ONSCREEN_MAX_BTNS;
|
||||||
Input_SetPressed(KeyBinds[s->descs[i].bind], true);
|
int key = KeyBinds[s->descs[i].bind];
|
||||||
|
Input_SetPressed(key, !Input_Pressed[key]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct TouchButtonDesc onscreenDescs[8] = {
|
static const struct TouchButtonDesc onscreenDescs[8] = {
|
||||||
@ -1992,14 +1993,15 @@ static void TouchScreen_InitButtons(struct TouchScreen* s) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TouchScreen_HacksChanged(void* screen) {
|
void TouchScreen_Refresh(void) {
|
||||||
struct TouchScreen* s = (struct TouchScreen*)screen;
|
struct TouchScreen* s = &TouchScreen;
|
||||||
/* InitButtons changes number of widgets, hence */
|
/* InitButtons changes number of widgets, hence */
|
||||||
/* must destroy graphics resources BEFORE that */
|
/* must destroy graphics resources BEFORE that */
|
||||||
Screen_ContextLost(s);
|
Screen_ContextLost(s);
|
||||||
TouchScreen_InitButtons(s);
|
TouchScreen_InitButtons(s);
|
||||||
Gui_Refresh((struct Screen*)s);
|
Gui_Refresh((struct Screen*)s);
|
||||||
}
|
}
|
||||||
|
static void TouchScreen_HacksChanged(void* s) { TouchScreen_Refresh(); }
|
||||||
|
|
||||||
static void TouchScreen_ContextLost(void* screen) {
|
static void TouchScreen_ContextLost(void* screen) {
|
||||||
struct TouchScreen* s = (struct TouchScreen*)screen;
|
struct TouchScreen* s = (struct TouchScreen*)screen;
|
||||||
|
@ -32,6 +32,7 @@ void GeneratingScreen_Show(void);
|
|||||||
void ChatScreen_Show(void);
|
void ChatScreen_Show(void);
|
||||||
void DisconnectScreen_Show(const cc_string* title, const cc_string* message);
|
void DisconnectScreen_Show(const cc_string* title, const cc_string* message);
|
||||||
#ifdef CC_BUILD_TOUCH
|
#ifdef CC_BUILD_TOUCH
|
||||||
|
void TouchScreen_Refresh(void);
|
||||||
void TouchScreen_Show(void);
|
void TouchScreen_Show(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user