aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRyan Leavengood <leavengood@gmail.com>2012-07-29 22:22:16 -0400
committerRyan Leavengood <leavengood@gmail.com>2012-07-29 22:25:45 -0400
commit45ecce1d57e8fa0f58c0f50627f87924cb87e514 (patch)
tree63a8cff4c36c50dadf3115348d2d3cf909ec746f
parentcc467a28d9814cd4a84a87ada4bc43a1147beccc (diff)
Fix #6978: Add and close tabs on middle mouse down, not up.hrev44432
This reduces perceived latency. One day when I add a tab close undo stack, this will be even better. But generally using the middle mouse button is not accidental.
-rw-r--r--src/apps/webpositive/tabview/TabContainerView.cpp2
-rw-r--r--src/apps/webpositive/tabview/TabManager.cpp17
2 files changed, 5 insertions, 14 deletions
diff --git a/src/apps/webpositive/tabview/TabContainerView.cpp b/src/apps/webpositive/tabview/TabContainerView.cpp
index 7f231e1d9c..cca2380469 100644
--- a/src/apps/webpositive/tabview/TabContainerView.cpp
+++ b/src/apps/webpositive/tabview/TabContainerView.cpp
@@ -138,7 +138,7 @@ TabContainerView::MouseDown(BPoint where)
else {
if ((buttons & B_TERTIARY_MOUSE_BUTTON) != 0) {
// Middle click outside tabs should always open a new tab.
- fClickCount = 2;
+ fController->DoubleClickOutsideTabs();
} else if (clicks > 1)
fClickCount++;
else
diff --git a/src/apps/webpositive/tabview/TabManager.cpp b/src/apps/webpositive/tabview/TabManager.cpp
index f25b67769d..dd9338719b 100644
--- a/src/apps/webpositive/tabview/TabManager.cpp
+++ b/src/apps/webpositive/tabview/TabManager.cpp
@@ -454,7 +454,6 @@ private:
TabManagerController* fController;
bool fOverCloseRect;
bool fClicked;
- bool fCloseOnMouseUp;
};
@@ -464,8 +463,7 @@ WebTabView::WebTabView(TabManagerController* controller)
fIcon(NULL),
fController(controller),
fOverCloseRect(false),
- fClicked(false),
- fCloseOnMouseUp(false)
+ fClicked(false)
{
}
@@ -539,7 +537,8 @@ void
WebTabView::MouseDown(BPoint where, uint32 buttons)
{
if (buttons & B_TERTIARY_MOUSE_BUTTON) {
- fCloseOnMouseUp = true;
+ // Immediately close tab
+ fController->CloseTab(ContainerView()->IndexOf(this));
return;
}
@@ -557,20 +556,12 @@ WebTabView::MouseDown(BPoint where, uint32 buttons)
void
WebTabView::MouseUp(BPoint where)
{
- if (!fClicked && !fCloseOnMouseUp) {
+ if (!fClicked) {
TabView::MouseUp(where);
return;
}
- if (fCloseOnMouseUp && Frame().Contains(where)) {
- fCloseOnMouseUp = false;
- fController->CloseTab(ContainerView()->IndexOf(this));
- // Probably this object is toast now, better return here.
- return;
- }
-
fClicked = false;
- fCloseOnMouseUp = false;
if (_CloseRectFrame(Frame()).Contains(where))
fController->CloseTab(ContainerView()->IndexOf(this));