Bug 214201 - Drag stops when the cursor leaves the globe | missing infinite panning (like Gwenview, Okular)
Summary: Drag stops when the cursor leaves the globe | missing infinite panning (like ...
Status: REOPENED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR wishlist
Target Milestone: some future version
Assignee: marble-bugs
URL:
Keywords:
: 239054 271344 293801 297579 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-11-12 00:17 UTC by Alex Dănilă
Modified: 2018-04-18 15:27 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Dănilă 2009-11-12 00:17:07 UTC
Version:            (using KDE 4.3.2)
OS:                Linux
Installed from:    Debian testing/unstable Packages

Map dragging in Marble is discontinued as soon as the cursor leaves the globe. This happens  when the cursor leaves the globe widget area (most important) or when the zoom level is small and the globe doesn't fill the entire widget space (less important).

It would be nice if the drag wouldn't be lost when the cursor leaves the glove area.

Reproduce:
-open a map (OSM for example)
-zoom in to make the globe fill the glove widget area
-drag the glove moving the cursor up
-notice that the drag is lost when the cursor exits the map widget rectangle.
Comment 1 Dennis Nienhüser 2009-11-12 08:27:32 UTC
What would you expect to happen when leaving the globe while dragging? Currently dragging follows the mouse, i.e. the globe is moved such that the place where the drag operation starts is kept under the mouse cursor (optionally keeping the north pole at the top according to your preferences). This cannot be done anymore when you leave the globe with the cursor. I see a couple of options:

When the mouse leaves the globe (small zoom level):
- stop dragging (current approach)
- execute the appropriate move left/right etc action repeatedly, possibly fixing the mouse position
- Repeatedly execute the last movement delta, i.e. start some kind of automatic globe rotation

When leaving the map widget (large zoom level):
- stop dragging (current approach)
- Repeatedly execute the last movement delta, i.e. start some kind of automatic map movement
- Do it similar to okular when dragging PDF documents out of the window (please try if you don't know what happens): The mouse re-appears at the opposite site of the widget, dragging continues (may be counterintuitive because at that point the position-follows-mouse approach is not true anymore)
Comment 2 Alex Dănilă 2009-11-12 11:19:37 UTC
Hi, I think some sort of automated movement would be best in both situations. 

The other options also sound acceptable, but I believe the automated movement is best. As an alternative option, even simply prohibiting the cursor to leave the globe/widget while dragging will stop the drag loosing, but this is the least wanted option.

Thank you for the insight, I wasn't guessing that actually this has more technical details. Also, please read "globe" whenever you encounter "glove", it's because of fast typing reflexes.
Comment 3 Dennis Nienhüser 2010-05-28 07:51:29 UTC
*** Bug 239054 has been marked as a duplicate of this bug. ***
Comment 4 Richard Hartmann 2010-05-28 08:51:36 UTC
In both cases, I would prefer okular's approach of wrapping around.
Comment 5 Dennis Nienhüser 2011-04-20 20:43:45 UTC
*** Bug 271344 has been marked as a duplicate of this bug. ***
Comment 6 Dennis Nienhüser 2011-04-20 20:44:40 UTC
Quoting bug 271344:

In Gwenview you can move the picture endlessly by dragging it. Once the cursor
reaches one of the window borders, it is automatically moved to the opposite
one so you can drag without having to release and reposition your mouse. I am
really missing this feature in Marble since there is a huge map and if you want
to like track historic railways you have to release and reposition your mouse
all the time.
Comment 7 Dennis Nienhüser 2012-02-10 20:18:17 UTC
*** Bug 293801 has been marked as a duplicate of this bug. ***
Comment 8 Dennis Nienhüser 2012-04-09 09:15:40 UTC
*** Bug 297579 has been marked as a duplicate of this bug. ***
Comment 9 Alex Dănilă 2017-11-30 13:29:56 UTC
Hi, this feature is implemented since long ago. I'll mark it as Resolved.
Comment 10 Vincent de Phily 2017-12-06 00:04:13 UTC
Doesn't work for me, Marble 2.2.20, Frameworks 5.40.0, Qt 5.9.3, xcb.

Maybe there is some misunderstanding about what this bug is about because its scope changed a bit after the first comment:
 * The opening comment asked only to continue draging after the cursor leaves the window/widget, and this is indeed implemented.
 * But the following comments and 3 out of the 4 bugs marked as duplicate asked for draging to continue infinitely, even after the cursor reaches the screen edge, probably by warping the cursor back to the oposite edge, like Okular does. 

That second requirement isn't implemented as far as I can tell, and it makes draging over long distance very cumbersome.
Comment 11 Alex Dănilă 2017-12-09 12:02:44 UTC
You are correct, there are at least 3 functionalities and I was wrong in closing the bug:

1. Drag to continue after leaving the widget/window (which I think I originally reported, and for which I closed the bug);

2. Drag to continue after leaving the globe surface;

3. Drag to continue after the cursor hits the screen edge.