[haiku-commits] haiku: hrev54500 - src/apps/deskbar

  • From: Adrien Destugues <pulkomandy@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 8 Aug 2020 09:19:44 -0400 (EDT)

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;


Other related posts:

  • » [haiku-commits] haiku: hrev54500 - src/apps/deskbar - Adrien Destugues