Bug 89691

Summary: moving a class causes the view to center to the moved class (very annoying when the diagram is big enough)
Product: [Applications] umbrello Reporter: Pekka Jääskeläinen <pekka.jaaskelainen>
Component: generalAssignee: Umbrello Development Group <umbrello-devel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian testing   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Pekka Jääskeläinen 2004-09-17 13:08:37 UTC
Version:            (using KDE KDE 3.3.0)
Installed from:    Debian testing/unstable Packages
OS:                Linux

Because this affects usability very much in my opinion, I entered it in the bug report section.

The problem can be seen when you have a big diagram so you have to use scroll bars when zoomed close
enough. If you have a class near the rightmost side of the visible area, you select it and start to move it, Umbrello centers the view to the class that is being moved. This way it gets very irritating to try to move the class left in the diagram because the left part is scrolled out of the visible
area.

Additionally, moving a class to the leftmost part of the visible area doesn't "autoscroll" the canvas,
so one has to scroll manually, try to move the class a bit more to the left and so on. Well, the
autoscrolling part should be in the feature request section probably.

I tried the 16.09.2004 snapshot and the problem is there.
Comment 1 Jonathan Riddell 2004-09-20 19:59:32 UTC
Interesting, automatic scrolling works fine when at 1:1 zoom in but when it's zoomed in it stops working and the widget can jump.

This is likely to do with a coordinate somewhere not being scaled properly.
Comment 2 Brad Markel 2005-04-19 01:09:29 UTC
I also have experienced this problem under Mandrake 10.1 CE and SUSE 9.2 with KDE 3.3 installed.
Comment 3 Oliver Kellogg 2005-04-19 23:41:30 UTC
CVS commit by okellogg: 

BUG:89691 - mouseMove(): Don't base canvas scroll on the inverseWorldMatrix().


  M +2 -2      toolbarstate.cpp   1.9


--- kdesdk/umbrello/umbrello/toolbarstate.cpp  #1.8:1.9
@@ -143,6 +143,6 @@ void ToolBarState::mouseMove(QMouseEvent
         if (m_bIsButtonPressed)
         {
-                int vx = m_pMouseEvent->x();
-                int vy = m_pMouseEvent->y();
+                int vx = ome->x();
+                int vy = ome->y();
                 int contsX = m_pUMLView->contentsX();
                 int contsY = m_pUMLView->contentsY();