| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_view.h" | 5 #import "chrome/browser/ui/cocoa/tabs/tab_view.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #import "base/mac/mac_util.h" | 8 #import "base/mac/mac_util.h" |
| 9 #include "base/mac/scoped_cftyperef.h" | 9 #include "base/mac/scoped_cftyperef.h" |
| 10 #include "chrome/browser/themes/theme_service.h" | 10 #include "chrome/browser/themes/theme_service.h" |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 // don't have to worry about mouse ups. | 250 // don't have to worry about mouse ups. |
| 251 if (closeButtonActive && [controller_ inRapidClosureMode]) { | 251 if (closeButtonActive && [controller_ inRapidClosureMode]) { |
| 252 NSPoint hitLocation = [[self superview] convertPoint:downLocation | 252 NSPoint hitLocation = [[self superview] convertPoint:downLocation |
| 253 fromView:nil]; | 253 fromView:nil]; |
| 254 if ([self hitTest:hitLocation] == closeButton_) { | 254 if ([self hitTest:hitLocation] == closeButton_) { |
| 255 [closeButton_ mouseDown:theEvent]; | 255 [closeButton_ mouseDown:theEvent]; |
| 256 return; | 256 return; |
| 257 } | 257 } |
| 258 } | 258 } |
| 259 | 259 |
| 260 // Fire the action to select the tab. | |
| 261 if ([[controller_ target] respondsToSelector:[controller_ action]]) | |
| 262 [[controller_ target] performSelector:[controller_ action] | |
| 263 withObject:self]; | |
| 264 | |
| 265 [self resetDragControllers]; | 260 [self resetDragControllers]; |
| 266 | 261 |
| 267 // Resolve overlay back to original window. | 262 // Resolve overlay back to original window. |
| 268 sourceWindow_ = [self window]; | 263 sourceWindow_ = [self window]; |
| 269 if ([sourceWindow_ isKindOfClass:[NSPanel class]]) { | 264 if ([sourceWindow_ isKindOfClass:[NSPanel class]]) { |
| 270 sourceWindow_ = [sourceWindow_ parentWindow]; | 265 sourceWindow_ = [sourceWindow_ parentWindow]; |
| 271 } | 266 } |
| 272 | 267 |
| 273 sourceWindowFrame_ = [sourceWindow_ frame]; | 268 sourceWindowFrame_ = [sourceWindow_ frame]; |
| 274 sourceTabFrame_ = [self frame]; | 269 sourceTabFrame_ = [self frame]; |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 540 // positioning. If not, we want to show it so it looks like a new window will | 535 // positioning. If not, we want to show it so it looks like a new window will |
| 541 // be realized. | 536 // be realized. |
| 542 BOOL chromeShouldBeVisible = targetController_ == nil; | 537 BOOL chromeShouldBeVisible = targetController_ == nil; |
| 543 [self setWindowBackgroundVisibility:chromeShouldBeVisible]; | 538 [self setWindowBackgroundVisibility:chromeShouldBeVisible]; |
| 544 } | 539 } |
| 545 | 540 |
| 546 - (void)mouseUp:(NSEvent*)theEvent { | 541 - (void)mouseUp:(NSEvent*)theEvent { |
| 547 // The drag/click is done. If the user dragged the mouse, finalize the drag | 542 // The drag/click is done. If the user dragged the mouse, finalize the drag |
| 548 // and clean up. | 543 // and clean up. |
| 549 | 544 |
| 545 // Fire the action to select the tab. |
| 546 if ([[controller_ target] respondsToSelector:[controller_ action]]) |
| 547 [[controller_ target] performSelector:[controller_ action] |
| 548 withObject:self]; |
| 549 |
| 550 // Special-case this to keep the logic below simpler. | 550 // Special-case this to keep the logic below simpler. |
| 551 if (moveWindowOnDrag_) | 551 if (moveWindowOnDrag_) |
| 552 return; | 552 return; |
| 553 | 553 |
| 554 // Cancel any delayed -mouseDragged: requests that may still be pending. | 554 // Cancel any delayed -mouseDragged: requests that may still be pending. |
| 555 [NSObject cancelPreviousPerformRequestsWithTarget:self]; | 555 [NSObject cancelPreviousPerformRequestsWithTarget:self]; |
| 556 | 556 |
| 557 // TODO(pinkerton): http://crbug.com/25682 demonstrates a way to get here by | 557 // TODO(pinkerton): http://crbug.com/25682 demonstrates a way to get here by |
| 558 // some weird circumstance that doesn't first go through mouseDown:. We | 558 // some weird circumstance that doesn't first go through mouseDown:. We |
| 559 // really shouldn't go any farther. | 559 // really shouldn't go any farther. |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 740 | 740 |
| 741 // Draw the top stroke. | 741 // Draw the top stroke. |
| 742 [context saveGraphicsState]; | 742 [context saveGraphicsState]; |
| 743 [borderColor set]; | 743 [borderColor set]; |
| 744 [path setLineWidth:1.0]; | 744 [path setLineWidth:1.0]; |
| 745 [path stroke]; | 745 [path stroke]; |
| 746 [context restoreGraphicsState]; | 746 [context restoreGraphicsState]; |
| 747 | 747 |
| 748 // Mimic the tab strip's bottom border, which consists of a dark border | 748 // Mimic the tab strip's bottom border, which consists of a dark border |
| 749 // and light highlight. | 749 // and light highlight. |
| 750 if (!selected) { | 750 if (![controller_ active]) { |
| 751 [path addClip]; | 751 [path addClip]; |
| 752 NSRect borderRect = rect; | 752 NSRect borderRect = rect; |
| 753 borderRect.origin.y = 1; | 753 borderRect.origin.y = 1; |
| 754 borderRect.size.height = 1; | 754 borderRect.size.height = 1; |
| 755 [borderColor set]; | 755 [borderColor set]; |
| 756 NSRectFillUsingOperation(borderRect, NSCompositeSourceOver); | 756 NSRectFillUsingOperation(borderRect, NSCompositeSourceOver); |
| 757 | 757 |
| 758 borderRect.origin.y = 0; | 758 borderRect.origin.y = 0; |
| 759 [highlightColor set]; | 759 [highlightColor set]; |
| 760 NSRectFillUsingOperation(borderRect, NSCompositeSourceOver); | 760 NSRectFillUsingOperation(borderRect, NSCompositeSourceOver); |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1027 controlPoint1:NSMakePoint(topRight.x + bottomControlPointInset, | 1027 controlPoint1:NSMakePoint(topRight.x + bottomControlPointInset, |
| 1028 topRight.y) | 1028 topRight.y) |
| 1029 controlPoint2:NSMakePoint(bottomRight.x - baseControlPointOutset, | 1029 controlPoint2:NSMakePoint(bottomRight.x - baseControlPointOutset, |
| 1030 bottomRight.y)]; | 1030 bottomRight.y)]; |
| 1031 [path lineToPoint:NSMakePoint(bottomRight.x + 1, bottomRight.y)]; | 1031 [path lineToPoint:NSMakePoint(bottomRight.x + 1, bottomRight.y)]; |
| 1032 [path lineToPoint:NSMakePoint(bottomRight.x + 1, bottomRight.y - 2)]; | 1032 [path lineToPoint:NSMakePoint(bottomRight.x + 1, bottomRight.y - 2)]; |
| 1033 return path; | 1033 return path; |
| 1034 } | 1034 } |
| 1035 | 1035 |
| 1036 @end // @implementation TabView(Private) | 1036 @end // @implementation TabView(Private) |
| OLD | NEW |