mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-14 01:55:19 -04:00
Fix having to click chat/inventory/fullscreens buttons in extended touch controls twice to get them to work (Thanks SpicedSoup)
This commit is contained in:
parent
2484ff0117
commit
c6dc091b2f
13
src/Game.c
13
src/Game.c
@ -91,6 +91,19 @@ int ScheduledTask_Add(double interval, ScheduledTaskCallback callback) {
|
||||
}
|
||||
|
||||
|
||||
void Game_ToggleFullscreen(void) {
|
||||
int state = Window_GetWindowState();
|
||||
cc_result res;
|
||||
|
||||
if (state == WINDOW_STATE_FULLSCREEN) {
|
||||
res = Window_ExitFullscreen();
|
||||
if (res) Logger_Warn(res, "leaving fullscreen");
|
||||
} else {
|
||||
res = Window_EnterFullscreen();
|
||||
if (res) Logger_Warn(res, "going fullscreen");
|
||||
}
|
||||
}
|
||||
|
||||
void Game_SetViewDistance(int distance) {
|
||||
distance = min(distance, Game_MaxViewDistance);
|
||||
if (distance == Game_ViewDistance) return;
|
||||
|
@ -49,6 +49,7 @@ enum FpsLimitMethod {
|
||||
};
|
||||
extern const char* const FpsLimit_Names[FPS_LIMIT_COUNT];
|
||||
|
||||
void Game_ToggleFullscreen(void);
|
||||
void Game_SetViewDistance(int distance);
|
||||
void Game_UserSetViewDistance(int distance);
|
||||
void Game_SetFov(int fov);
|
||||
|
12
src/Input.c
12
src/Input.c
@ -887,20 +887,10 @@ static cc_bool HandleNonClassicKey(int key) {
|
||||
}
|
||||
|
||||
static cc_bool HandleCoreKey(int key) {
|
||||
cc_result res;
|
||||
|
||||
if (key == KeyBinds[KEYBIND_HIDE_FPS]) {
|
||||
Gui_ShowFPS = !Gui_ShowFPS;
|
||||
} else if (key == KeyBinds[KEYBIND_FULLSCREEN]) {
|
||||
int state = Window_GetWindowState();
|
||||
|
||||
if (state == WINDOW_STATE_FULLSCREEN) {
|
||||
res = Window_ExitFullscreen();
|
||||
if (res) Logger_Warn(res, "leaving fullscreen");
|
||||
} else {
|
||||
res = Window_EnterFullscreen();
|
||||
if (res) Logger_Warn(res, "going fullscreen");
|
||||
}
|
||||
Game_ToggleFullscreen();
|
||||
} else if (key == KeyBinds[KEYBIND_FOG]) {
|
||||
const short* viewDists = Gui_ClassicMenu ? classicDists : normDists;
|
||||
int count = Gui_ClassicMenu ? Array_Elems(classicDists) : Array_Elems(normDists);
|
||||
|
15
src/Menus.c
15
src/Menus.c
@ -3481,17 +3481,26 @@ static void TouchMore_Toggle(KeyBind bind) {
|
||||
Input_SetPressed(key, !Input_Pressed[key]);
|
||||
}
|
||||
|
||||
static void TouchMore_Chat(void* s, void* w) { TouchMore_Toggle(KEYBIND_CHAT); }
|
||||
static void TouchMore_Speed(void* s, void* w) { TouchMore_Toggle(KEYBIND_SPEED); }
|
||||
static void TouchMore_Fly(void* s, void* w) { TouchMore_Toggle(KEYBIND_FLY); }
|
||||
static void TouchMore_Inv(void* s, void* w) { TouchMore_Toggle(KEYBIND_INVENTORY); }
|
||||
static void TouchMore_Screen(void* s, void* w) { TouchMore_Toggle(KEYBIND_FULLSCREEN); }
|
||||
static void TouchMore_Noclip(void* s, void* w) { TouchMore_Toggle(KEYBIND_NOCLIP); }
|
||||
|
||||
static void TouchMore_Chat(void* s, void* w) {
|
||||
Gui_Remove((struct Screen*)&TouchMoreScreen);
|
||||
ChatScreen_OpenInput(&String_Empty);
|
||||
}
|
||||
static void TouchMore_Inv(void* s, void* w) {
|
||||
Gui_Remove((struct Screen*)&TouchMoreScreen);
|
||||
InventoryScreen_Show();
|
||||
}
|
||||
static void TouchMore_Menu(void* s, void* w) {
|
||||
Gui_Remove((struct Screen*)&TouchMoreScreen);
|
||||
PauseScreen_Show();
|
||||
}
|
||||
static void TouchMore_Screen(void* s, void* w) {
|
||||
Gui_Remove((struct Screen*)&TouchMoreScreen);
|
||||
Game_ToggleFullscreen();
|
||||
}
|
||||
|
||||
static void TouchMore_Fog(void* s, void* w) {
|
||||
Input_SetPressed(KeyBinds[KEYBIND_FOG], true);
|
||||
|
Loading…
x
Reference in New Issue
Block a user