Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Side by Side Diff: chrome/browser/cocoa/tab_view.mm

Issue 195043: Start a drag if the tab is dragged off the sides of the window.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/cocoa/tab_view.h" 5 #include "chrome/browser/cocoa/tab_view.h"
6 6
7 #include "chrome/browser/cocoa/nsimage_cache.h" 7 #include "chrome/browser/cocoa/nsimage_cache.h"
8 #include "chrome/browser/cocoa/tab_controller.h" 8 #include "chrome/browser/cocoa/tab_controller.h"
9 #include "chrome/browser/cocoa/tab_window_controller.h" 9 #include "chrome/browser/cocoa/tab_window_controller.h"
10 10
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 NSPoint thisPoint = [NSEvent mouseLocation]; 260 NSPoint thisPoint = [NSEvent mouseLocation];
261 CGFloat stretchiness = thisPoint.y - dragOrigin_.y; 261 CGFloat stretchiness = thisPoint.y - dragOrigin_.y;
262 stretchiness = copysign(sqrtf(fabs(stretchiness))/sqrtf(kTearDistance), 262 stretchiness = copysign(sqrtf(fabs(stretchiness))/sqrtf(kTearDistance),
263 stretchiness) / 2.0; 263 stretchiness) / 2.0;
264 CGFloat offset = thisPoint.x - dragOrigin_.x; 264 CGFloat offset = thisPoint.x - dragOrigin_.x;
265 if (fabsf(offset) > 100) stretchiness = 0; 265 if (fabsf(offset) > 100) stretchiness = 0;
266 [sourceController_ insertPlaceholderForTab:self 266 [sourceController_ insertPlaceholderForTab:self
267 frame:NSOffsetRect(sourceTabFrame_, 267 frame:NSOffsetRect(sourceTabFrame_,
268 offset, 0) 268 offset, 0)
269 yStretchiness:stretchiness]; 269 yStretchiness:stretchiness];
270 270 // Check that we haven't pulled the tab too far to start a drag. This
271 // can include either pulling it too far down, or off the side of the tab
272 // strip that would cause it to no longer be fully visible.
273 BOOL stillVisible = [sourceController_ isTabFullyVisible:self];
271 CGFloat tearForce = fabs(thisPoint.y - dragOrigin_.y); 274 CGFloat tearForce = fabs(thisPoint.y - dragOrigin_.y);
272 if (tearForce > kTearDistance) { 275 if (tearForce > kTearDistance || !stillVisible) {
273 draggingWithinTabStrip_ = NO; 276 draggingWithinTabStrip_ = NO;
274 // When you finally leave the strip, we treat that as the origin. 277 // When you finally leave the strip, we treat that as the origin.
275 dragOrigin_.x = thisPoint.x; 278 dragOrigin_.x = thisPoint.x;
276 } else { 279 } else {
277 return; 280 return;
278 } 281 }
279 } 282 }
280 283
281 NSPoint lastPoint = 284 NSPoint lastPoint =
282 [[theEvent window] convertBaseToScreen:[theEvent locationInWindow]]; 285 [[theEvent window] convertBaseToScreen:[theEvent locationInWindow]];
(...skipping 366 matching lines...) Expand 10 before | Expand all | Expand 10 after
649 [[NSGraphicsContext currentContext] restoreGraphicsState]; 652 [[NSGraphicsContext currentContext] restoreGraphicsState];
650 } 653 }
651 654
652 // Called when the user hits the right mouse button (or control-clicks) to 655 // Called when the user hits the right mouse button (or control-clicks) to
653 // show a context menu. 656 // show a context menu.
654 - (void)rightMouseDown:(NSEvent*)theEvent { 657 - (void)rightMouseDown:(NSEvent*)theEvent {
655 [NSMenu popUpContextMenu:[self menu] withEvent:theEvent forView:self]; 658 [NSMenu popUpContextMenu:[self menu] withEvent:theEvent forView:self];
656 } 659 }
657 660
658 @end 661 @end
OLDNEW
« no previous file with comments | « chrome/browser/cocoa/tab_strip_controller.mm ('k') | chrome/browser/cocoa/tab_window_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698