aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/mi
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/mi')
-rw-r--r--xorg-server/mi/mipointer.c16
-rw-r--r--xorg-server/mi/mipointer.h5
2 files changed, 21 insertions, 0 deletions
diff --git a/xorg-server/mi/mipointer.c b/xorg-server/mi/mipointer.c
index 4b9ce0fa5..f11de7da0 100644
--- a/xorg-server/mi/mipointer.c
+++ b/xorg-server/mi/mipointer.c
@@ -452,6 +452,22 @@ miPointerGetScreen(DeviceIntPtr pDev)
return (pPointer) ? pPointer->pScreen : NULL;
}
+/* Controls whether the cursor image should be updated immediately when
+ moved (FALSE) or if something else will be responsible for updating
+ it later (TRUE). Returns current setting.
+ Caller is responsible for calling OsBlockSignal first.
+*/
+Bool
+miPointerSetWaitForUpdate(ScreenPtr pScreen, Bool wait)
+{
+ SetupScreen(pScreen);
+ Bool prevWait = pScreenPriv->waitForUpdate;
+
+ pScreenPriv->waitForUpdate = wait;
+ return prevWait;
+}
+
+
/* Move the pointer on the current screen, and update the sprite. */
static void
miPointerMoved (DeviceIntPtr pDev, ScreenPtr pScreen,
diff --git a/xorg-server/mi/mipointer.h b/xorg-server/mi/mipointer.h
index c48001267..caf505019 100644
--- a/xorg-server/mi/mipointer.h
+++ b/xorg-server/mi/mipointer.h
@@ -139,6 +139,11 @@ extern _X_EXPORT void miPointerSetPosition(
extern _X_EXPORT void miPointerUpdateSprite(
DeviceIntPtr pDev);
+/* Sets whether the sprite should be updated immediately on pointer moves */
+extern _X_EXPORT Bool miPointerSetWaitForUpdate(
+ ScreenPtr pScreen,
+ Bool wait);
+
extern _X_EXPORT DevPrivateKeyRec miPointerPrivKeyRec;
#define miPointerPrivKey (&miPointerPrivKeyRec)