Bug 118684

Summary: Lines that are creating going through boxes, images, or text boxes end up as childrent of the box.
Product: [Applications] kst Reporter: Netterfield <netterfield>
Component: generalAssignee: kst
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: 1.x   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:

Description Netterfield 2005-12-20 04:58:00 UTC
Version:           1.2.0_devel (using KDE 3.4.2 Level "b" , SUSE 10.0)
Compiler:          Target: i586-suse-linux
OS:                Linux (i686) release 2.6.13-15.7-default

Start kst.
Draw a rectangle.
Draw a line which starts well outside the rectangle, goes through the rectangle, and ends outside the rectangle.

Only the part of the line which goes through the box is drawn, and the line is a child of the box.

It should be a child of the highest object which fully contains it, which in this case is the tlv.
Comment 1 George Staikos 2005-12-20 06:00:34 UTC
SVN commit 489907 by staikos:

normalize rects before searching for the child to place the object in now that
the rects are actually invalid
BUG: 118684


 M  +1 -1      kstgfxarrowmousehandler.cpp  
 M  +3 -2      kstgfxlinemousehandler.cpp  


--- trunk/extragear/graphics/kst/kst/kstgfxarrowmousehandler.cpp #489906:489907
@@ -84,7 +84,7 @@
     copyDefaults(KstViewObjectPtr(arrow));
     arrow->setFrom(_prevBand.topLeft());
     arrow->setTo(_prevBand.bottomRight());
-    KstViewObjectPtr container = view->findDeepestChild(_prevBand);
+    KstViewObjectPtr container = view->findDeepestChild(_prevBand.normalize());
     if (!container) {
       container = view;
     }
--- trunk/extragear/graphics/kst/kst/kstgfxlinemousehandler.cpp #489906:489907
@@ -22,6 +22,7 @@
 #include "kstgfxlinemousehandler.h"
 #include "kstgfxmousehandlerutils.h"
 #include "kst.h"
+#include "ksdebug.h"
 #include "kstdoc.h"
 #include "kstviewline.h"
 #include "kstviewwidget.h"
@@ -42,7 +43,7 @@
 
 
 void KstGfxLineMouseHandler::pressMove(KstTopLevelViewPtr view, const QPoint& pos, bool shift, const QRect& geom) {
-  Q_UNUSED(geom);
+  Q_UNUSED(geom)
   if (_cancelled || !_mouseDown) {
     return;  
   }
@@ -80,7 +81,7 @@
     copyDefaults(KstViewObjectPtr(line));
     line->setFrom(_prevBand.topLeft());
     line->setTo(_prevBand.bottomRight());
-    KstViewObjectPtr container = view->findDeepestChild(_prevBand);
+    KstViewObjectPtr container = view->findDeepestChild(_prevBand.normalize());
     if (!container) {
       container = view;
     }