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());