| 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/browser_window_controller.h" | 5 #import "chrome/browser/ui/cocoa/browser_window_controller.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 #include <numeric> | 8 #include <numeric> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 518 } | 518 } |
| 519 | 519 |
| 520 - (void)removeConstrainedWindow:(ConstrainedWindowMac*)window { | 520 - (void)removeConstrainedWindow:(ConstrainedWindowMac*)window { |
| 521 [tabStripController_ removeConstrainedWindow:window]; | 521 [tabStripController_ removeConstrainedWindow:window]; |
| 522 } | 522 } |
| 523 | 523 |
| 524 - (BOOL)canAttachConstrainedWindow { | 524 - (BOOL)canAttachConstrainedWindow { |
| 525 return ![previewableContentsController_ isShowingPreview]; | 525 return ![previewableContentsController_ isShowingPreview]; |
| 526 } | 526 } |
| 527 | 527 |
| 528 - (void)updateDevToolsForContents:(TabContents*)contents { | 528 - (void)updateDevToolsForContents:(WebContents*)contents { |
| 529 [devToolsController_ updateDevToolsForTabContents:contents | 529 [devToolsController_ updateDevToolsForWebContents:contents |
| 530 withProfile:browser_->profile()]; | 530 withProfile:browser_->profile()]; |
| 531 [devToolsController_ ensureContentsVisible]; | 531 [devToolsController_ ensureContentsVisible]; |
| 532 } | 532 } |
| 533 | 533 |
| 534 - (void)setDevToolsDockToRight:(bool)dock_to_right { | 534 - (void)setDevToolsDockToRight:(bool)dock_to_right { |
| 535 [devToolsController_ setDockToRight:dock_to_right | 535 [devToolsController_ setDockToRight:dock_to_right |
| 536 withProfile:browser_->profile()]; | 536 withProfile:browser_->profile()]; |
| 537 } | 537 } |
| 538 | 538 |
| 539 - (void)updateSidebarForContents:(TabContents*)contents { | 539 - (void)updateSidebarForContents:(TabContents*)contents { |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 | 594 |
| 595 // TODO(viettrungluu): For some reason, the above doesn't suffice. | 595 // TODO(viettrungluu): For some reason, the above doesn't suffice. |
| 596 if ([self isFullscreen]) | 596 if ([self isFullscreen]) |
| 597 [floatingBarBackingView_ setNeedsDisplay:YES]; // Okay even if nil. | 597 [floatingBarBackingView_ setNeedsDisplay:YES]; // Okay even if nil. |
| 598 } | 598 } |
| 599 | 599 |
| 600 // Called when we are activated (when we gain focus). | 600 // Called when we are activated (when we gain focus). |
| 601 - (void)windowDidBecomeKey:(NSNotification*)notification { | 601 - (void)windowDidBecomeKey:(NSNotification*)notification { |
| 602 // We need to activate the controls (in the "WebView"). To do this, get the | 602 // We need to activate the controls (in the "WebView"). To do this, get the |
| 603 // selected TabContents's RenderWidgetHostViewMac and tell it to activate. | 603 // selected TabContents's RenderWidgetHostViewMac and tell it to activate. |
| 604 if (TabContents* contents = browser_->GetSelectedTabContents()) { | 604 if (WebContents* contents = browser_->GetSelectedWebContents()) { |
| 605 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) | 605 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) |
| 606 rwhv->SetActive(true); | 606 rwhv->SetActive(true); |
| 607 } | 607 } |
| 608 } | 608 } |
| 609 | 609 |
| 610 // Called when we are deactivated (when we lose focus). | 610 // Called when we are deactivated (when we lose focus). |
| 611 - (void)windowDidResignKey:(NSNotification*)notification { | 611 - (void)windowDidResignKey:(NSNotification*)notification { |
| 612 // If our app is still active and we're still the key window, ignore this | 612 // If our app is still active and we're still the key window, ignore this |
| 613 // message, since it just means that a menu extra (on the "system status bar") | 613 // message, since it just means that a menu extra (on the "system status bar") |
| 614 // was activated; we'll get another |-windowDidResignKey| if we ever really | 614 // was activated; we'll get another |-windowDidResignKey| if we ever really |
| 615 // lose key window status. | 615 // lose key window status. |
| 616 if ([NSApp isActive] && ([NSApp keyWindow] == [self window])) | 616 if ([NSApp isActive] && ([NSApp keyWindow] == [self window])) |
| 617 return; | 617 return; |
| 618 | 618 |
| 619 // We need to deactivate the controls (in the "WebView"). To do this, get the | 619 // We need to deactivate the controls (in the "WebView"). To do this, get the |
| 620 // selected TabContents's RenderWidgetHostView and tell it to deactivate. | 620 // selected TabContents's RenderWidgetHostView and tell it to deactivate. |
| 621 if (TabContents* contents = browser_->GetSelectedTabContents()) { | 621 if (WebContents* contents = browser_->GetSelectedWebContents()) { |
| 622 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) | 622 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) |
| 623 rwhv->SetActive(false); | 623 rwhv->SetActive(false); |
| 624 } | 624 } |
| 625 } | 625 } |
| 626 | 626 |
| 627 // Called when we have been minimized. | 627 // Called when we have been minimized. |
| 628 - (void)windowDidMiniaturize:(NSNotification *)notification { | 628 - (void)windowDidMiniaturize:(NSNotification *)notification { |
| 629 [self saveWindowPositionIfNeeded]; | 629 [self saveWindowPositionIfNeeded]; |
| 630 | 630 |
| 631 // Let the selected RenderWidgetHostView know, so that it can tell plugins. | 631 // Let the selected RenderWidgetHostView know, so that it can tell plugins. |
| 632 if (TabContents* contents = browser_->GetSelectedTabContents()) { | 632 if (WebContents* contents = browser_->GetSelectedWebContents()) { |
| 633 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) | 633 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) |
| 634 rwhv->SetWindowVisibility(false); | 634 rwhv->SetWindowVisibility(false); |
| 635 } | 635 } |
| 636 } | 636 } |
| 637 | 637 |
| 638 // Called when we have been unminimized. | 638 // Called when we have been unminimized. |
| 639 - (void)windowDidDeminiaturize:(NSNotification *)notification { | 639 - (void)windowDidDeminiaturize:(NSNotification *)notification { |
| 640 // Let the selected RenderWidgetHostView know, so that it can tell plugins. | 640 // Let the selected RenderWidgetHostView know, so that it can tell plugins. |
| 641 if (TabContents* contents = browser_->GetSelectedTabContents()) { | 641 if (WebContents* contents = browser_->GetSelectedWebContents()) { |
| 642 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) | 642 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) |
| 643 rwhv->SetWindowVisibility(true); | 643 rwhv->SetWindowVisibility(true); |
| 644 } | 644 } |
| 645 } | 645 } |
| 646 | 646 |
| 647 // Called when the application has been hidden. | 647 // Called when the application has been hidden. |
| 648 - (void)applicationDidHide:(NSNotification *)notification { | 648 - (void)applicationDidHide:(NSNotification *)notification { |
| 649 // Let the selected RenderWidgetHostView know, so that it can tell plugins | 649 // Let the selected RenderWidgetHostView know, so that it can tell plugins |
| 650 // (unless we are minimized, in which case nothing has really changed). | 650 // (unless we are minimized, in which case nothing has really changed). |
| 651 if (![[self window] isMiniaturized]) { | 651 if (![[self window] isMiniaturized]) { |
| 652 if (TabContents* contents = browser_->GetSelectedTabContents()) { | 652 if (WebContents* contents = browser_->GetSelectedWebContents()) { |
| 653 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) | 653 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) |
| 654 rwhv->SetWindowVisibility(false); | 654 rwhv->SetWindowVisibility(false); |
| 655 } | 655 } |
| 656 } | 656 } |
| 657 } | 657 } |
| 658 | 658 |
| 659 // Called when the application has been unhidden. | 659 // Called when the application has been unhidden. |
| 660 - (void)applicationDidUnhide:(NSNotification *)notification { | 660 - (void)applicationDidUnhide:(NSNotification *)notification { |
| 661 // Let the selected RenderWidgetHostView know, so that it can tell plugins | 661 // Let the selected RenderWidgetHostView know, so that it can tell plugins |
| 662 // (unless we are minimized, in which case nothing has really changed). | 662 // (unless we are minimized, in which case nothing has really changed). |
| 663 if (![[self window] isMiniaturized]) { | 663 if (![[self window] isMiniaturized]) { |
| 664 if (TabContents* contents = browser_->GetSelectedTabContents()) { | 664 if (WebContents* contents = browser_->GetSelectedWebContents()) { |
| 665 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) | 665 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) |
| 666 rwhv->SetWindowVisibility(true); | 666 rwhv->SetWindowVisibility(true); |
| 667 } | 667 } |
| 668 } | 668 } |
| 669 } | 669 } |
| 670 | 670 |
| 671 // Called when the user clicks the zoom button (or selects it from the Window | 671 // Called when the user clicks the zoom button (or selects it from the Window |
| 672 // menu) to determine the "standard size" of the window, based on the content | 672 // menu) to determine the "standard size" of the window, based on the content |
| 673 // and other factors. If the current size/location differs nontrivally from the | 673 // and other factors. If the current size/location differs nontrivally from the |
| 674 // standard size, Cocoa resizes the window to the standard size, and saves the | 674 // standard size, Cocoa resizes the window to the standard size, and saves the |
| (...skipping 24 matching lines...) Expand all Loading... |
| 699 } | 699 } |
| 700 | 700 |
| 701 // To prevent strange results on portrait displays, the basic minimum zoomed | 701 // To prevent strange results on portrait displays, the basic minimum zoomed |
| 702 // width is the larger of: 60% of available width, 60% of available height | 702 // width is the larger of: 60% of available width, 60% of available height |
| 703 // (bounded by available width). | 703 // (bounded by available width). |
| 704 const CGFloat kProportion = 0.6; | 704 const CGFloat kProportion = 0.6; |
| 705 CGFloat zoomedWidth = | 705 CGFloat zoomedWidth = |
| 706 std::max(kProportion * frame.size.width, | 706 std::max(kProportion * frame.size.width, |
| 707 std::min(kProportion * frame.size.height, frame.size.width)); | 707 std::min(kProportion * frame.size.height, frame.size.width)); |
| 708 | 708 |
| 709 TabContents* contents = browser_->GetSelectedTabContents(); | 709 WebContents* contents = browser_->GetSelectedWebContents(); |
| 710 if (contents) { | 710 if (contents) { |
| 711 // If the intrinsic width is bigger, then make it the zoomed width. | 711 // If the intrinsic width is bigger, then make it the zoomed width. |
| 712 const int kScrollbarWidth = 16; // TODO(viettrungluu): ugh. | 712 const int kScrollbarWidth = 16; // TODO(viettrungluu): ugh. |
| 713 TabContentsViewMac* tab_contents_view = | 713 TabContentsViewMac* tab_contents_view = |
| 714 static_cast<TabContentsViewMac*>(contents->GetView()); | 714 static_cast<TabContentsViewMac*>(contents->GetView()); |
| 715 CGFloat intrinsicWidth = static_cast<CGFloat>( | 715 CGFloat intrinsicWidth = static_cast<CGFloat>( |
| 716 tab_contents_view->preferred_width() + kScrollbarWidth); | 716 tab_contents_view->preferred_width() + kScrollbarWidth); |
| 717 zoomedWidth = std::max(zoomedWidth, | 717 zoomedWidth = std::max(zoomedWidth, |
| 718 std::min(intrinsicWidth, frame.size.width)); | 718 std::min(intrinsicWidth, frame.size.width)); |
| 719 } | 719 } |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 959 } | 959 } |
| 960 | 960 |
| 961 // Update the checked/Unchecked state of items in the encoding menu. | 961 // Update the checked/Unchecked state of items in the encoding menu. |
| 962 // On Windows, this logic is part of |EncodingMenuModel| in | 962 // On Windows, this logic is part of |EncodingMenuModel| in |
| 963 // browser/ui/views/toolbar_view.h. | 963 // browser/ui/views/toolbar_view.h. |
| 964 EncodingMenuController encoding_controller; | 964 EncodingMenuController encoding_controller; |
| 965 if (encoding_controller.DoesCommandBelongToEncodingMenu(tag)) { | 965 if (encoding_controller.DoesCommandBelongToEncodingMenu(tag)) { |
| 966 DCHECK(browser_.get()); | 966 DCHECK(browser_.get()); |
| 967 Profile* profile = browser_->profile(); | 967 Profile* profile = browser_->profile(); |
| 968 DCHECK(profile); | 968 DCHECK(profile); |
| 969 TabContents* current_tab = browser_->GetSelectedTabContents(); | 969 WebContents* current_tab = browser_->GetSelectedWebContents(); |
| 970 if (!current_tab) { | 970 if (!current_tab) { |
| 971 return; | 971 return; |
| 972 } | 972 } |
| 973 const std::string encoding = current_tab->GetEncoding(); | 973 const std::string encoding = current_tab->GetEncoding(); |
| 974 | 974 |
| 975 bool toggled = encoding_controller.IsItemChecked(profile, encoding, tag); | 975 bool toggled = encoding_controller.IsItemChecked(profile, encoding, tag); |
| 976 NSInteger oldState = [item state]; | 976 NSInteger oldState = [item state]; |
| 977 NSInteger newState = toggled ? NSOnState : NSOffState; | 977 NSInteger newState = toggled ? NSOnState : NSOffState; |
| 978 if (oldState != newState) | 978 if (oldState != newState) |
| 979 [item setState:newState]; | 979 [item setState:newState]; |
| (...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1455 - (NSInteger)numberOfTabs { | 1455 - (NSInteger)numberOfTabs { |
| 1456 // count() includes pinned tabs. | 1456 // count() includes pinned tabs. |
| 1457 return browser_->tabstrip_model()->count(); | 1457 return browser_->tabstrip_model()->count(); |
| 1458 } | 1458 } |
| 1459 | 1459 |
| 1460 - (BOOL)hasLiveTabs { | 1460 - (BOOL)hasLiveTabs { |
| 1461 return !browser_->tabstrip_model()->empty(); | 1461 return !browser_->tabstrip_model()->empty(); |
| 1462 } | 1462 } |
| 1463 | 1463 |
| 1464 - (NSString*)activeTabTitle { | 1464 - (NSString*)activeTabTitle { |
| 1465 TabContents* contents = browser_->GetSelectedTabContents(); | 1465 WebContents* contents = browser_->GetSelectedWebContents(); |
| 1466 return base::SysUTF16ToNSString(contents->GetTitle()); | 1466 return base::SysUTF16ToNSString(contents->GetTitle()); |
| 1467 } | 1467 } |
| 1468 | 1468 |
| 1469 - (NSRect)regularWindowFrame { | 1469 - (NSRect)regularWindowFrame { |
| 1470 return [self isFullscreen] ? savedRegularWindowFrame_ : | 1470 return [self isFullscreen] ? savedRegularWindowFrame_ : |
| 1471 [[self window] frame]; | 1471 [[self window] frame]; |
| 1472 } | 1472 } |
| 1473 | 1473 |
| 1474 // (Override of |TabWindowController| method.) | 1474 // (Override of |TabWindowController| method.) |
| 1475 - (BOOL)hasTabStrip { | 1475 - (BOOL)hasTabStrip { |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1519 | 1519 |
| 1520 // TabStripControllerDelegate protocol. | 1520 // TabStripControllerDelegate protocol. |
| 1521 - (void)onActivateTabWithContents:(TabContents*)contents { | 1521 - (void)onActivateTabWithContents:(TabContents*)contents { |
| 1522 // Update various elements that are interested in knowing the current | 1522 // Update various elements that are interested in knowing the current |
| 1523 // TabContents. | 1523 // TabContents. |
| 1524 | 1524 |
| 1525 // Update all the UI bits. | 1525 // Update all the UI bits. |
| 1526 windowShim_->UpdateTitleBar(); | 1526 windowShim_->UpdateTitleBar(); |
| 1527 | 1527 |
| 1528 [sidebarController_ updateSidebarForTabContents:contents]; | 1528 [sidebarController_ updateSidebarForTabContents:contents]; |
| 1529 [devToolsController_ updateDevToolsForTabContents:contents | 1529 [devToolsController_ updateDevToolsForWebContents:contents |
| 1530 withProfile:browser_->profile()]; | 1530 withProfile:browser_->profile()]; |
| 1531 | 1531 |
| 1532 // Update the bookmark bar. | 1532 // Update the bookmark bar. |
| 1533 // Must do it after sidebar and devtools update, otherwise bookmark bar might | 1533 // Must do it after sidebar and devtools update, otherwise bookmark bar might |
| 1534 // call resizeView -> layoutSubviews and cause unnecessary relayout. | 1534 // call resizeView -> layoutSubviews and cause unnecessary relayout. |
| 1535 // TODO(viettrungluu): perhaps update to not terminate running animations (if | 1535 // TODO(viettrungluu): perhaps update to not terminate running animations (if |
| 1536 // applicable)? | 1536 // applicable)? |
| 1537 [self updateBookmarkBarVisibilityWithAnimation:NO]; | 1537 [self updateBookmarkBarVisibilityWithAnimation:NO]; |
| 1538 | 1538 |
| 1539 TabContentsWrapper* wrapper = | 1539 TabContentsWrapper* wrapper = |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1732 - (void)windowDidResize:(NSNotification*)notification { | 1732 - (void)windowDidResize:(NSNotification*)notification { |
| 1733 [self saveWindowPositionIfNeeded]; | 1733 [self saveWindowPositionIfNeeded]; |
| 1734 | 1734 |
| 1735 // Resize (and possibly move) the status bubble. Note that we may get called | 1735 // Resize (and possibly move) the status bubble. Note that we may get called |
| 1736 // when the status bubble does not exist. | 1736 // when the status bubble does not exist. |
| 1737 if (statusBubble_) { | 1737 if (statusBubble_) { |
| 1738 statusBubble_->UpdateSizeAndPosition(); | 1738 statusBubble_->UpdateSizeAndPosition(); |
| 1739 } | 1739 } |
| 1740 | 1740 |
| 1741 // Let the selected RenderWidgetHostView know, so that it can tell plugins. | 1741 // Let the selected RenderWidgetHostView know, so that it can tell plugins. |
| 1742 if (TabContents* contents = browser_->GetSelectedTabContents()) { | 1742 if (WebContents* contents = browser_->GetSelectedWebContents()) { |
| 1743 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) | 1743 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) |
| 1744 rwhv->WindowFrameChanged(); | 1744 rwhv->WindowFrameChanged(); |
| 1745 } | 1745 } |
| 1746 | 1746 |
| 1747 // The FindBar needs to know its own position to properly detect overlaps | 1747 // The FindBar needs to know its own position to properly detect overlaps |
| 1748 // with find results. The position changes whenever the window is resized, | 1748 // with find results. The position changes whenever the window is resized, |
| 1749 // and |layoutSubviews| computes the FindBar's position. | 1749 // and |layoutSubviews| computes the FindBar's position. |
| 1750 // TODO: calling |layoutSubviews| here is a waste, find a better way to | 1750 // TODO: calling |layoutSubviews| here is a waste, find a better way to |
| 1751 // do this. | 1751 // do this. |
| 1752 if ([findBarCocoaController_ isFindBarVisible]) | 1752 if ([findBarCocoaController_ isFindBarVisible]) |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1788 // |-windowWillMove| is called too early for us to apply our heuristic. (The | 1788 // |-windowWillMove| is called too early for us to apply our heuristic. (The |
| 1789 // heuristic we use for detecting window movement is that if |windowTopGrowth_ | 1789 // heuristic we use for detecting window movement is that if |windowTopGrowth_ |
| 1790 // > 0|, then we should be at the bottom of the work area -- if we're not, | 1790 // > 0|, then we should be at the bottom of the work area -- if we're not, |
| 1791 // we've moved. Similarly for the other side.) | 1791 // we've moved. Similarly for the other side.) |
| 1792 if (!NSContainsRect(workarea, windowFrame) || | 1792 if (!NSContainsRect(workarea, windowFrame) || |
| 1793 (windowTopGrowth_ > 0 && NSMinY(windowFrame) != NSMinY(workarea)) || | 1793 (windowTopGrowth_ > 0 && NSMinY(windowFrame) != NSMinY(workarea)) || |
| 1794 (windowBottomGrowth_ > 0 && NSMaxY(windowFrame) != NSMaxY(workarea))) | 1794 (windowBottomGrowth_ > 0 && NSMaxY(windowFrame) != NSMaxY(workarea))) |
| 1795 [self resetWindowGrowthState]; | 1795 [self resetWindowGrowthState]; |
| 1796 | 1796 |
| 1797 // Let the selected RenderWidgetHostView know, so that it can tell plugins. | 1797 // Let the selected RenderWidgetHostView know, so that it can tell plugins. |
| 1798 if (TabContents* contents = browser_->GetSelectedTabContents()) { | 1798 if (WebContents* contents = browser_->GetSelectedWebContents()) { |
| 1799 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) | 1799 if (RenderWidgetHostView* rwhv = contents->GetRenderWidgetHostView()) |
| 1800 rwhv->WindowFrameChanged(); | 1800 rwhv->WindowFrameChanged(); |
| 1801 } | 1801 } |
| 1802 } | 1802 } |
| 1803 | 1803 |
| 1804 // Delegate method called when window will be resized; not called for | 1804 // Delegate method called when window will be resized; not called for |
| 1805 // |-setFrame:display:|. | 1805 // |-setFrame:display:|. |
| 1806 - (NSSize)windowWillResize:(NSWindow*)sender toSize:(NSSize)frameSize { | 1806 - (NSSize)windowWillResize:(NSWindow*)sender toSize:(NSSize)frameSize { |
| 1807 [self resetWindowGrowthState]; | 1807 [self resetWindowGrowthState]; |
| 1808 return frameSize; | 1808 return frameSize; |
| (...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2188 | 2188 |
| 2189 - (BOOL)supportsBookmarkBar { | 2189 - (BOOL)supportsBookmarkBar { |
| 2190 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; | 2190 return [self supportsWindowFeature:Browser::FEATURE_BOOKMARKBAR]; |
| 2191 } | 2191 } |
| 2192 | 2192 |
| 2193 - (BOOL)isTabbedWindow { | 2193 - (BOOL)isTabbedWindow { |
| 2194 return browser_->is_type_tabbed(); | 2194 return browser_->is_type_tabbed(); |
| 2195 } | 2195 } |
| 2196 | 2196 |
| 2197 @end // @implementation BrowserWindowController(WindowType) | 2197 @end // @implementation BrowserWindowController(WindowType) |
| OLD | NEW |