Topics

5.2.1 Beta 3.0 Missing and Jumping Cursor


Ian
 

Hi crew, Adam asked me to try to document what I was doing when the cursor went AWOL.

1. After a Move the cursor went missing. I Selected the track pieces, the buffer and the next piece of track on the Pink-ish layer. Moved them. Selected the Icon to "Connect track pieces" then went to select across the unjoined parts. No cursor. But part of the system was working because if you look underneath the big '65' in this image you can see the first of the blue arrows showing where the unconnected track was. 
Bug with cursor.png

2. I went to place a turnout which worked as normal, then I went to grab the second turnout to connect to the first. As I moved up towards the Hot Bar seeking the KATO #4 Left turnout the cursor started jumping like the Mexican Jumping Bean ;)
It came visible again as I moved it higher into the Hot Bar bit turned off as I got to the bottom of the Hot Bar. I wasn't able to click on the track piece until suddenly - after about three clicks, the track icon showed that it was selected.
I repeated the problem in a short movie so you can watch as I demonstrated what is happening. You will need to be in full screen to be able to see the changes taking place in the cursor.

5.2.1 Beta #3.0 - Missing and Jumping Cursor - Watch Video

 
Oh, and this is on Windows 10 if that makes any difference.

--
-- Ian


Adam Richards
 

Ian,
Thanks.

So the first issue is actually somehow induced after Move and before Connect. Connect itself is a bit odd-fashioned and doesn't do anything with the system cursor. I will add a cursor restore before any command starts (or restarts) as a defence against whatever this scenario is. I do

The overall idea was that the system cursor would be superseded by the blue arrows/markers (when in range). And that applies to the drawing surface (not to the hotbar or command buttons, for example). If (somehow) the cursor is suppressed, the window manager will show it as the pointer position passes off the draw surface and remove it again as it passes on. That is what you are seeing in the second case as "jumping". This apparently is not as well handled in Windows as in GTK as there seems to be an overhang from the drawing area before the cursor comes back. So it looks like I need to add a "guard" that force restores the system cursor when within a short distance of the drawing edge. 

What you see instead of the system cursor is the Blue crossed cursor (indicating that a left drag is possible if a click is made).  But in your case, that didn't come on at first because you did drag-and-drop (not supported) rather than a select click and then a click on the drawing surface - so logic never gets fired..  It doesn't go off once you accepted the first track with "space" -> because there is a still a track selected on the hotbar and if you clicked again another one would be added and would be draggable. 

So, I think the safeguards will make sure we have more ways that the cursor comes back. 

Adam

 


Ian
 

Thanks, Adam, I think I follow that. Let me play with it to see if I can get that to work.


On Thu, 8 Oct 2020 at 12:31, Adam Richards <adamjmrichards@...> wrote:

Ian,
Thanks.

So the first issue is actually somehow induced after Move and before Connect. Connect itself is a bit odd-fashioned and doesn't do anything with the system cursor. I will add a cursor restore before any command starts (or restarts) as a defence against whatever this scenario is. I do

The overall idea was that the system cursor would be superseded by the blue arrows/markers (when in range). And that applies to the drawing surface (not to the hotbar or command buttons, for example). If (somehow) the cursor is suppressed, the window manager will show it as the pointer position passes off the draw surface and remove it again as it passes on. That is what you are seeing in the second case as "jumping". This apparently is not as well handled in Windows as in GTK as there seems to be an overhang from the drawing area before the cursor comes back. So it looks like I need to add a "guard" that force restores the system cursor when within a short distance of the drawing edge. 

What you see instead of the system cursor is the Blue crossed cursor (indicating that a left drag is possible if a click is made).  But in your case, that didn't come on at first because you did drag-and-drop (not supported) rather than a select click and then a click on the drawing surface - so logic never gets fired..  It doesn't go off once you accepted the first track with "space" -> because there is a still a track selected on the hotbar and if you clicked again another one would be added and would be draggable. 

So, I think the safeguards will make sure we have more ways that the cursor comes back. 

Adam

 



--
-- Ian