diff options
author | paul@chromium.org <paul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-14 02:07:19 +0000 |
---|---|---|
committer | paul@chromium.org <paul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-14 02:07:19 +0000 |
commit | f4078cf39908bfada67c0614ffc5ee8e4af765a2 (patch) | |
tree | e511f86d53ca420f8a7c6955b1d06e1158e08a4a /chrome/browser | |
parent | ea7926af6ae6b237707f8a6186530ee764cc529c (diff) | |
download | chromium_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.h | 17 | ||||
-rw-r--r-- | chrome/browser/cocoa/bookmark_bar_view.mm | 15 | ||||
-rw-r--r-- | chrome/browser/cocoa/bookmark_bar_view_unittest.mm | 25 | ||||
-rw-r--r-- | chrome/browser/cocoa/download_shelf_view.mm | 6 | ||||
-rw-r--r-- | chrome/browser/cocoa/download_shelf_view_unittest.mm | 25 |
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 |