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 | |
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
-rw-r--r-- | chrome/app/nibs/BookmarkBar.xib | 20 | ||||
-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 | ||||
-rw-r--r-- | chrome/chrome.gyp | 4 |
7 files changed, 106 insertions, 6 deletions
diff --git a/chrome/app/nibs/BookmarkBar.xib b/chrome/app/nibs/BookmarkBar.xib index 2dc0c3d..30beaba 100644 --- a/chrome/app/nibs/BookmarkBar.xib +++ b/chrome/app/nibs/BookmarkBar.xib @@ -2,15 +2,15 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">9J61</string> + <string key="IBDocument.SystemVersion">9L30</string> <string key="IBDocument.InterfaceBuilderVersion">677</string> - <string key="IBDocument.AppKitVersion">949.46</string> + <string key="IBDocument.AppKitVersion">949.54</string> <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="1"/> <integer value="18"/> <integer value="4"/> + <integer value="1"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -46,7 +46,7 @@ <int key="NSvFlags">274</int> <string key="NSFrameSize">{584, 144}</string> <reference key="NSSuperview" ref="620641226"/> - <string key="NSClassName">NSView</string> + <string key="NSClassName">BookmarkBarView</string> </object> <object class="NSButton" id="1071220197"> <reference key="NSNextResponder" ref="620641226"/> @@ -800,7 +800,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{519, 546}, {600, 144}}</string> + <string>{{519, 477}, {600, 144}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -823,7 +823,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{518, 726}, {375, 213}}</string> + <string>{{655, 726}, {375, 213}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -920,6 +920,14 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">BookmarkBarView</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">browser/cocoa/bookmark_bar_view.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">ChromeUILocalizer</string> <string key="superclassName">GTMUILocalizer</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> 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 diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp index 3d299ee..8bad388 100644 --- a/chrome/chrome.gyp +++ b/chrome/chrome.gyp @@ -786,6 +786,8 @@ 'browser/cocoa/bookmark_bar_bridge.mm', 'browser/cocoa/bookmark_bar_controller.h', 'browser/cocoa/bookmark_bar_controller.mm', + 'browser/cocoa/bookmark_bar_view.h', + 'browser/cocoa/bookmark_bar_view.mm', 'browser/cocoa/bookmark_button_cell.h', 'browser/cocoa/bookmark_button_cell.mm', 'browser/cocoa/bookmark_editor_controller.h', @@ -3784,6 +3786,7 @@ 'browser/cocoa/blocked_popup_container_controller_unittest.mm', 'browser/cocoa/bookmark_bar_bridge_unittest.mm', 'browser/cocoa/bookmark_bar_controller_unittest.mm', + 'browser/cocoa/bookmark_bar_view_unittest.mm', 'browser/cocoa/bookmark_button_cell_unittest.mm', 'browser/cocoa/bookmark_editor_controller_unittest.mm', 'browser/cocoa/bookmark_menu_bridge_unittest.mm', @@ -3795,6 +3798,7 @@ 'browser/cocoa/command_observer_bridge_unittest.mm', 'browser/cocoa/custom_home_pages_model_unittest.mm', 'browser/cocoa/download_shelf_mac_unittest.mm', + 'browser/cocoa/download_shelf_view_unittest.mm', 'browser/cocoa/find_bar_bridge_unittest.mm', 'browser/cocoa/find_bar_cocoa_controller_unittest.mm', 'browser/cocoa/find_bar_view_unittest.mm', |