mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-16 02:56:09 -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
24
src/Menus.c
24
src/Menus.c
@ -452,8 +452,6 @@ void ListScreen_Show(void) {
|
|||||||
/*########################################################################################################################*
|
/*########################################################################################################################*
|
||||||
*--------------------------------------------------------MenuScreen-------------------------------------------------------*
|
*--------------------------------------------------------MenuScreen-------------------------------------------------------*
|
||||||
*#########################################################################################################################*/
|
*#########################################################################################################################*/
|
||||||
static int MenuScreen_KeyDown(void* screen, int key) { return key < KEY_F1 || key > KEY_F35; }
|
|
||||||
|
|
||||||
static void MenuScreen_Render(void* screen, double delta) {
|
static void MenuScreen_Render(void* screen, double delta) {
|
||||||
Menu_RenderBounds();
|
Menu_RenderBounds();
|
||||||
Gfx_SetTexturing(true);
|
Gfx_SetTexturing(true);
|
||||||
@ -557,7 +555,7 @@ static void PauseScreen_Free(void* screen) {
|
|||||||
static const struct ScreenVTABLE PauseScreen_VTABLE = {
|
static const struct ScreenVTABLE PauseScreen_VTABLE = {
|
||||||
PauseScreen_Init, Screen_NullUpdate, PauseScreen_Free,
|
PauseScreen_Init, Screen_NullUpdate, PauseScreen_Free,
|
||||||
MenuScreen_Render, PauseScreen_BuildMesh,
|
MenuScreen_Render, PauseScreen_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,
|
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||||
Screen_Layout, Screen_ContextLost, PauseScreen_ContextRecreated
|
Screen_Layout, Screen_ContextLost, PauseScreen_ContextRecreated
|
||||||
};
|
};
|
||||||
@ -682,7 +680,7 @@ static int OptionsGroupScreen_PointerMove(void* screen, int id, int x, int y) {
|
|||||||
static const struct ScreenVTABLE OptionsGroupScreen_VTABLE = {
|
static const struct ScreenVTABLE OptionsGroupScreen_VTABLE = {
|
||||||
OptionsGroupScreen_Init, Screen_NullUpdate, OptionsGroupScreen_Free,
|
OptionsGroupScreen_Init, Screen_NullUpdate, OptionsGroupScreen_Free,
|
||||||
MenuScreen_Render2, OptionsGroupScreen_BuildMesh,
|
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,
|
Menu_PointerDown, Screen_TPointer, OptionsGroupScreen_PointerMove, Screen_TMouseScroll,
|
||||||
Screen_Layout, OptionsGroupScreen_ContextLost, OptionsGroupScreen_ContextRecreated
|
Screen_Layout, OptionsGroupScreen_ContextLost, OptionsGroupScreen_ContextRecreated
|
||||||
};
|
};
|
||||||
@ -857,7 +855,7 @@ static int EditHotkeyScreen_KeyDown(void* screen, int key) {
|
|||||||
EditHotkeyScreen_UpdateModifiers(s);
|
EditHotkeyScreen_UpdateModifiers(s);
|
||||||
return true;
|
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) {
|
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) {
|
static int GenLevelScreen_KeyDown(void* screen, int key) {
|
||||||
struct GenLevelScreen* s = (struct GenLevelScreen*)screen;
|
struct GenLevelScreen* s = (struct GenLevelScreen*)screen;
|
||||||
if (s->selected && Elem_HandlesKeyDown(&s->selected->base, key)) return true;
|
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) {
|
static int GenLevelScreen_KeyPress(void* screen, char keyChar) {
|
||||||
@ -1178,7 +1176,7 @@ static void ClassicGenScreen_Init(void* screen) {
|
|||||||
static const struct ScreenVTABLE ClassicGenScreen_VTABLE = {
|
static const struct ScreenVTABLE ClassicGenScreen_VTABLE = {
|
||||||
ClassicGenScreen_Init, Screen_NullUpdate, Screen_NullFunc,
|
ClassicGenScreen_Init, Screen_NullUpdate, Screen_NullFunc,
|
||||||
MenuScreen_Render2, ClassicGenScreen_BuildMesh,
|
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,
|
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||||
Screen_Layout, Screen_ContextLost, ClassicGenScreen_ContextRecreated
|
Screen_Layout, Screen_ContextLost, ClassicGenScreen_ContextRecreated
|
||||||
};
|
};
|
||||||
@ -1390,7 +1388,7 @@ static int SaveLevelScreen_KeyDown(void* screen, int key) {
|
|||||||
SaveLevelScreen_RemoveOverwrites(s);
|
SaveLevelScreen_RemoveOverwrites(s);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return MenuScreen_KeyDown(s, key);
|
return Screen_InputDown(s, key);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SaveLevelScreen_ContextLost(void* screen) {
|
static void SaveLevelScreen_ContextLost(void* screen) {
|
||||||
@ -1722,7 +1720,7 @@ static int KeyBindingsScreen_KeyDown(void* screen, int key) {
|
|||||||
KeyBind bind;
|
KeyBind bind;
|
||||||
int idx;
|
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];
|
bind = s->binds[s->curI];
|
||||||
if (key == KEY_ESCAPE) key = KeyBind_Defaults[bind];
|
if (key == KEY_ESCAPE) key = KeyBind_Defaults[bind];
|
||||||
KeyBind_Set(bind, key);
|
KeyBind_Set(bind, key);
|
||||||
@ -2071,7 +2069,7 @@ static int MenuOptionsScreen_KeyDown(void* screen, int key) {
|
|||||||
MenuOptionsScreen_EnterInput(s); return true;
|
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) {
|
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 = {
|
static const struct ScreenVTABLE UrlWarningOverlay_VTABLE = {
|
||||||
UrlWarningOverlay_Init, Screen_NullUpdate, Screen_NullFunc,
|
UrlWarningOverlay_Init, Screen_NullUpdate, Screen_NullFunc,
|
||||||
MenuScreen_Render2, UrlWarningOverlay_BuildMesh,
|
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,
|
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||||
Screen_Layout, Screen_ContextLost, UrlWarningOverlay_ContextRecreated
|
Screen_Layout, Screen_ContextLost, UrlWarningOverlay_ContextRecreated
|
||||||
};
|
};
|
||||||
@ -3355,7 +3353,7 @@ static void TexPackOverlay_Init(void* screen) {
|
|||||||
static const struct ScreenVTABLE TexPackOverlay_VTABLE = {
|
static const struct ScreenVTABLE TexPackOverlay_VTABLE = {
|
||||||
TexPackOverlay_Init, TexPackOverlay_Update, Screen_NullFunc,
|
TexPackOverlay_Init, TexPackOverlay_Update, Screen_NullFunc,
|
||||||
MenuScreen_Render2, TexPackOverlay_BuildMesh,
|
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,
|
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||||
Screen_Layout, TexPackOverlay_ContextLost, TexPackOverlay_ContextRecreated
|
Screen_Layout, TexPackOverlay_ContextLost, TexPackOverlay_ContextRecreated
|
||||||
};
|
};
|
||||||
@ -3438,7 +3436,7 @@ static void TouchMoreOverlay_Init(void* screen) {
|
|||||||
|
|
||||||
static const struct ScreenVTABLE TouchMoreOverlay_VTABLE = {
|
static const struct ScreenVTABLE TouchMoreOverlay_VTABLE = {
|
||||||
TouchMoreOverlay_Init, MenuScreen_Render, Screen_NullFunc,
|
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,
|
Menu_PointerDown, Screen_TPointer, Menu_PointerMove, Screen_TMouseScroll,
|
||||||
Screen_Layout, Screen_ContextLost, TouchMoreOverlay_ContextRecreated
|
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_TText(void* s, const String* str) { return true; }
|
||||||
int Screen_TMouseScroll(void* s, float delta) { return true; }
|
int Screen_TMouseScroll(void* s, float delta) { return true; }
|
||||||
int Screen_TPointer(void* s, int id, int x, int y) { return true; }
|
int Screen_TPointer(void* s, int id, int x, int y) { return true; }
|
||||||
|
|
||||||
void Screen_NullFunc(void* screen) { }
|
void Screen_NullFunc(void* screen) { }
|
||||||
void Screen_NullUpdate(void* screen, double delta) { }
|
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) {
|
CC_NOINLINE static cc_bool IsOnlyHudActive(void) {
|
||||||
struct Screen* s;
|
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 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) {
|
static int DisconnectScreen_PointerDown(void* screen, int id, int x, int y) {
|
||||||
struct DisconnectScreen* s = (struct DisconnectScreen*)screen;
|
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 = {
|
static const struct ScreenVTABLE DisconnectScreen_VTABLE = {
|
||||||
DisconnectScreen_Init, Screen_NullUpdate, DisconnectScreen_Free,
|
DisconnectScreen_Init, Screen_NullUpdate, DisconnectScreen_Free,
|
||||||
DisconnectScreen_Render, DisconnectScreen_BuildMesh,
|
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,
|
DisconnectScreen_PointerDown, Screen_TPointer, DisconnectScreen_PointerMove, Screen_TMouseScroll,
|
||||||
Screen_Layout, DisconnectScreen_ContextLost, DisconnectScreen_ContextRecreated
|
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_NullFunc(void* screen);
|
||||||
void Screen_NullUpdate(void* screen, double delta);
|
void Screen_NullUpdate(void* screen, double delta);
|
||||||
|
int Screen_InputDown(void* screen, int key);
|
||||||
|
|
||||||
/* Calls Elem_Render on each widget in the screen. */
|
/* Calls Elem_Render on each widget in the screen. */
|
||||||
void Screen_RenderWidgets(void* screen, double delta);
|
void Screen_RenderWidgets(void* screen, double delta);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user