[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/plasma/private
From:       Marco Martin <notmart () gmail ! com>
Date:       2010-04-24 19:49:41
Message-ID: 20100424194941.9538EAC8A3 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1118457 by mart:

snap with real center


 M  +24 -23    internaltoolbox.cpp  


--- trunk/KDE/kdelibs/plasma/private/internaltoolbox.cpp #1118456:1118457
@@ -304,34 +304,35 @@
     int distanceToTop = newPos.y() - d->dragStartRelative.y();
     int distanceToBottom = areaHeight - h - distanceToTop;
 
-    int distancetoHorizontalMiddle = qAbs(newPos.x() - areaWidth/2);
-    int distancetoVerticalMiddle = qAbs(newPos.y() - areaHeight/2);
+    int distancetoHorizontalMiddle = qAbs((newPos.x() + \
boundingRect().size().width()/2) - areaWidth/2 - d->dragStartRelative.x()); +    int \
distancetoVerticalMiddle = qAbs((newPos.y() + boundingRect().size().height()/2) - \
areaHeight/2 - d->dragStartRelative.y());  
-    // decide which border is the nearest
-    if (distanceToLeft < distanceToTop && distanceToLeft < distanceToRight &&
-        distanceToLeft < distanceToBottom ) {
-        x = 0;
-        y = (newPos.y() - d->dragStartRelative.y());
-    } else if (distanceToRight < distanceToTop && distanceToRight < distanceToLeft \
                &&
-               distanceToRight < distanceToBottom) {
-        x = areaWidth - w;
-        y = (newPos.y() - d->dragStartRelative.y());
-    } else if (distanceToTop < distanceToLeft && distanceToTop < distanceToRight &&
-               distanceToTop < distanceToBottom ) {
-        y = 0;
-        x = (newPos.x() - d->dragStartRelative.x());
-    } else if (distanceToBottom < distanceToLeft && distanceToBottom < \
                distanceToRight &&
-               distanceToBottom < distanceToTop) {
-        y = areaHeight - h;
-        x = (newPos.x() - d->dragStartRelative.x());
-    }
-
     if (distancetoHorizontalMiddle < 10) {
-        x = areaWidth/2 - d->dragStartRelative.x();
+        x = areaWidth/2 - boundingRect().size().width()/2;
     } else if (distancetoVerticalMiddle < 10) {
-        y = areaHeight/2 - d->dragStartRelative.y();
+        y = areaHeight/2 - boundingRect().size().height()/2;
+    } else {
+        // decide which border is the nearest
+        if (distanceToLeft < distanceToTop && distanceToLeft < distanceToRight &&
+            distanceToLeft < distanceToBottom ) {
+            x = 0;
+            y = (newPos.y() - d->dragStartRelative.y());
+        } else if (distanceToRight < distanceToTop && distanceToRight < \
distanceToLeft && +                distanceToRight < distanceToBottom) {
+            x = areaWidth - w;
+            y = (newPos.y() - d->dragStartRelative.y());
+        } else if (distanceToTop < distanceToLeft && distanceToTop < distanceToRight \
&& +                distanceToTop < distanceToBottom ) {
+            y = 0;
+            x = (newPos.x() - d->dragStartRelative.x());
+        } else if (distanceToBottom < distanceToLeft && distanceToBottom < \
distanceToRight && +                distanceToBottom < distanceToTop) {
+            y = areaHeight - h;
+            x = (newPos.x() - d->dragStartRelative.x());
+        }
     }
 
+
     x = qBound(0, x, areaWidth - w);
     y = qBound(0, y, areaHeight - h);
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic