Mouse cursor offset in GPlates

I’ve seen at least one other post about this, but their issue seemed to resolve itself, and the fix they mentioned didn’t work for me.

I’m running on Windows 10, using version 2.3.

The cursor is only offset while in the 3D Orthographic view.
Any help with this or links to posts that may have already solved this issue would be greatly appreciated!

It could be related to this post. There was an issue in one of the libraries we use (Qt) that was fixed by upgrading to a newer version (Qt 5.15.2) for the GPlates 2.3 public release.

However, the user in that post still had problems, and reported that running CCleaner fixed their issue. I think their GPlates could have been using a different Qt5 DLL (than was packaged/installed with GPlates) - and running CCleaner removed that DLL.

Before you run CCleaner, it would be very interesting to know if you get this problem when GPlates is the first application you run after rebooting your computer (so that no other application gets a chance to load a Qt5 DLL before GPlates does) ? That would help confirm whether this was actually the cause.

Disabled all other applications on startup, and the problem persists - downloaded and ran CCleaner as well and it seemingly had no affect.
One thing of interest to note - there was exactly one time I had started the application, and, upon opening an existing project, the issue seemed to be fixed.
I have had no luck replicating that affect since, however, no matter how many times I’ve restarted the program and opened up assorted projects.
So… Not sure what’s up with that.

Yeah it’s quite puzzling. It might be worth trying DLL redirection mentioned in this post (the one involving an empty gplates.exe.local file for unpackaged apps, and a registry setting). I’m not sure if it’ll help (ensure the GPlates-packaged Qt5 DLL is used) but it seems a fairly easy thing to try.

I am having this same exact issue on Windows 10 Pro (version 22H2, OS build 19045.3448) and I can confirm GPlates is using the bundled DLL.

Actually, what is the mouse offset problem you guys are experiencing?

I think there’s two kinds of offset issue. One is a bug in Qt5 (which is fixed in GPlates 2.3; unless another DLL is being used, which doesn’t appear to be the case here). The other is the mouse lat/lon coordinates - this happens when the mouse pointer on the globe and then, while not touching the mouse, alt+tab to another application and then move the mouse a little bit and then alt+tab back to GPlates and it will still show the previous mouse coordinates (not the new coordinates).

Sorry for the slow reply, mine is definitely an offset issue and not the alt tab issue. I have all the symptoms of the mouse offset QT5 problem, but with an up to date copy of gplates that is definitely using the DLL it is bundled with.

Edit: would like to point out that this behavior is inconsistent on my computer.

I’m not 100% sure that those tools report exactly where the DLL is loaded from. Because the DLL search order has a thing called the Loaded-module list where “The system can check to see whether a DLL with the same module name is already loaded into memory (no matter which folder it was loaded from)”. And this has a higher priority than the local DLLs in the GPlates folder. It’s possible the DLL tools are not reporting this redirection. Also this might explain your inconsistent behaviour (eg, sometimes a different qt5 DLL with the mouse offset problem is already loaded in memory, prior to running GPlates, and sometimes not).

However… there’s a thing called DLL redirection (mentioned in the above post) that has a higher priority than the Loaded-module list. So it should guarantee that the above problem does not happen. To use this is quite easy if you want to give it a try (and if it works I’ll include this in the next release)…

You just need to create an empty file called gplates.exe.local and place it in the same directory as gplates.exe. So if you installed GPlates 2.3 from the gplates_2.3.0_win64.exe installer then gplates.exe will be in the C:\Program Files\GPlates\GPlates 2.3.0\ directory (so create an empty gplates.exe.local file in there). You’ll probably need to elevate permissions to do this (might be easiest to create the empty file elsewhere and then copy/move it).

And then run GPlates again.

More information on DLL redirection using .local here.

The DLL redirection does not work for me. I had to replace the bugged DLLs manually. I posted my solution in another thread already. Geometries not placing where mouse cursor is - #5 by Mel753

Ah that’s too bad, I was really hoping that would work.

And thanks for confirming the DLL issue in the other post, and a manual solution (though tedious as you noted), that’s very helpful.