Skip to content

Commit abdba32

Browse files
committed
SDL per window cursor visibility
1 parent a208c9f commit abdba32

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

BeefySysLib/platform/sdl/SdlBFApp.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@ SdlBFWindow::SdlBFWindow(BFWindow* parent, const StringImpl& title, int x, int y
218218
#endif
219219

220220
mIsMouseInside = false;
221+
mIsMouseVisible = true;
221222
mHasPositionInit = false;
222223
mRenderWindow = new GLRenderWindow((GLRenderDevice*)gBFApp->mRenderDevice, mSDLWindow);
223224
mRenderWindow->mWindow = this;
@@ -523,6 +524,19 @@ void SdlBFApp::Run()
523524
if(sdlBFWindow != NULL)
524525
sdlBFWindow->mMouseWheelFunc(sdlBFWindow, sdlEvent.wheel.mouse_x, sdlEvent.wheel.mouse_y, sdlEvent.wheel.x, sdlEvent.wheel.y * (float)ucNumLines);
525526
}
527+
case SDL_EVENT_WINDOW_MOUSE_ENTER:
528+
{
529+
SdlBFWindow* sdlBFWindow = GetSdlWindowFromId(sdlEvent.window.windowID);
530+
if(sdlBFWindow != NULL)
531+
if (sdlBFWindow->mIsMouseVisible)
532+
{
533+
bf_SDL_ShowCursor();
534+
}
535+
else
536+
{
537+
bf_SDL_HideCursor();
538+
}
539+
}
526540
case SDL_EVENT_KEY_DOWN:
527541
{
528542
SdlBFWindow* sdlBFWindow = GetSdlWindowFromId(sdlEvent.key.windowID);
@@ -792,6 +806,7 @@ void SdlBFWindow::SetMinimumSize(int minWidth, int minHeight, bool clientSized)
792806

793807
void SdlBFWindow::SetMouseVisible(bool isMouseVisible)
794808
{
809+
mIsMouseVisible = isMouseVisible;
795810
if (isMouseVisible)
796811
{
797812
bf_SDL_ShowCursor();

BeefySysLib/platform/sdl/SdlBFApp.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class SdlBFWindow : public BFWindow
1919
bool mIsMouseInside;
2020
int mModalCount;
2121
bool mHasPositionInit;
22+
bool mIsMouseVisible;
2223

2324
public:
2425
SdlBFWindow(BFWindow* parent, const StringImpl& title, int x, int y, int width, int height, int windowFlags);

0 commit comments

Comments
 (0)