summaryrefslogtreecommitdiffstats
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
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
-rw-r--r--chrome/app/nibs/BookmarkBar.xib20
-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
-rw-r--r--chrome/chrome.gyp4
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',