OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/views/old_frames/xp_frame.h" | 5 #include "chrome/browser/views/old_frames/xp_frame.h" |
6 | 6 |
7 #include <windows.h> | 7 #include <windows.h> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/gfx/native_theme.h" | 10 #include "base/gfx/native_theme.h" |
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 | 577 |
578 void XPFrame::Layout() { | 578 void XPFrame::Layout() { |
579 CRect client_rect; | 579 CRect client_rect; |
580 GetClientRect(&client_rect); | 580 GetClientRect(&client_rect); |
581 int width = client_rect.Width(); | 581 int width = client_rect.Width(); |
582 int height = client_rect.Height(); | 582 int height = client_rect.Height(); |
583 | 583 |
584 root_view_.SetBounds(0, 0, width, height); | 584 root_view_.SetBounds(0, 0, width, height); |
585 frame_view_->SetBounds(0, 0, width, height); | 585 frame_view_->SetBounds(0, 0, width, height); |
586 | 586 |
587 CSize preferred_size; | 587 gfx::Size preferred_size; |
588 | 588 |
589 if (IsZoomed()) { | 589 if (IsZoomed()) { |
590 close_button_->GetPreferredSize(&preferred_size); | 590 preferred_size = close_button_->GetPreferredSize(); |
591 close_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, | 591 close_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, |
592 ChromeViews::Button::ALIGN_BOTTOM); | 592 ChromeViews::Button::ALIGN_BOTTOM); |
593 close_button_->SetBounds(width - preferred_size.cx - | 593 close_button_->SetBounds(width - preferred_size.width() - |
594 kWindowControlsRightZoomedOffset, | 594 kWindowControlsRightZoomedOffset, |
595 0, | 595 0, |
596 preferred_size.cx + | 596 preferred_size.width() + |
597 kWindowControlsRightZoomedOffset, | 597 kWindowControlsRightZoomedOffset, |
598 preferred_size.cy + | 598 preferred_size.height() + |
599 kWindowControlsTopZoomedOffset); | 599 kWindowControlsTopZoomedOffset); |
600 | 600 |
601 max_button_->SetVisible(false); | 601 max_button_->SetVisible(false); |
602 | 602 |
603 restore_button_->SetVisible(true); | 603 restore_button_->SetVisible(true); |
604 restore_button_->GetPreferredSize(&preferred_size); | 604 preferred_size = restore_button_->GetPreferredSize(); |
605 restore_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, | 605 restore_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, |
606 ChromeViews::Button::ALIGN_BOTTOM); | 606 ChromeViews::Button::ALIGN_BOTTOM); |
607 restore_button_->SetBounds(close_button_->x() - preferred_size.cx, | 607 restore_button_->SetBounds(close_button_->x() - preferred_size.width(), |
608 0, | 608 0, |
609 preferred_size.cx, | 609 preferred_size.width(), |
610 preferred_size.cy + | 610 preferred_size.height() + |
611 kWindowControlsTopZoomedOffset); | 611 kWindowControlsTopZoomedOffset); |
612 | 612 |
613 min_button_->GetPreferredSize(&preferred_size); | 613 preferred_size = min_button_->GetPreferredSize(); |
614 min_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, | 614 min_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, |
615 ChromeViews::Button::ALIGN_BOTTOM); | 615 ChromeViews::Button::ALIGN_BOTTOM); |
616 min_button_->SetBounds(restore_button_->x() - preferred_size.cx, | 616 min_button_->SetBounds(restore_button_->x() - preferred_size.width(), |
617 0, | 617 0, |
618 preferred_size.cx, | 618 preferred_size.width(), |
619 preferred_size.cy + | 619 preferred_size.height() + |
620 kWindowControlsTopZoomedOffset); | 620 kWindowControlsTopZoomedOffset); |
621 | 621 |
622 } else { | 622 } else { |
623 close_button_->GetPreferredSize(&preferred_size); | 623 preferred_size = close_button_->GetPreferredSize(); |
624 close_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, | 624 close_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, |
625 ChromeViews::Button::ALIGN_TOP); | 625 ChromeViews::Button::ALIGN_TOP); |
626 close_button_->SetBounds(width - kWindowControlsRightOffset - | 626 close_button_->SetBounds(width - kWindowControlsRightOffset - |
627 preferred_size.cx, | 627 preferred_size.width(), |
628 kWindowControlsTopOffset, | 628 kWindowControlsTopOffset, |
629 preferred_size.cx, | 629 preferred_size.width(), |
630 preferred_size.cy); | 630 preferred_size.height()); |
631 | 631 |
632 restore_button_->SetVisible(false); | 632 restore_button_->SetVisible(false); |
633 | 633 |
634 max_button_->SetVisible(true); | 634 max_button_->SetVisible(true); |
635 max_button_->GetPreferredSize(&preferred_size); | 635 preferred_size = max_button_->GetPreferredSize(); |
636 max_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, | 636 max_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, |
637 ChromeViews::Button::ALIGN_TOP); | 637 ChromeViews::Button::ALIGN_TOP); |
638 max_button_->SetBounds(close_button_->x() - preferred_size.cx, | 638 max_button_->SetBounds(close_button_->x() - preferred_size.width(), |
639 kWindowControlsTopOffset, | 639 kWindowControlsTopOffset, |
640 preferred_size.cx, | 640 preferred_size.width(), |
641 preferred_size.cy); | 641 preferred_size.height()); |
642 | 642 |
643 min_button_->GetPreferredSize(&preferred_size); | 643 preferred_size = min_button_->GetPreferredSize(); |
644 min_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, | 644 min_button_->SetImageAlignment(ChromeViews::Button::ALIGN_LEFT, |
645 ChromeViews::Button::ALIGN_TOP); | 645 ChromeViews::Button::ALIGN_TOP); |
646 min_button_->SetBounds(max_button_->x() - preferred_size.cx, | 646 min_button_->SetBounds(max_button_->x() - preferred_size.width(), |
647 kWindowControlsTopOffset, | 647 kWindowControlsTopOffset, |
648 preferred_size.cx, | 648 preferred_size.width(), |
649 preferred_size.cy); | 649 preferred_size.height()); |
650 } | 650 } |
651 | 651 |
652 int right_limit = min_button_->x(); | 652 int right_limit = min_button_->x(); |
653 int left_margin; | 653 int left_margin; |
654 int right_margin; | 654 int right_margin; |
655 int bottom_margin; | 655 int bottom_margin; |
656 int top_margin; | 656 int top_margin; |
657 | 657 |
658 SkBitmap** bitmaps = GetFrameBitmaps(); | 658 SkBitmap** bitmaps = GetFrameBitmaps(); |
659 if (IsZoomed()) { | 659 if (IsZoomed()) { |
660 right_limit -= kZoomedStripPadding; | 660 right_limit -= kZoomedStripPadding; |
661 top_margin = kZoomedTopMargin; | 661 top_margin = kZoomedTopMargin; |
662 bottom_margin = kZoomedBottomMargin; | 662 bottom_margin = kZoomedBottomMargin; |
663 left_margin = 0; | 663 left_margin = 0; |
664 right_margin = 0; | 664 right_margin = 0; |
665 } else { | 665 } else { |
666 top_margin = kTopMargin; | 666 top_margin = kTopMargin; |
667 bottom_margin = g_bottom_margin; | 667 bottom_margin = g_bottom_margin; |
668 left_margin = g_left_margin; | 668 left_margin = g_left_margin; |
669 right_margin = g_right_margin; | 669 right_margin = g_right_margin; |
670 } | 670 } |
671 | 671 |
672 int last_y = top_margin - 1; | 672 int last_y = top_margin - 1; |
673 if (IsTabStripVisible()) { | 673 if (IsTabStripVisible()) { |
674 int tab_strip_x = left_margin; | 674 int tab_strip_x = left_margin; |
675 | 675 |
676 if (is_off_the_record_) { | 676 if (is_off_the_record_) { |
677 CSize otr_image_size; | 677 gfx::Size otr_image_size = off_the_record_image_->GetPreferredSize(); |
678 off_the_record_image_->GetPreferredSize(&otr_image_size); | 678 tab_strip_x += otr_image_size.width() + (2 * kOTRImageHorizMargin); |
679 tab_strip_x += otr_image_size.cx + (2 * kOTRImageHorizMargin); | |
680 if (IsZoomed()) { | 679 if (IsZoomed()) { |
681 off_the_record_image_->SetBounds(left_margin + kOTRImageHorizMargin, | 680 off_the_record_image_->SetBounds(left_margin + kOTRImageHorizMargin, |
682 top_margin + 1, | 681 top_margin + 1, |
683 otr_image_size.cx, | 682 otr_image_size.width(), |
684 tabstrip_->GetPreferredHeight() - | 683 tabstrip_->GetPreferredHeight() - |
685 kToolbarOverlapVertOffset - 1); | 684 kToolbarOverlapVertOffset - 1); |
686 } else { | 685 } else { |
687 off_the_record_image_->SetBounds(left_margin + kOTRImageHorizMargin, | 686 off_the_record_image_->SetBounds(left_margin + kOTRImageHorizMargin, |
688 top_margin - 1 + | 687 top_margin - 1 + |
689 tabstrip_->GetPreferredHeight() - | 688 tabstrip_->GetPreferredHeight() - |
690 otr_image_size.cy - | 689 otr_image_size.height() - |
691 kOTRImageVertMargin, | 690 kOTRImageVertMargin, |
692 otr_image_size.cx, | 691 otr_image_size.width(), |
693 otr_image_size.cy); | 692 otr_image_size.height()); |
694 } | 693 } |
695 } | 694 } |
696 | 695 |
697 if (distributor_logo_) { | 696 if (distributor_logo_) { |
698 if (IsZoomed()) { | 697 if (IsZoomed()) { |
699 distributor_logo_->SetVisible(false); | 698 distributor_logo_->SetVisible(false); |
700 } else { | 699 } else { |
701 CSize distributor_logo_size; | 700 gfx::Size distributor_logo_size = |
702 distributor_logo_->GetPreferredSize(&distributor_logo_size); | 701 distributor_logo_->GetPreferredSize(); |
703 distributor_logo_->SetVisible(true); | 702 distributor_logo_->SetVisible(true); |
704 distributor_logo_->SetBounds(min_button_->x() - | 703 distributor_logo_->SetBounds(min_button_->x() - |
705 distributor_logo_size.cx - | 704 distributor_logo_size.width() - |
706 kDistributorLogoHorizontalOffset, | 705 kDistributorLogoHorizontalOffset, |
707 kDistributorLogoVerticalOffset, | 706 kDistributorLogoVerticalOffset, |
708 distributor_logo_size.cx, | 707 distributor_logo_size.width(), |
709 distributor_logo_size.cy); | 708 distributor_logo_size.height()); |
710 } | 709 } |
711 } | 710 } |
712 | 711 |
713 tabstrip_->SetBounds(tab_strip_x, top_margin - 1, | 712 tabstrip_->SetBounds(tab_strip_x, top_margin - 1, |
714 right_limit - tab_strip_x - right_margin, | 713 right_limit - tab_strip_x - right_margin, |
715 tabstrip_->GetPreferredHeight()); | 714 tabstrip_->GetPreferredHeight()); |
716 | 715 |
717 last_y = tabstrip_->y() + tabstrip_->height(); | 716 last_y = tabstrip_->y() + tabstrip_->height(); |
718 } else { | 717 } else { |
719 tabstrip_->SetBounds(0, 0, 0, 0); | 718 tabstrip_->SetBounds(0, 0, 0, 0); |
(...skipping 26 matching lines...) Expand all Loading... |
746 } else { | 745 } else { |
747 last_y = std::max(kMinTitleBarHeight, | 746 last_y = std::max(kMinTitleBarHeight, |
748 close_button_->y() + close_button_->height()); | 747 close_button_->y() + close_button_->height()); |
749 title_bar_height_ = last_y; | 748 title_bar_height_ = last_y; |
750 } | 749 } |
751 browser_view_->SetVisible(false); | 750 browser_view_->SetVisible(false); |
752 } | 751 } |
753 | 752 |
754 int browser_h = height - last_y - bottom_margin; | 753 int browser_h = height - last_y - bottom_margin; |
755 if (shelf_view_) { | 754 if (shelf_view_) { |
756 shelf_view_->GetPreferredSize(&preferred_size); | 755 preferred_size = shelf_view_->GetPreferredSize(); |
757 shelf_view_->SetBounds(left_margin, | 756 shelf_view_->SetBounds(left_margin, |
758 height - bottom_margin - preferred_size.cy, | 757 height - bottom_margin - preferred_size.height(), |
759 width - left_margin - right_margin, | 758 width - left_margin - right_margin, |
760 preferred_size.cy); | 759 preferred_size.height()); |
761 browser_h -= preferred_size.cy; | 760 browser_h -= preferred_size.height(); |
762 } | 761 } |
763 | 762 |
764 int bookmark_bar_height = 0; | 763 int bookmark_bar_height = 0; |
765 | 764 |
766 CSize bookmark_bar_size; | 765 gfx::Size bookmark_bar_size; |
767 CSize info_bar_size; | 766 gfx::Size info_bar_size; |
768 | 767 |
769 if (bookmark_bar_view_.get()) { | 768 if (bookmark_bar_view_.get()) { |
770 bookmark_bar_view_->GetPreferredSize(&bookmark_bar_size); | 769 bookmark_bar_size = bookmark_bar_view_->GetPreferredSize(); |
771 bookmark_bar_height = bookmark_bar_size.cy; | 770 bookmark_bar_height = bookmark_bar_size.height(); |
772 } | 771 } |
773 | 772 |
774 if (info_bar_view_) | 773 if (info_bar_view_) |
775 info_bar_view_->GetPreferredSize(&info_bar_size); | 774 info_bar_size = info_bar_view_->GetPreferredSize(); |
776 | 775 |
777 // If we're showing a bookmarks bar in the new tab page style and we | 776 // If we're showing a bookmarks bar in the new tab page style and we |
778 // have an infobar showing, we need to flip them. | 777 // have an infobar showing, we need to flip them. |
779 if (info_bar_view_ && | 778 if (info_bar_view_ && |
780 bookmark_bar_view_.get() && | 779 bookmark_bar_view_.get() && |
781 bookmark_bar_view_->IsNewTabPage() && | 780 bookmark_bar_view_->IsNewTabPage() && |
782 !bookmark_bar_view_->IsAlwaysShown()) { | 781 !bookmark_bar_view_->IsAlwaysShown()) { |
783 info_bar_view_->SetBounds(left_margin, | 782 info_bar_view_->SetBounds(left_margin, |
784 last_y, | 783 last_y, |
785 client_rect.Width() - left_margin - right_margin, | 784 client_rect.Width() - left_margin - right_margin, |
786 info_bar_size.cy); | 785 info_bar_size.height()); |
787 browser_h -= info_bar_size.cy; | 786 browser_h -= info_bar_size.height(); |
788 last_y += info_bar_size.cy; | 787 last_y += info_bar_size.height(); |
789 | 788 |
790 last_y -= kSeparationLineHeight; | 789 last_y -= kSeparationLineHeight; |
791 | 790 |
792 bookmark_bar_view_->SetBounds(left_margin, | 791 bookmark_bar_view_->SetBounds(left_margin, |
793 last_y, | 792 last_y, |
794 client_rect.Width() - left_margin - | 793 client_rect.Width() - left_margin - |
795 right_margin, | 794 right_margin, |
796 bookmark_bar_size.cy); | 795 bookmark_bar_size.height()); |
797 browser_h -= (bookmark_bar_size.cy - kSeparationLineHeight); | 796 browser_h -= (bookmark_bar_size.height() - kSeparationLineHeight); |
798 last_y += bookmark_bar_size.cy; | 797 last_y += bookmark_bar_size.height(); |
799 } else { | 798 } else { |
800 if (bookmark_bar_view_.get()) { | 799 if (bookmark_bar_view_.get()) { |
801 // We want our bookmarks bar to be responsible for drawing its own | 800 // We want our bookmarks bar to be responsible for drawing its own |
802 // separator, so we let it overlap ours. | 801 // separator, so we let it overlap ours. |
803 last_y -= kSeparationLineHeight; | 802 last_y -= kSeparationLineHeight; |
804 | 803 |
805 bookmark_bar_view_->SetBounds(left_margin, | 804 bookmark_bar_view_->SetBounds(left_margin, |
806 last_y, | 805 last_y, |
807 client_rect.Width() - left_margin - | 806 client_rect.Width() - left_margin - |
808 right_margin, | 807 right_margin, |
809 bookmark_bar_size.cy); | 808 bookmark_bar_size.height()); |
810 browser_h -= (bookmark_bar_size.cy - kSeparationLineHeight); | 809 browser_h -= (bookmark_bar_size.height() - kSeparationLineHeight); |
811 last_y += bookmark_bar_size.cy; | 810 last_y += bookmark_bar_size.height(); |
812 } | 811 } |
813 | 812 |
814 if (info_bar_view_) { | 813 if (info_bar_view_) { |
815 info_bar_view_->SetBounds(left_margin, | 814 info_bar_view_->SetBounds(left_margin, |
816 last_y, | 815 last_y, |
817 client_rect.Width() - | 816 client_rect.Width() - |
818 left_margin - right_margin, | 817 left_margin - right_margin, |
819 info_bar_size.cy); | 818 info_bar_size.height()); |
820 browser_h -= info_bar_size.cy; | 819 browser_h -= info_bar_size.height(); |
821 last_y += info_bar_size.cy; | 820 last_y += info_bar_size.height(); |
822 } | 821 } |
823 } | 822 } |
824 | 823 |
825 tab_contents_container_->SetBounds(left_margin, | 824 tab_contents_container_->SetBounds(left_margin, |
826 last_y, | 825 last_y, |
827 width - left_margin - right_margin, | 826 width - left_margin - right_margin, |
828 browser_h); | 827 browser_h); |
829 #ifdef CHROME_PERSONALIZATION | 828 #ifdef CHROME_PERSONALIZATION |
830 if (PersonalizationEnabled()) { | 829 if (PersonalizationEnabled()) { |
831 Personalization::ConfigureFramePersonalization(personalization_, | 830 Personalization::ConfigureFramePersonalization(personalization_, |
(...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1887 browser_view_->FocusToolbar(); | 1886 browser_view_->FocusToolbar(); |
1888 } | 1887 } |
1889 | 1888 |
1890 bool XPFrame::IsBookmarkBarVisible() const { | 1889 bool XPFrame::IsBookmarkBarVisible() const { |
1891 if (!bookmark_bar_view_.get()) | 1890 if (!bookmark_bar_view_.get()) |
1892 return false; | 1891 return false; |
1893 | 1892 |
1894 if (bookmark_bar_view_->IsNewTabPage() || bookmark_bar_view_->IsAnimating()) | 1893 if (bookmark_bar_view_->IsNewTabPage() || bookmark_bar_view_->IsAnimating()) |
1895 return true; | 1894 return true; |
1896 | 1895 |
1897 CSize sz; | |
1898 bookmark_bar_view_->GetPreferredSize(&sz); | |
1899 // 1 is the minimum in GetPreferredSize for the bookmark bar. | 1896 // 1 is the minimum in GetPreferredSize for the bookmark bar. |
1900 return sz.cy > 1; | 1897 return bookmark_bar_view_->GetPreferredSize().height() > 1; |
1901 } | 1898 } |
1902 | 1899 |
1903 void XPFrame::MoveToFront(bool should_activate) { | 1900 void XPFrame::MoveToFront(bool should_activate) { |
1904 int flags = SWP_NOMOVE | SWP_NOSIZE; | 1901 int flags = SWP_NOMOVE | SWP_NOSIZE; |
1905 if (!should_activate) { | 1902 if (!should_activate) { |
1906 flags |= SWP_NOACTIVATE; | 1903 flags |= SWP_NOACTIVATE; |
1907 } | 1904 } |
1908 SetWindowPos(HWND_TOP, 0, 0, 0, 0, flags); | 1905 SetWindowPos(HWND_TOP, 0, 0, 0, 0, flags); |
1909 SetForegroundWindow(*this); | 1906 SetForegroundWindow(*this); |
1910 } | 1907 } |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2297 tab_contents_container_->UpdateHWNDBounds(); | 2294 tab_contents_container_->UpdateHWNDBounds(); |
2298 } | 2295 } |
2299 } | 2296 } |
2300 | 2297 |
2301 bool XPFrame::UpdateChildViewAndLayout(ChromeViews::View* new_view, | 2298 bool XPFrame::UpdateChildViewAndLayout(ChromeViews::View* new_view, |
2302 ChromeViews::View** view) { | 2299 ChromeViews::View** view) { |
2303 DCHECK(view); | 2300 DCHECK(view); |
2304 if (*view == new_view) { | 2301 if (*view == new_view) { |
2305 // The views haven't changed, if the views pref changed schedule a layout. | 2302 // The views haven't changed, if the views pref changed schedule a layout. |
2306 if (new_view) { | 2303 if (new_view) { |
2307 CSize pref_size; | 2304 if (new_view->GetPreferredSize().height() != new_view->height()) |
2308 new_view->GetPreferredSize(&pref_size); | |
2309 if (pref_size.cy != new_view->height()) | |
2310 return true; | 2305 return true; |
2311 } | 2306 } |
2312 return false; | 2307 return false; |
2313 } | 2308 } |
2314 | 2309 |
2315 // The views differ, and one may be null (but not both). Remove the old | 2310 // The views differ, and one may be null (but not both). Remove the old |
2316 // view (if it non-null), and add the new one (if it is non-null). If the | 2311 // view (if it non-null), and add the new one (if it is non-null). If the |
2317 // height has changed, schedule a layout, otherwise reuse the existing | 2312 // height has changed, schedule a layout, otherwise reuse the existing |
2318 // bounds to avoid scheduling a layout. | 2313 // bounds to avoid scheduling a layout. |
2319 | 2314 |
2320 int current_height = 0; | 2315 int current_height = 0; |
2321 if (*view) { | 2316 if (*view) { |
2322 current_height = (*view)->height(); | 2317 current_height = (*view)->height(); |
2323 root_view_.RemoveChildView(*view); | 2318 root_view_.RemoveChildView(*view); |
2324 } | 2319 } |
2325 | 2320 |
2326 int new_height = 0; | 2321 int new_height = 0; |
2327 if (new_view) { | 2322 if (new_view) { |
2328 CSize preferred_size; | 2323 new_height = new_view->GetPreferredSize().height(); |
2329 new_view->GetPreferredSize(&preferred_size); | |
2330 new_height = preferred_size.cy; | |
2331 root_view_.AddChildView(new_view); | 2324 root_view_.AddChildView(new_view); |
2332 } | 2325 } |
2333 bool changed = false; | 2326 bool changed = false; |
2334 if (new_height != current_height) { | 2327 if (new_height != current_height) { |
2335 changed = true; | 2328 changed = true; |
2336 } else if (new_view && *view) { | 2329 } else if (new_view && *view) { |
2337 // The view changed, but the new view wants the same size, give it the | 2330 // The view changed, but the new view wants the same size, give it the |
2338 // bounds of the last view and have it repaint. | 2331 // bounds of the last view and have it repaint. |
2339 new_view->SetBounds((*view)->bounds().ToRECT()); | 2332 new_view->SetBounds((*view)->bounds().ToRECT()); |
2340 new_view->SchedulePaint(); | 2333 new_view->SchedulePaint(); |
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2504 | 2497 |
2505 // Only do a layout if the current contents is non-null. We assume that if the | 2498 // Only do a layout if the current contents is non-null. We assume that if the |
2506 // contents is NULL, we're either being destroyed, or ShowTabContents is going | 2499 // contents is NULL, we're either being destroyed, or ShowTabContents is going |
2507 // to be invoked with a non-null TabContents again so that there is no need | 2500 // to be invoked with a non-null TabContents again so that there is no need |
2508 // in doing a layout now (and would result in extra work/invalidation on | 2501 // in doing a layout now (and would result in extra work/invalidation on |
2509 // tab switches). | 2502 // tab switches). |
2510 if (changed && current_tab) | 2503 if (changed && current_tab) |
2511 Layout(); | 2504 Layout(); |
2512 } | 2505 } |
2513 | 2506 |
OLD | NEW |