mirror of
https://github.com/gnif/LookingGlass.git
synced 2025-01-11 14:43:57 +00:00
[client] fix issues with cursor not always showing
This commit is contained in:
parent
3ac178a305
commit
86ca1bbbd6
1 changed files with 15 additions and 4 deletions
|
@ -285,7 +285,7 @@ static int cursorThread(void * unused)
|
||||||
{
|
{
|
||||||
if (status == LGMP_ERR_QUEUE_EMPTY)
|
if (status == LGMP_ERR_QUEUE_EMPTY)
|
||||||
{
|
{
|
||||||
if (g_cursor.redraw)
|
if (g_cursor.redraw && g_cursor.guest.valid)
|
||||||
{
|
{
|
||||||
g_cursor.redraw = false;
|
g_cursor.redraw = false;
|
||||||
g_state.lgr->on_mouse_event
|
g_state.lgr->on_mouse_event
|
||||||
|
@ -899,10 +899,16 @@ static void handleMouseNormal(double ex, double ey)
|
||||||
|
|
||||||
if (inView)
|
if (inView)
|
||||||
{
|
{
|
||||||
|
if (params.hideMouse)
|
||||||
|
SDL_ShowCursor(SDL_DISABLE);
|
||||||
|
|
||||||
if (g_state.focused)
|
if (g_state.focused)
|
||||||
{
|
{
|
||||||
/* the cursor moved in, enable grab mode */
|
/* the cursor moved in, enable grab mode */
|
||||||
g_cursor.inView = true;
|
g_cursor.inView = true;
|
||||||
|
g_cursor.draw = true;
|
||||||
|
g_cursor.redraw = true;
|
||||||
|
|
||||||
g_cursor.warpState = WARP_STATE_ON;
|
g_cursor.warpState = WARP_STATE_ON;
|
||||||
|
|
||||||
XGrabPointer(
|
XGrabPointer(
|
||||||
|
@ -968,8 +974,16 @@ static void handleMouseNormal(double ex, double ey)
|
||||||
g_state.windowPos.x + g_state.border.x + tx,
|
g_state.windowPos.x + g_state.border.x + tx,
|
||||||
g_state.windowPos.y + g_state.border.y + ty))
|
g_state.windowPos.y + g_state.border.y + ty))
|
||||||
{
|
{
|
||||||
|
if (params.hideMouse)
|
||||||
|
SDL_ShowCursor(SDL_ENABLE);
|
||||||
|
|
||||||
g_cursor.inView = false;
|
g_cursor.inView = false;
|
||||||
|
|
||||||
|
if(!params.alwaysShowCursor)
|
||||||
|
g_cursor.draw = false;
|
||||||
|
|
||||||
|
g_cursor.redraw = true;
|
||||||
|
|
||||||
/* pre-empt the window leave flag if the warp will leave our window */
|
/* pre-empt the window leave flag if the warp will leave our window */
|
||||||
if (tx < 0 || ty < 0 || tx > g_state.windowW || ty > g_state.windowH)
|
if (tx < 0 || ty < 0 || tx > g_state.windowW || ty > g_state.windowH)
|
||||||
g_cursor.inWindow = false;
|
g_cursor.inWindow = false;
|
||||||
|
@ -1050,9 +1064,6 @@ static void handleWindowEnter()
|
||||||
if (!params.useSpiceInput)
|
if (!params.useSpiceInput)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!g_cursor.guest.valid)
|
|
||||||
return;
|
|
||||||
|
|
||||||
g_cursor.draw = true;
|
g_cursor.draw = true;
|
||||||
g_cursor.redraw = true;
|
g_cursor.redraw = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue