mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-14 01:55:19 -04:00
Fix not being able to activate function key keybindings if a texture pack or URL warning overlay is open
This commit is contained in:
parent
b67a9f0a0f
commit
3600c982fe
32
src/Menus.c
32
src/Menus.c
@ -452,8 +452,6 @@ void ListScreen_Show(void) {
|
||||
/*########################################################################################################################*
|
||||
*--------------------------------------------------------MenuScreen-------------------------------------------------------*
|
||||
*#########################################################################################################################*/
|
||||
static int MenuScreen_KeyDown(void* screen, int key) { return key < KEY_F1 || key > KEY_F35; }
|
||||
|
||||
static void MenuScreen_Render(void* screen, double delta) {
|
||||
Menu_RenderBounds();
|
||||
Gfx_SetTexturing(true);
|
||||
@ -555,11 +553,11 @@ static void PauseScreen_Free(void* screen) {
|
||||
}
|
||||
|
||||
static const struct ScreenVTABLE PauseScreen_VTABLE = {
|
||||
PauseScreen_Init, Screen_NullUpdate, PauseScreen_Free,
|
||||
MenuScreen_Render, PauseScreen_BuildMesh,
|
||||
MenuScreen_KeyDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||
Screen_Layout, Screen_ContextLost, PauseScreen_ContextRecreated
|
||||
PauseScreen_Init, Screen_NullUpdate, PauseScreen_Free,
|
||||
MenuScreen_Render, PauseScreen_BuildMesh,
|
||||
Screen_InputDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||
Screen_Layout, Screen_ContextLost, PauseScreen_ContextRecreated
|
||||
};
|
||||
void PauseScreen_Show(void) {
|
||||
struct PauseScreen* s = &PauseScreen_Instance;
|
||||
@ -682,7 +680,7 @@ static int OptionsGroupScreen_PointerMove(void* screen, int id, int x, int y) {
|
||||
static const struct ScreenVTABLE OptionsGroupScreen_VTABLE = {
|
||||
OptionsGroupScreen_Init, Screen_NullUpdate, OptionsGroupScreen_Free,
|
||||
MenuScreen_Render2, OptionsGroupScreen_BuildMesh,
|
||||
MenuScreen_KeyDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Screen_InputDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Menu_PointerDown, Screen_TPointer, OptionsGroupScreen_PointerMove, Screen_TMouseScroll,
|
||||
Screen_Layout, OptionsGroupScreen_ContextLost, OptionsGroupScreen_ContextRecreated
|
||||
};
|
||||
@ -857,7 +855,7 @@ static int EditHotkeyScreen_KeyDown(void* screen, int key) {
|
||||
EditHotkeyScreen_UpdateModifiers(s);
|
||||
return true;
|
||||
}
|
||||
return Elem_HandlesKeyDown(&s->input.base, key) || MenuScreen_KeyDown(s, key);
|
||||
return Elem_HandlesKeyDown(&s->input.base, key) || Screen_InputDown(s, key);
|
||||
}
|
||||
|
||||
static void EditHotkeyScreen_ContextLost(void* screen) {
|
||||
@ -1013,7 +1011,7 @@ static void GenLevelScreen_Make(struct GenLevelScreen* s, int i, int y, int def)
|
||||
static int GenLevelScreen_KeyDown(void* screen, int key) {
|
||||
struct GenLevelScreen* s = (struct GenLevelScreen*)screen;
|
||||
if (s->selected && Elem_HandlesKeyDown(&s->selected->base, key)) return true;
|
||||
return MenuScreen_KeyDown(s, key);
|
||||
return Screen_InputDown(s, key);
|
||||
}
|
||||
|
||||
static int GenLevelScreen_KeyPress(void* screen, char keyChar) {
|
||||
@ -1178,7 +1176,7 @@ static void ClassicGenScreen_Init(void* screen) {
|
||||
static const struct ScreenVTABLE ClassicGenScreen_VTABLE = {
|
||||
ClassicGenScreen_Init, Screen_NullUpdate, Screen_NullFunc,
|
||||
MenuScreen_Render2, ClassicGenScreen_BuildMesh,
|
||||
MenuScreen_KeyDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Screen_InputDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||
Screen_Layout, Screen_ContextLost, ClassicGenScreen_ContextRecreated
|
||||
};
|
||||
@ -1390,7 +1388,7 @@ static int SaveLevelScreen_KeyDown(void* screen, int key) {
|
||||
SaveLevelScreen_RemoveOverwrites(s);
|
||||
return true;
|
||||
}
|
||||
return MenuScreen_KeyDown(s, key);
|
||||
return Screen_InputDown(s, key);
|
||||
}
|
||||
|
||||
static void SaveLevelScreen_ContextLost(void* screen) {
|
||||
@ -1722,7 +1720,7 @@ static int KeyBindingsScreen_KeyDown(void* screen, int key) {
|
||||
KeyBind bind;
|
||||
int idx;
|
||||
|
||||
if (s->curI == -1) return MenuScreen_KeyDown(s, key);
|
||||
if (s->curI == -1) return Screen_InputDown(s, key);
|
||||
bind = s->binds[s->curI];
|
||||
if (key == KEY_ESCAPE) key = KeyBind_Defaults[bind];
|
||||
KeyBind_Set(bind, key);
|
||||
@ -2071,7 +2069,7 @@ static int MenuOptionsScreen_KeyDown(void* screen, int key) {
|
||||
MenuOptionsScreen_EnterInput(s); return true;
|
||||
}
|
||||
}
|
||||
return MenuScreen_KeyDown(s, key);
|
||||
return Screen_InputDown(s, key);
|
||||
}
|
||||
|
||||
static int MenuOptionsScreen_PointerMove(void* screen, int id, int x, int y) {
|
||||
@ -3182,7 +3180,7 @@ static void UrlWarningOverlay_Init(void* screen) {
|
||||
static const struct ScreenVTABLE UrlWarningOverlay_VTABLE = {
|
||||
UrlWarningOverlay_Init, Screen_NullUpdate, Screen_NullFunc,
|
||||
MenuScreen_Render2, UrlWarningOverlay_BuildMesh,
|
||||
Screen_TInput, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Screen_InputDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||
Screen_Layout, Screen_ContextLost, UrlWarningOverlay_ContextRecreated
|
||||
};
|
||||
@ -3355,7 +3353,7 @@ static void TexPackOverlay_Init(void* screen) {
|
||||
static const struct ScreenVTABLE TexPackOverlay_VTABLE = {
|
||||
TexPackOverlay_Init, TexPackOverlay_Update, Screen_NullFunc,
|
||||
MenuScreen_Render2, TexPackOverlay_BuildMesh,
|
||||
Screen_TInput, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Screen_InputDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||
Screen_Layout, TexPackOverlay_ContextLost, TexPackOverlay_ContextRecreated
|
||||
};
|
||||
@ -3438,7 +3436,7 @@ static void TouchMoreOverlay_Init(void* screen) {
|
||||
|
||||
static const struct ScreenVTABLE TouchMoreOverlay_VTABLE = {
|
||||
TouchMoreOverlay_Init, MenuScreen_Render, Screen_NullFunc,
|
||||
Screen_TInput, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Screen_InputDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||
Screen_Layout, Screen_ContextLost, TouchMoreOverlay_ContextRecreated
|
||||
};
|
||||
|
@ -35,8 +35,10 @@ int Screen_TKeyPress(void* s, char keyChar) { return true; }
|
||||
int Screen_TText(void* s, const String* str) { return true; }
|
||||
int Screen_TMouseScroll(void* s, float delta) { return true; }
|
||||
int Screen_TPointer(void* s, int id, int x, int y) { return true; }
|
||||
|
||||
void Screen_NullFunc(void* screen) { }
|
||||
void Screen_NullUpdate(void* screen, double delta) { }
|
||||
int Screen_InputDown(void* screen, int key) { return key < KEY_F1 || key > KEY_F35; }
|
||||
|
||||
CC_NOINLINE static cc_bool IsOnlyHudActive(void) {
|
||||
struct Screen* s;
|
||||
@ -1454,7 +1456,6 @@ static void DisconnectScreen_Render(void* screen, double delta) {
|
||||
}
|
||||
|
||||
static void DisconnectScreen_Free(void* screen) { Game_SetFpsLimit(Game_FpsLimit); }
|
||||
static int DisconnectScreen_KeyDown(void* s, int key) { return key < KEY_F1 || key > KEY_F35; }
|
||||
|
||||
static int DisconnectScreen_PointerDown(void* screen, int id, int x, int y) {
|
||||
struct DisconnectScreen* s = (struct DisconnectScreen*)screen;
|
||||
@ -1479,7 +1480,7 @@ static int DisconnectScreen_PointerMove(void* screen, int idx, int x, int y) {
|
||||
static const struct ScreenVTABLE DisconnectScreen_VTABLE = {
|
||||
DisconnectScreen_Init, Screen_NullUpdate, DisconnectScreen_Free,
|
||||
DisconnectScreen_Render, DisconnectScreen_BuildMesh,
|
||||
DisconnectScreen_KeyDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
Screen_InputDown, Screen_TInput, Screen_TKeyPress, Screen_TText,
|
||||
DisconnectScreen_PointerDown, Screen_TPointer, DisconnectScreen_PointerMove, Screen_TMouseScroll,
|
||||
Screen_Layout, DisconnectScreen_ContextLost, DisconnectScreen_ContextRecreated
|
||||
};
|
||||
|
@ -23,6 +23,7 @@ int Screen_TPointer(void* s, int id, int x, int y);
|
||||
|
||||
void Screen_NullFunc(void* screen);
|
||||
void Screen_NullUpdate(void* screen, double delta);
|
||||
int Screen_InputDown(void* screen, int key);
|
||||
|
||||
/* Calls Elem_Render on each widget in the screen. */
|
||||
void Screen_RenderWidgets(void* screen, double delta);
|
||||
|
Loading…
x
Reference in New Issue
Block a user