[haiku-commits] haiku: hrev53944 - src/kits/interface

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 7 Mar 2020 13:48:36 -0500 (EST)

hrev53944 adds 1 changeset to branch 'master'
old head: 5d17f05f5f61dd6df94264f568634297f350590b
new head: 1c9c772967cecd194a702c6f0f70c43d38589088
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=1c9c772967ce+%5E5d17f05f5f61

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

1c9c772967ce: Interface Kit: make BTextControl behave like BeOS
  
  Contents of BTextControl should be not selected if text is directly clicked.
  Selection should be removed if BTextView lose focus.
  
  Change-Id: Ifba914c2ada4fc1aac88205f69a64a4356009469
  Reviewed-on: https://review.haiku-os.org/c/haiku/+/2109
  Reviewed-by: waddlesplash <waddlesplash@xxxxxxxxx>

                                              [ X512 <danger_mail@xxxxxxx> ]

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

Revision:    hrev53944
Commit:      1c9c772967cecd194a702c6f0f70c43d38589088
URL:         https://git.haiku-os.org/haiku/commit/?id=1c9c772967ce
Author:      X512 <danger_mail@xxxxxxx>
Date:        Sun Jan 12 17:12:33 2020 UTC
Committer:   waddlesplash <waddlesplash@xxxxxxxxx>
Commit-Date: Sat Mar  7 18:48:32 2020 UTC

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

3 files changed, 12 insertions(+), 11 deletions(-)
src/kits/interface/TextInput.cpp | 17 ++++++++---------
src/kits/interface/TextInput.h   |  2 +-
src/kits/interface/TextView.cpp  |  4 +++-

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

diff --git a/src/kits/interface/TextInput.cpp b/src/kits/interface/TextInput.cpp
index 65b178ef01..d589bf9437 100644
--- a/src/kits/interface/TextInput.cpp
+++ b/src/kits/interface/TextInput.cpp
@@ -31,7 +31,8 @@ _BTextInput_::_BTextInput_(BRect frame, BRect textRect, 
uint32 resizeMask,
        uint32 flags)
        :
        BTextView(frame, "_input_", textRect, resizeMask, flags),
-       fPreviousText(NULL)
+       fPreviousText(NULL),
+       fInMouseDown(false)
 {
        MakeResizable(true);
 }
@@ -40,7 +41,8 @@ _BTextInput_::_BTextInput_(BRect frame, BRect textRect, 
uint32 resizeMask,
 _BTextInput_::_BTextInput_(BMessage* archive)
        :
        BTextView(archive),
-       fPreviousText(NULL)
+       fPreviousText(NULL),
+       fInMouseDown(false)
 {
        MakeResizable(true);
 }
@@ -72,13 +74,9 @@ _BTextInput_::Archive(BMessage* data, bool deep) const
 void
 _BTextInput_::MouseDown(BPoint where)
 {
-       if (!IsFocus()) {
-               MakeFocus(true);
-               return;
-       }
-
-       // only pass through to base class if we already have focus
+       fInMouseDown = true;
        BTextView::MouseDown(where);
+       fInMouseDown = false;
 }
 
 
@@ -131,7 +129,8 @@ _BTextInput_::MakeFocus(bool state)
 
        if (state) {
                SetInitialText();
-               SelectAll();
+               if (!fInMouseDown)
+                       SelectAll();
        } else {
                if (strcmp(Text(), fPreviousText) != 0)
                        TextControl()->Invoke();
diff --git a/src/kits/interface/TextInput.h b/src/kits/interface/TextInput.h
index 4ca6e7af30..6b1c9a66c3 100644
--- a/src/kits/interface/TextInput.h
+++ b/src/kits/interface/TextInput.h
@@ -52,7 +52,7 @@ private:
                BTextControl    *TextControl();
 
                char                    *fPreviousText;
-               bool                    fBool;
+               bool                    fInMouseDown;
 };
 
 }      // namespace BPrivate
diff --git a/src/kits/interface/TextView.cpp b/src/kits/interface/TextView.cpp
index 30e098a6c7..1ec934023e 100644
--- a/src/kits/interface/TextView.cpp
+++ b/src/kits/interface/TextView.cpp
@@ -787,8 +787,10 @@ BTextView::MakeFocus(bool focus)
                if (!fActive)
                        _Activate();
        } else {
-               if (fActive)
+               if (fActive) {
+                       Select(fCaretOffset, fCaretOffset);
                        _Deactivate();
+               }
        }
 }
 


Other related posts:

  • » [haiku-commits] haiku: hrev53944 - src/kits/interface - waddlesplash