hrev54500 adds 1 changeset to branch 'master'
old head: 836100d5058d2034874afeaf0a47799cf735ad02
new head: 26d0a387e849f7d7941f33504ba2979a35db01fd
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=26d0a387e849+%5E836100d5058d
----------------------------------------------------------------------------
26d0a387e849: DeskBar raise-to-front: reintroduce fLastClickTime
This was removed in hrev33708 when enabling the "double click to raise"
feature. It results in all clicks after the first one just raising the
team again.
Fixes #8471
[ Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> ]
----------------------------------------------------------------------------
Revision: hrev54500
Commit: 26d0a387e849f7d7941f33504ba2979a35db01fd
URL: https://git.haiku-os.org/haiku/commit/?id=26d0a387e849
Author: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date: Sat Aug 8 13:12:24 2020 UTC
Ticket: https://dev.haiku-os.org/ticket/8471
----------------------------------------------------------------------------
2 files changed, 13 insertions(+), 2 deletions(-)
src/apps/deskbar/ExpandoMenuBar.cpp | 14 ++++++++++++--
src/apps/deskbar/ExpandoMenuBar.h | 1 +
----------------------------------------------------------------------------
diff --git a/src/apps/deskbar/ExpandoMenuBar.cpp
b/src/apps/deskbar/ExpandoMenuBar.cpp
index fa3eca64a1..e63ec59790 100644
--- a/src/apps/deskbar/ExpandoMenuBar.cpp
+++ b/src/apps/deskbar/ExpandoMenuBar.cpp
@@ -96,7 +96,8 @@ TExpandoMenuBar::TExpandoMenuBar(menu_layout layout,
TBarView* barView)
fFirstBuild(true),
fPreviousDragTargetItem(NULL),
fLastMousedOverItem(NULL),
- fLastClickedItem(NULL)
+ fLastClickedItem(NULL),
+ fLastClickTime(0)
{
SetItemMargins(0.0f, 0.0f, 0.0f, 0.0f);
SetFont(be_plain_font);
@@ -333,14 +334,23 @@ TExpandoMenuBar::MouseDown(BPoint where)
// double-click on an item brings the team to front
int32 clicks;
+ bigtime_t clickSpeed = 0;
+ get_click_speed(&clickSpeed);
+ bigtime_t delta = system_time() - fLastClickTime;
if (message->FindInt32("clicks", &clicks) == B_OK && clicks > 1
- && item == menuItem && item == fLastClickedItem) {
+ && item == menuItem && item == fLastClickedItem
+ && delta <= clickSpeed) {
be_roster->ActivateApp((addr_t)item->Teams()->ItemAt(0));
// activate this team
return;
// absorb the message
}
+ // Update fLastClickTime only if we are not already triggering the
+ // double-click action. Otherwise the delay is renewed at every
subsequent
+ // click and they keep triggering the double click action
+ fLastClickTime = system_time();
+
BMenuBar::MouseDown(where);
}
diff --git a/src/apps/deskbar/ExpandoMenuBar.h
b/src/apps/deskbar/ExpandoMenuBar.h
index 372c9e5ce3..facabecbe0 100644
--- a/src/apps/deskbar/ExpandoMenuBar.h
+++ b/src/apps/deskbar/ExpandoMenuBar.h
@@ -129,6 +129,7 @@ private:
TTeamMenuItem* fPreviousDragTargetItem;
BMenuItem* fLastMousedOverItem;
BMenuItem* fLastClickedItem;
+ bigtime_t fLastClickTime;
BList fTeamList;
static bool sDoMonitor;