| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #import "chrome/browser/ui/cocoa/tabs/tab_strip_drag_controller.h" | 5 #import "chrome/browser/ui/cocoa/tabs/tab_strip_drag_controller.h" |
| 6 | 6 |
| 7 #include <Carbon/Carbon.h> | 7 #include <Carbon/Carbon.h> |
| 8 | 8 |
| 9 #include "base/mac/scoped_cftyperef.h" | 9 #include "base/mac/scoped_cftyperef.h" |
| 10 #import "base/mac/sdk_forward_declarations.h" | 10 #import "base/mac/sdk_forward_declarations.h" |
| (...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 358 origin.x = (1 - tearProgress) * tearOrigin_.x + tearProgress * origin.x; | 358 origin.x = (1 - tearProgress) * tearOrigin_.x + tearProgress * origin.x; |
| 359 origin.y = (1 - tearProgress) * tearOrigin_.y + tearProgress * origin.y; | 359 origin.y = (1 - tearProgress) * tearOrigin_.y + tearProgress * origin.y; |
| 360 } | 360 } |
| 361 | 361 |
| 362 if (targetController_) { | 362 if (targetController_) { |
| 363 // In order to "snap" two windows of different sizes together at their | 363 // In order to "snap" two windows of different sizes together at their |
| 364 // toolbar, we can't just use the origin of the target frame. We also have | 364 // toolbar, we can't just use the origin of the target frame. We also have |
| 365 // to take into consideration the difference in height. | 365 // to take into consideration the difference in height. |
| 366 NSRect targetFrame = [[targetController_ window] frame]; | 366 NSRect targetFrame = [[targetController_ window] frame]; |
| 367 NSRect sourceFrame = [dragWindow_ frame]; | 367 NSRect sourceFrame = [dragWindow_ frame]; |
| 368 origin.y = NSMinY(targetFrame) + | 368 origin.y = NSMinY(targetFrame) + [targetController_ menubarOffset] + |
| 369 (NSHeight(targetFrame) - NSHeight(sourceFrame)); | 369 (NSHeight(targetFrame) - NSHeight(sourceFrame)); |
| 370 } | 370 } |
| 371 [dragWindow_ setFrameOrigin: | 371 [dragWindow_ setFrameOrigin: |
| 372 NSMakePoint(origin.x + horizDragOffset_, origin.y)]; | 372 NSMakePoint(origin.x + horizDragOffset_, origin.y)]; |
| 373 | 373 |
| 374 // If we're not hovering over any window, make the window fully | 374 // If we're not hovering over any window, make the window fully |
| 375 // opaque. Otherwise, find where the tab might be dropped and insert | 375 // opaque. Otherwise, find where the tab might be dropped and insert |
| 376 // a placeholder so it appears like it's part of that window. | 376 // a placeholder so it appears like it's part of that window. |
| 377 if (targetController_) { | 377 if (targetController_) { |
| 378 if (![[targetController_ window] isKeyWindow]) | 378 if (![[targetController_ window] isKeyWindow]) |
| 379 [[targetController_ window] orderFront:nil]; | 379 [[targetController_ window] orderFront:nil]; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 439 // into any existing window. | 439 // into any existing window. |
| 440 [targetController_ moveTabViews:[draggedController_ tabViews] | 440 [targetController_ moveTabViews:[draggedController_ tabViews] |
| 441 fromController:draggedController_]; | 441 fromController:draggedController_]; |
| 442 // Force redraw to avoid flashes of old content before returning to event | 442 // Force redraw to avoid flashes of old content before returning to event |
| 443 // loop. | 443 // loop. |
| 444 [[targetController_ window] display]; | 444 [[targetController_ window] display]; |
| 445 [targetController_ showWindow:nil]; | 445 [targetController_ showWindow:nil]; |
| 446 [draggedController_ removeOverlay]; | 446 [draggedController_ removeOverlay]; |
| 447 } else { | 447 } else { |
| 448 // Only move the window around on screen. Make sure it's set back to | 448 // Only move the window around on screen. Make sure it's set back to |
| 449 // normal state (fully opaque, has shadow, has key, etc). | 449 // normal state (fully opaque, has shadow, has key, in fullscreen if |
| 450 // appropriate, etc). |
| 451 [draggedController_ |
| 452 detachedWindowEnterFullscreenIfNeeded:sourceController_]; |
| 453 |
| 450 [draggedController_ removeOverlay]; | 454 [draggedController_ removeOverlay]; |
| 451 // Don't want to re-show the window if it was closed during the drag. | 455 // Don't want to re-show the window if it was closed during the drag. |
| 452 if ([dragWindow_ isVisible]) { | 456 if ([dragWindow_ isVisible]) { |
| 453 [dragWindow_ setAlphaValue:1.0]; | 457 [dragWindow_ setAlphaValue:1.0]; |
| 454 [dragOverlay_ setHasShadow:NO]; | 458 [dragOverlay_ setHasShadow:NO]; |
| 455 [dragWindow_ setHasShadow:YES]; | 459 [dragWindow_ setHasShadow:YES]; |
| 456 [dragWindow_ makeKeyAndOrderFront:nil]; | 460 [dragWindow_ makeKeyAndOrderFront:nil]; |
| 457 } | 461 } |
| 458 [[draggedController_ window] setLevel:NSNormalWindowLevel]; | 462 [[draggedController_ window] setLevel:NSNormalWindowLevel]; |
| 459 [draggedController_ removePlaceholder]; | 463 [draggedController_ removePlaceholder]; |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 [[targetController_ window] makeMainWindow]; | 559 [[targetController_ window] makeMainWindow]; |
| 556 } else { | 560 } else { |
| 557 [dragWindow_ setAlphaValue:0.5]; | 561 [dragWindow_ setAlphaValue:0.5]; |
| 558 [[draggedController_ overlayWindow] setHasShadow:NO]; | 562 [[draggedController_ overlayWindow] setHasShadow:NO]; |
| 559 [[draggedController_ window] makeMainWindow]; | 563 [[draggedController_ window] makeMainWindow]; |
| 560 } | 564 } |
| 561 chromeIsVisible_ = shouldBeVisible; | 565 chromeIsVisible_ = shouldBeVisible; |
| 562 } | 566 } |
| 563 | 567 |
| 564 @end | 568 @end |
| OLD | NEW |