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