[haiku-commits] haiku: hrev44534 - src/kits/tracker

  • From: stpere@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 15 Aug 2012 07:29:39 +0200 (CEST)

hrev44534 adds 1 changeset to branch 'master'
old head: 5c4ceff3638e6e8dd38f056b638b9b1ca57e1ddb
new head: c38375376d0190b7aec2c25ed691123395d0fcb6

----------------------------------------------------------------------------

c383753: Tracker: TextWidget editing flaws
  
  TextWidget tried to detect if the editing box would span outside the PoseView,
  but it was using an hardcoded value of 1 for the minimum left value.  But in 
Icon mode,
  negative values can occur.  Change to use the view's origin (top left corner 
of the view).

                                [ Philippe Saint-Pierre <stpere@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev44534
Commit:      c38375376d0190b7aec2c25ed691123395d0fcb6
URL:         http://cgit.haiku-os.org/haiku/commit/?id=c383753
Author:      Philippe Saint-Pierre <stpere@xxxxxxxxx>
Date:        Wed Aug 15 05:25:23 2012 UTC

----------------------------------------------------------------------------

3 files changed, 17 insertions(+), 4 deletions(-)
src/kits/tracker/PoseView.cpp   |   10 ++++++++++
src/kits/tracker/PoseView.h     |    1 +
src/kits/tracker/TextWidget.cpp |   10 ++++++----

----------------------------------------------------------------------------

diff --git a/src/kits/tracker/PoseView.cpp b/src/kits/tracker/PoseView.cpp
index 0060b32..54e8047 100644
--- a/src/kits/tracker/PoseView.cpp
+++ b/src/kits/tracker/PoseView.cpp
@@ -7149,6 +7149,16 @@ BPoseView::SetTextWidgetToCheck(BTextWidget* widget, 
BTextWidget* old)
 }
 
 
+BPoint
+BPoseView::Origin()
+{
+       if (ViewMode() == kListMode)
+               return fViewState->ListOrigin();
+
+       return fViewState->IconOrigin();
+}
+
+
 void
 BPoseView::MouseUp(BPoint where)
 {
diff --git a/src/kits/tracker/PoseView.h b/src/kits/tracker/PoseView.h
index ffd08fd..c17cce2 100644
--- a/src/kits/tracker/PoseView.h
+++ b/src/kits/tracker/PoseView.h
@@ -426,6 +426,7 @@ class BPoseView : public BView {
                virtual void AdaptToDesktopIntegrationChange(BMessage*);
 
                void SetTextWidgetToCheck(BTextWidget*, BTextWidget* = NULL);
+               BPoint Origin();
 
        protected:
                // view setup
diff --git a/src/kits/tracker/TextWidget.cpp b/src/kits/tracker/TextWidget.cpp
index 636b4f5..62d252b 100644
--- a/src/kits/tracker/TextWidget.cpp
+++ b/src/kits/tracker/TextWidget.cpp
@@ -381,12 +381,14 @@ BTextWidget::StartEdit(BRect bounds, BPoseView* view, 
BPose* pose)
        textRect.bottom--;
        textView->SetTextRect(textRect);
 
+       BPoint origin = view->Origin();
        textRect = view->Bounds();
+
        bool hitBorder = false;
-       if (rect.left < 1)
-               rect.left = 1, hitBorder = true;
-       if (rect.right > textRect.right)
-               rect.right = textRect.right - 2, hitBorder = true;
+       if (rect.left <= origin.x)
+               rect.left = origin.x + 1, hitBorder = true;
+       if (rect.right >= textRect.right)
+               rect.right = textRect.right - 1, hitBorder = true;
 
        textView->MoveTo(rect.LeftTop());
        textView->ResizeTo(rect.Width(), rect.Height());


Other related posts:

  • » [haiku-commits] haiku: hrev44534 - src/kits/tracker - stpere