summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorpaul@chromium.org <paul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-14 02:07:19 +0000
committerpaul@chromium.org <paul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-14 02:07:19 +0000
commitf4078cf39908bfada67c0614ffc5ee8e4af765a2 (patch)
treee511f86d53ca420f8a7c6955b1d06e1158e08a4a /chrome/browser
parentea7926af6ae6b237707f8a6186530ee764cc529c (diff)
downloadchromium_src-f4078cf39908bfada67c0614ffc5ee8e4af765a2.zip
chromium_src-f4078cf39908bfada67c0614ffc5ee8e4af765a2.tar.gz
chromium_src-f4078cf39908bfada67c0614ffc5ee8e4af765a2.tar.bz2
Prevent mouse down events in the bookmark bar and download shelf from moving
the parent window around. BUG=19305 (http://crbug.com/19305) TEST=Make the download shelf and/or bookmark bar visible. Clicking and dragging on either one should not move the window around. Review URL: http://codereview.chromium.org/165500 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23409 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r--chrome/browser/cocoa/bookmark_bar_view.h17
-rw-r--r--chrome/browser/cocoa/bookmark_bar_view.mm15
-rw-r--r--chrome/browser/cocoa/bookmark_bar_view_unittest.mm25
-rw-r--r--chrome/browser/cocoa/download_shelf_view.mm6
-rw-r--r--chrome/browser/cocoa/download_shelf_view_unittest.mm25
5 files changed, 88 insertions, 0 deletions
diff --git a/chrome/browser/cocoa/bookmark_bar_view.h b/chrome/browser/cocoa/bookmark_bar_view.h
new file mode 100644
index 0000000..9828113
--- /dev/null
+++ b/chrome/browser/cocoa/bookmark_bar_view.h
@@ -0,0 +1,17 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+//
+// A simple custom NSView for the bookmark bar used to prevent clicking and
+// dragging from moving the browser window.
+
+#ifndef CHROME_BROWSER_COCOA_BOOKMARK_BAR_VIEW_H_
+#define CHROME_BROWSER_COCOA_BOOKMARK_BAR_VIEW_H_
+
+#import <Cocoa/Cocoa.h>
+
+@interface BookmarkBarView : NSView
+@end
+
+#endif // CHROME_BROWSER_COCOA_BOOKMARK_BAR_VIEW_H_
+
diff --git a/chrome/browser/cocoa/bookmark_bar_view.mm b/chrome/browser/cocoa/bookmark_bar_view.mm
new file mode 100644
index 0000000..a7d550f0
--- /dev/null
+++ b/chrome/browser/cocoa/bookmark_bar_view.mm
@@ -0,0 +1,15 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "chrome/browser/cocoa/bookmark_bar_view.h"
+
+@implementation BookmarkBarView
+
+// Mouse down events on the bookmark bar should not allow dragging the parent
+// window around.
+- (BOOL)mouseDownCanMoveWindow {
+ return NO;
+}
+
+@end // @implementation BookmarkBarView
diff --git a/chrome/browser/cocoa/bookmark_bar_view_unittest.mm b/chrome/browser/cocoa/bookmark_bar_view_unittest.mm
new file mode 100644
index 0000000..3ba675a
--- /dev/null
+++ b/chrome/browser/cocoa/bookmark_bar_view_unittest.mm
@@ -0,0 +1,25 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/scoped_nsobject.h"
+#import "chrome/browser/cocoa/bookmark_bar_view.h"
+#import "chrome/browser/cocoa/cocoa_test_helper.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+
+class BookmarkBarViewTest : public testing::Test {
+ public:
+ CocoaTestHelper cocoa_helper_;
+ scoped_nsobject<BookmarkBarView> view_;
+};
+
+// This class only needs to do one thing: prevent mouse down events from moving
+// the parent window around.
+TEST_F(BookmarkBarViewTest, CanDragWindow) {
+ view_.reset([[BookmarkBarView alloc] init]);
+ EXPECT_FALSE([view_.get() mouseDownCanMoveWindow]);
+}
+
+} // namespace
diff --git a/chrome/browser/cocoa/download_shelf_view.mm b/chrome/browser/cocoa/download_shelf_view.mm
index 07e28bc..4d12529 100644
--- a/chrome/browser/cocoa/download_shelf_view.mm
+++ b/chrome/browser/cocoa/download_shelf_view.mm
@@ -46,4 +46,10 @@
NSRectFillUsingOperation(borderRect, NSCompositeSourceOver);
}
+// Mouse down events on the download shelf should not allow dragging the parent
+// window around.
+- (BOOL)mouseDownCanMoveWindow {
+ return NO;
+}
+
@end
diff --git a/chrome/browser/cocoa/download_shelf_view_unittest.mm b/chrome/browser/cocoa/download_shelf_view_unittest.mm
new file mode 100644
index 0000000..7d6431f
--- /dev/null
+++ b/chrome/browser/cocoa/download_shelf_view_unittest.mm
@@ -0,0 +1,25 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "base/scoped_nsobject.h"
+#import "chrome/browser/cocoa/cocoa_test_helper.h"
+#import "chrome/browser/cocoa/download_shelf_view.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+
+class DownloadShelfViewTest : public testing::Test {
+ public:
+ CocoaTestHelper cocoa_helper_;
+ scoped_nsobject<DownloadShelfView> view_;
+};
+
+// This class only needs to do one thing: prevent mouse down events from moving
+// the parent window around.
+TEST_F(DownloadShelfViewTest, CanDragWindow) {
+ view_.reset([[DownloadShelfView alloc] init]);
+ EXPECT_FALSE([view_.get() mouseDownCanMoveWindow]);
+}
+
+} // namespace