Opened 11 years ago

Closed 11 years ago

#274 closed defect (fixed)

vdigit: cursor and vertex are apart when moving vertices

Reported by: msieczka Owned by: martinl
Priority: major Milestone: 6.4.0
Component: wxGUI Version: svn-develbranch6
Keywords: Cc: grass-dev@…
CPU: All Platform: All

Description

develbranch6 r33238

Simple example:

  1. Digitize a single line with 2 nodes.
  1. Choose "Move vertex" tool.
  1. Hover over a node, select it with the left button and, before 0.5 a second passes, move mouse very quickly.

The vertex and cursor become apart (the distance between them depend on how promptly and quickly you moved the mouse). Pressing the right button to confirm the placement, behaves like if the middle button was pressed actually - the edit is cancelled.

Weird. Looks like if vdigit needs few tens of a second brake between activating the tool and using it. Fixable?

Change History (11)

comment:1 Changed 11 years ago by msieczka

Component: defaultwxGUI

comment:2 Changed 11 years ago by msieczka

Martin

This is quite a bug. On Thursday next week I have live-presentation of GRASS at a surveyors' conference in Poland [1]. Do you think there's a chance the issue will be solved until then? I'd love to show them the new digitizer...

[1]http://www.wodgik.katowice.pl/konferencja/2008/index.html

comment:3 Changed 11 years ago by martinl

Cc: grass-dev@… added
Owner: changed from grass-dev@… to martinl
Status: newassigned

Should be fixed in r33291.

Choose vertex -- left mouse button

Keep button pressed

Move mouse pointer

Release left button

Move mouse pointer

Right mouse button -> vertex moved to the right position

comment:4 in reply to:  3 ; Changed 11 years ago by msieczka

Replying to martinl:

Should be fixed in r33291.

Sort of better but still problems.

Choose vertex -- left mouse button

Keep button pressed

Move mouse pointer

Release left button

Move mouse pointer

If I do it exactly this way, the cursor and edited vertex are almost *always* apart. See the screencast at http://www.sieczka.org/tmp/out_noloop.html for an exmaple.

comment:5 in reply to:  4 ; Changed 11 years ago by martinl

Replying to msieczka:

If I do it exactly this way, the cursor and edited vertex are almost *always* apart. See the screencast at http://www.sieczka.org/tmp/out_noloop.html for an exmaple.

I don't see this behaviour as a bug. Try to confirm action, vertex is moved properly. Standard use

  • left down to select feature or vertex
  • left up
  • move pointer
  • right up to confirm

or use 'apart'

  • left down to select
  • move pointer
  • left up
  • move
  • confirm

M.

comment:6 in reply to:  5 Changed 11 years ago by msieczka

Replying to martinl:

I don't see this behaviour as a bug. Try to confirm action, vertex is moved properly. Standard use

  • left down to select feature or vertex
  • left up
  • move pointer
  • right up to confirm

or use 'apart'

  • left down to select
  • move pointer
  • left up
  • move
  • confirm

Such an "apart mode" should not be possible IMO. What would be the use for it? It only confuses the user.

Could GUI take care of that so that both use ways would work the same?

And still, even with the "standard use mode", if one moves mouse cursor right after selecting a vertex, there is a high likelihood the vertex and cursor become apart. This defect will bring troubles to folks with a fast hand. Digitizers in commercial setups will not be attracted to GRASS for that.

comment:7 Changed 11 years ago by martinl

Priority: criticalmajor

comment:8 Changed 11 years ago by martinl

Resolution: fixed
Status: assignedclosed

Should be already fixed in releasebranch_64/develbranch_6/trunk. Reopen ticket if needed.

comment:9 Changed 11 years ago by msieczka

Resolution: fixed
Status: closedreopened

It's not fixed. After moving the very first vertex digitizer crashes:

Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers
Traceback (most recent call last):
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 1125, in MouseActions

self.OnMouseMoving(event)
  File "/usr/local/grass-6.4.svn/etc/wxpython/gui_modules/ma
pdisp.py", line 2009, in OnMouseMoving

if len(self.vdigitMove['id']) > 0:
TypeError
:
tuple indices must be integers

comment:10 Changed 11 years ago by msieczka

Oh, there seem to be some related fixes in r35033. Checking the out now...

comment:11 Changed 11 years ago by msieczka

Resolution: fixed
Status: reopenedclosed

So it is fixed. Cool.

Note: See TracTickets for help on using tickets.