Bug 95412

Summary: Datamode no longer working when scrolling
Product: [Applications] kst Reporter: Andrew Walker <arwalker>
Component: generalAssignee: kst
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.x   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Andrew Walker 2004-12-18 21:36:35 UTC
Version:           CVS_HEAD (using KDE KDE 3.2.1)
Installed from:    Compiled From Sources
OS:                Linux

STEPS TO REPRODUCE:

Create a plot.
Enter datamode.
Move the cursor to a point in the plor where the datamode marker is visible.
Scroll the plot left or right using the arrow keys.

RESULTS:

The datamode marker remains where it is.

EXPECTED RESULTS:

The datamode marker should move to the point now closest to the cursor.
Comment 1 Thiago Macieira 2004-12-18 22:22:58 UTC
Duplicate post.
Comment 2 Andrew Walker 2004-12-18 23:02:40 UTC
Not a duplicate post.
Comment 3 Thiago Macieira 2004-12-18 23:50:04 UTC
Yes it is. You posted it three times: Bugs 95410, 95412 and 95413. I closed two.
Comment 4 Andrew Walker 2004-12-18 23:52:36 UTC
My apologies for 95410, which I incorrectly posted to ksjembed. However,
95412 and 95413 are different bugs. They appear similar at first glance
but are different.

-----Original Message-----
From: owner@bugs.kde.org [mailto:owner@bugs.kde.org]On Behalf Of Thiago
Macieira
Sent: Saturday, December 18, 2004 2:50 PM
To: arwalker@sumusltd.com
Subject: [Bug 95412] Datamode no longer working when scrolling 


------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.
        
http://bugs.kde.org/show_bug.cgi?id=95412        
thiago.macieira kdemail net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |INVALID



------- Additional Comments From thiago.macieira kdemail net  2004-12-18 23:50 -------
Yes it is. You posted it three times: Bugs 95410, 95412 and 95413. I closed two.

Comment 5 Thiago Macieira 2004-12-18 23:55:42 UTC
You're right. Just a few words different.

Sorry for the inconvenience.
Comment 6 George Staikos 2004-12-19 07:47:59 UTC
On Saturday 18 December 2004 17:55, Thiago Macieira wrote:
> 23:55 ------- You're right. Just a few words different.
>
> Sorry for the inconvenience.

  But they're actually the same bug anyway.

Comment 7 George Staikos 2004-12-20 02:20:34 UTC
CVS commit by staikos: 

Update the datamode marker when scrolling and zooming
BUG: 95413, 95412


  M +12 -5     kst2dplot.cpp   1.336
  M +2 -1      kst2dplot.h   1.130


--- kdeextragear-2/kst/kst/kst2dplot.cpp  #1.335:1.336
@@ -1956,8 +1956,8 @@ void Kst2DPlot::paint(KstPaintType type,
         if (view) {
           _copy_x = _copy_y = KST::NOPOINT;
-          if (GetPlotRegion().contains(_mouse.lastLocation)) {
-            updateMousePos(_mouse.lastLocation);
+          if (GetPlotRegion().contains(_mouse.tracker)) {
+            updateMousePos(_mouse.tracker);
             if (KstApp::inst()->dataMode()) {
-              highlightNearestDataPoint(false, view, _mouse.lastLocation);
+              highlightNearestDataPoint(false, view, _mouse.tracker);
             }
           }
@@ -2954,5 +2954,5 @@ bool Kst2DPlot::mouseHandler() const {
 
 void Kst2DPlot::removeFocus(QPainter& p) {
-  _mouse.lastLocation = QPoint(-1, -1);
+  _mouse.tracker = _mouse.lastLocation = QPoint(-1, -1);
   p.setClipRegion(_lastClipRegion);
   setHasFocus(false);
@@ -3159,4 +3159,6 @@ void Kst2DPlot::mouseMoveEvent(QWidget *
   }
 
+  _mouse.tracker = e->pos();
+
   if (globalZoomType() == LABEL_TOOL) { // HACK
     _mouse.mode = LABEL_TOOL;
@@ -3432,4 +3434,6 @@ void Kst2DPlot::mouseReleaseEvent(QWidge
   static_cast<KstViewWidget*>(view)->viewObject()->releaseMouse(this);
 
+  _mouse.tracker = e->pos();
+
   QRect newg = _mouse.mouseRect();
   if (_mouse.mode == XY_ZOOMBOX) {
@@ -3574,4 +3578,5 @@ KstMouse::KstMouse()
   minMove = 2;
   lastLocation = QPoint(-1, -1);
+  tracker = QPoint(-1, -1);
 }
 
@@ -3638,5 +3643,5 @@ void Kst2DPlot::zoomRectUpdate(QWidget *
 void Kst2DPlot::setCursorForMode(QWidget *view) {
   Q_ASSERT(false);
-  setCursorForMode(view, _mouse.mode, _mouse.lastLocation);
+  setCursorForMode(view, _mouse.mode, _mouse.tracker);
 }
 
@@ -4588,4 +4593,6 @@ void Kst2DPlot::dropEvent(QWidget *view,
   }
 
+  _mouse.tracker = e->pos();
+
   if (accept) {
     KstApp::inst()->document()->setModified();

--- kdeextragear-2/kst/kst/kst2dplot.h  #1.129:1.130
@@ -61,5 +61,6 @@ struct KstMouse {
   KstMouseModeType mode;
   int label, minMove;
-  QPoint lastLocation, pressLocation;
+  QPoint lastLocation, pressLocation;  // for zooming primarily
+  QPoint tracker; // for tracking the mouse location
   QRect plotGeometry;
   bool zooming() const;