fix buttons not being immediately selected when changing menus in game/launcher (thanks tornato)

This commit is contained in:
UnknownShadow200 2018-11-10 17:04:56 +11:00
parent ad4c4b7c6d
commit a7e8429b86
4 changed files with 14 additions and 3 deletions

View File

@ -5,6 +5,7 @@ using ClassicalSharp.GraphicsAPI;
using ClassicalSharp.Gui;
using ClassicalSharp.Gui.Screens;
using ClassicalSharp.Renderers;
using OpenTK.Input;
namespace ClassicalSharp {
@ -83,7 +84,11 @@ namespace ClassicalSharp {
if (activeScreen != null && disposeOld)
activeScreen.Dispose();
if (screen != null) screen.Init();
if (screen != null) {
screen.Init();
// for selecting active button etc
screen.HandlesMouseMove(Mouse.X, Mouse.Y);
}
activeScreen = screen;
CalcCursorVisible();
}

View File

@ -92,7 +92,7 @@ namespace Launcher.Gui.Screens {
MouseButtonDown(x, y, btn);
}
void MouseMove(int deltaX, int deltaY) {
internal void MouseMove(int deltaX, int deltaY) {
int x = Mouse.X, y = Mouse.Y;
MouseMove(x, y, deltaX, deltaY);
}

View File

@ -125,6 +125,8 @@ namespace Launcher {
RedrawBackground();
Screen = screen;
screen.Init();
// for selecting active button etc
Screen.MouseMove(0, 0);
}
public bool ConnectToServer(List<ServerListEntry> publicServers, string hash) {

View File

@ -142,7 +142,11 @@ void Gui_CloseActive(void) {
void Gui_SetActive(struct Screen* screen) {
InputHandler_ScreenChanged(Gui_Active, screen);
if (screen) { Elem_Init(screen); }
if (screen) {
Elem_Init(screen);
/* for selecting active button etc */
Elem_HandlesMouseMove(screen, Mouse_X, Mouse_Y);
}
Gui_Active = screen;
Gui_CalcCursorVisible();