Hi folks,
Just wanted to check that I've not missed something here.
I'm on a 3:1 HiDPI display. What I've observed is that I have a far harder time selecting elements in the Sketcher than I see people have in YouTube tutorials. I click and click and click and things just don't get selected. What I believe is happening is that I'm incapable of clicking without subtly moving the mouse between mouse-down and mouse-up when I select an element, and that means my action registers as a drag, not as a click. The net result is that the element I'm trying to select remains unselected, so I have to try again. Several times, usually. Because I'm on a high-ratio display, I often can't visually see the mouse motion that I think is registering, but the behaviour is the same when I can see some movement.
I've dug a little into the code, and I can see that Gesture and MayaGesture both call QApplication::startDragDistance() (https://github.com/FreeCAD/FreeCAD/blob ... le.cpp#L92) but the other interaction styles don't. From that, my assumption would be that those two orbit styles would work better, and subjectively that does seem to be the case. If I switch to MayaGesture, selecting Sketcher elements does feel less frustrating, but I could easily be placebo'ing myself.
Now, I can't see any global preferences for drag thresholds anywhere. It might be that I've just not found them. So, two questions: first, am I right in my assumption that if a selected orbit style does not use QApplication::startDragDistance(), then the implicit drag threshold is zero, and any mouse movement bigger than a pixel triggers a drag? And second, if that is the case, is there a change that can be made globally to introduce a drag threshold configuration?
HiDPI and drag thresholds
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
-
- Posts: 48
- Joined: Wed Feb 10, 2021 4:35 pm
Re: HiDPI and drag thresholds
No problems here on a Retina 3072x1920 display.
OS: macOS 10.16
Word size of FreeCAD: 64-bit
Version: 0.20.25429 (Git)
Build type: Release
Branch: master
Hash: acce57a25d82b0408fa07b9452ed31c8a06c7a1b
Python version: 3.9.6
Qt version: 5.12.9
Coin version: 4.0.0
OCC version: 7.5.2
Locale: C/Default (C)
(Not sure if this is the right forum.)
OS: macOS 10.16
Word size of FreeCAD: 64-bit
Version: 0.20.25429 (Git)
Build type: Release
Branch: master
Hash: acce57a25d82b0408fa07b9452ed31c8a06c7a1b
Python version: 3.9.6
Qt version: 5.12.9
Coin version: 4.0.0
OCC version: 7.5.2
Locale: C/Default (C)
(Not sure if this is the right forum.)
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
-
- Posts: 48
- Joined: Wed Feb 10, 2021 4:35 pm
Re: HiDPI and drag thresholds
Which input style do you use, and what pointing device?
Oh, should probably mention: I'm on Windows 10.
Oh, should probably mention: I'm on Windows 10.
Re: HiDPI and drag thresholds
Input device: touch pad; Mouse model: Gesture.regularfry wrote: ↑Sun Aug 22, 2021 12:10 pm Which input style do you use, and what pointing device?
You should show your full FreeCAD infos.Oh, should probably mention: I'm on Windows 10.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
-
- Posts: 48
- Joined: Wed Feb 10, 2021 4:35 pm
Re: HiDPI and drag thresholds
OS: Windows 10 Version 2009
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24291 (Git)
Build type: Release
Branch: releases/FreeCAD-0-19
Hash: 7b5e18a0759de778b74d3a5c17eba9cb815035ac
Python version: 3.8.6+
Qt version: 5.15.2
Coin version: 4.0.1
OCC version: 7.5.0
Locale: English/United Kingdom (en_GB)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24291 (Git)
Build type: Release
Branch: releases/FreeCAD-0-19
Hash: 7b5e18a0759de778b74d3a5c17eba9cb815035ac
Python version: 3.8.6+
Qt version: 5.15.2
Coin version: 4.0.1
OCC version: 7.5.0
Locale: English/United Kingdom (en_GB)
-
- Posts: 48
- Joined: Wed Feb 10, 2021 4:35 pm
Re: HiDPI and drag thresholds
Right, that makes sense then: Gesture is one that calls startDragDistance. If you try a mouse, and pick (for instance) Blender style, do you notice any difference?chrisb wrote: ↑Sun Aug 22, 2021 12:21 pmInput device: touch pad; Mouse model: Gesture.regularfry wrote: ↑Sun Aug 22, 2021 12:10 pm Which input style do you use, and what pointing device?
Re: HiDPI and drag thresholds
No difference, it is as fast as before.regularfry wrote: ↑Sun Aug 22, 2021 1:46 pm If you try a mouse, and pick (for instance) Blender style, do you notice any difference?
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
-
- Posts: 48
- Joined: Wed Feb 10, 2021 4:35 pm
Re: HiDPI and drag thresholds
Interesting choice of words: my problem isn't speed, it's reliability.
I clearly need to dig into this a little more to prove out what I'm seeing, but it's absolutely consistent with the fact that MayaGestureNavigationStyle.cpp is processing mouseMoveThreshold and BlenderNavigationStyle.cpp has no equivalent. That implies there's zero drag threshold on any of the navigation styles which don't handle it explicitly, so less than perfect hardware (or less than perfect fine motor control, for that matter) is likely to be problematic.
I clearly need to dig into this a little more to prove out what I'm seeing, but it's absolutely consistent with the fact that MayaGestureNavigationStyle.cpp is processing mouseMoveThreshold and BlenderNavigationStyle.cpp has no equivalent. That implies there's zero drag threshold on any of the navigation styles which don't handle it explicitly, so less than perfect hardware (or less than perfect fine motor control, for that matter) is likely to be problematic.
Re: HiDPI and drag thresholds
That's certainly how the code reads to me: the MayaGestureNavigation, for example, has a huge amount of code that works to separate out the various possible mouse events, and to re-synthesize clicks if it accidentally ate them. I'd say that this problem is probably fixable, but it won't be trivial to do, and is going to require significant testing.