mirror of
				https://github.com/gnif/LookingGlass.git
				synced 2025-11-04 14:41:55 +00:00 
			
		
		
		
	X11 mouse is invisible even if hideCursor is false
x11Init assumes you're going to be hiding the mouse, so defines the cursor unconditionally.
This commit is contained in:
		@@ -58,6 +58,7 @@
 | 
			
		||||
#define _NET_WM_STATE_TOGGLE 2
 | 
			
		||||
 | 
			
		||||
struct X11DSState x11;
 | 
			
		||||
struct LG_DisplayServerOps LGDS_X11;
 | 
			
		||||
 | 
			
		||||
struct MwmHints
 | 
			
		||||
{
 | 
			
		||||
@@ -86,6 +87,7 @@ static int  x11EventThread(void * unused);
 | 
			
		||||
static void x11XInputEvent(XGenericEventCookie *cookie);
 | 
			
		||||
static void x11XPresentEvent(XGenericEventCookie *cookie);
 | 
			
		||||
static void x11GrabPointer(void);
 | 
			
		||||
static void x11NoSetPointer(LG_DSPointer pointer);
 | 
			
		||||
 | 
			
		||||
static void x11DoPresent(uint64_t msc)
 | 
			
		||||
{
 | 
			
		||||
@@ -643,8 +645,12 @@ static bool x11Init(const LG_DSInitParams params)
 | 
			
		||||
      x11.cursors[i] = XcursorLibraryLoadCursor(x11.display, fallbackLookup[i]);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* default to the square cursor */
 | 
			
		||||
  XDefineCursor(x11.display, x11.window, x11.cursors[LG_POINTER_SQUARE]);
 | 
			
		||||
  /* leave the mouse alone if the user requests it. */
 | 
			
		||||
 | 
			
		||||
  if (params.hideMouse)
 | 
			
		||||
      XDefineCursor(x11.display, x11.window, x11.cursors[LG_POINTER_SQUARE]);
 | 
			
		||||
  else
 | 
			
		||||
      LGDS_X11.setPointer = x11NoSetPointer;
 | 
			
		||||
 | 
			
		||||
  if (x11.jitRender)
 | 
			
		||||
  {
 | 
			
		||||
@@ -1657,6 +1663,9 @@ static void x11SetPointer(LG_DSPointer pointer)
 | 
			
		||||
  XDefineCursor(x11.display, x11.window, x11.cursors[pointer]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void x11NoSetPointer(LG_DSPointer pointer)
 | 
			
		||||
{}
 | 
			
		||||
 | 
			
		||||
static void x11PrintGrabError(const char * type, int dev, Status ret)
 | 
			
		||||
{
 | 
			
		||||
  const char * errStr;
 | 
			
		||||
 
 | 
			
		||||
@@ -97,6 +97,8 @@ typedef struct LG_DSInitParams
 | 
			
		||||
  // x11 needs to know if this is in use so we can decide to setup for
 | 
			
		||||
  // presentation times
 | 
			
		||||
  bool jitRender;
 | 
			
		||||
  // x11 needs this early to not override the defaults.
 | 
			
		||||
  bool hideMouse;
 | 
			
		||||
}
 | 
			
		||||
LG_DSInitParams;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1305,7 +1305,8 @@ static int lg_run(void)
 | 
			
		||||
    .borderless          = g_params.borderless,
 | 
			
		||||
    .maximize            = g_params.maximize,
 | 
			
		||||
    .opengl              = needsOpenGL,
 | 
			
		||||
    .jitRender           = g_params.jitRender
 | 
			
		||||
    .jitRender           = g_params.jitRender,
 | 
			
		||||
    .hideMouse           = g_params.hideMouse
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  g_state.dsInitialized = g_state.ds->init(params);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user