I’m a ThinkPad user, and I have been for quite some years. One of my best arguments, is the TrackPoint, which I would argue, is missing on desktop computers. It has multiple modes such as scrolling etc. which, when used, switches the mouse cursor icon to show which mode is currently active. Though, an annoying problem with the current laptop: sometimes the mouse cursor icon gets stuck in some mode and doesn’t return to the default arrow.
This has been bugging me for quite a while and looks something like this.
Searching for solutions, I have only found people having the same problem as me; and it turns out, it is not only this ThinkPad model.
So… no solution to the problem, and rebooting is hardly a workaround. And, although this was 2019, the problem still exists.
It turns out, if you switch cursor style to another, and back, whenever the problem arises, it will turn back to normal. Still hardly considered a workaround, we could of course write a program that does this for us. My initial idea was to try to detect the issue or, just fix it periodically with a decent interarrival time. But for now, I use a shortcut placed in my quick access task-bar.
Implementation
The code is quite simple: reload the cursor – and there is a call for that. The docs read:
0x0057 SPI_SETCURSORS
Reloads the system cursors. Set the uiParam parameter to zero and the pvParam parameter to NULL.
So the following code will reload the cursor and fix the problem (SPIF_UPDATEINIFILE
is pobably superfluous) :
The full Visual Studio C++ project can be found on github here: https://github.com/boegholm/TPX1MouseCursorFix and a compiled executable here: https://github.com/boegholm/TPX1MouseCursorFix/releases/download/v0.1/TPX1MouseCursorFix.exe
For some reason, the problem doesn’t return quite as often anymore, but it might be dependent on the applications running? who knows…
Thought someone else might enjoy.