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

Side by Side Diff: ash/common/wm/overview/window_selector_item.cc

Issue 2470343003: Use mirror layer for minimized windows in overview mode (Closed)
Patch Set: Created 4 years, 1 month 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ash/common/wm/overview/window_selector_item.h" 5 #include "ash/common/wm/overview/window_selector_item.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "ash/common/material_design/material_design_controller.h" 10 #include "ash/common/material_design/material_design_controller.h"
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 transform_window_.window()); 434 transform_window_.window());
435 } 435 }
436 } 436 }
437 if (background_view_) { 437 if (background_view_) {
438 background_view_->OnItemRestored(); 438 background_view_->OnItemRestored();
439 background_view_ = nullptr; 439 background_view_ = nullptr;
440 } 440 }
441 FadeOut(std::move(window_label_)); 441 FadeOut(std::move(window_label_));
442 } 442 }
443 443
444 void WindowSelectorItem::ShowWindowOnExit() {
445 transform_window_.ShowWindowOnExit();
446 }
447
448 void WindowSelectorItem::PrepareForOverview() { 444 void WindowSelectorItem::PrepareForOverview() {
449 transform_window_.PrepareForOverview(); 445 transform_window_.PrepareForOverview();
450 UpdateHeaderLayout(HeaderFadeInMode::ENTER, 446 UpdateHeaderLayout(HeaderFadeInMode::ENTER,
451 OverviewAnimationType::OVERVIEW_ANIMATION_NONE); 447 OverviewAnimationType::OVERVIEW_ANIMATION_NONE);
452 } 448 }
453 449
454 bool WindowSelectorItem::Contains(const WmWindow* target) const { 450 bool WindowSelectorItem::Contains(const WmWindow* target) const {
455 return transform_window_.Contains(target); 451 return transform_window_.Contains(target);
456 } 452 }
457 453
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 // Fade out the window and the label, effectively hiding them. 505 // Fade out the window and the label, effectively hiding them.
510 AnimateOpacity(0.0, 506 AnimateOpacity(0.0,
511 OverviewAnimationType::OVERVIEW_ANIMATION_CLOSE_SELECTOR_ITEM); 507 OverviewAnimationType::OVERVIEW_ANIMATION_CLOSE_SELECTOR_ITEM);
512 transform_window_.Close(); 508 transform_window_.Close();
513 } 509 }
514 510
515 void WindowSelectorItem::HideHeader() { 511 void WindowSelectorItem::HideHeader() {
516 transform_window_.HideHeader(); 512 transform_window_.HideHeader();
517 } 513 }
518 514
515 void WindowSelectorItem::OnMinimizedStateChanged() {
516 transform_window_.UpdateMirrorWindowForMinimizedState();
517 }
518
519 void WindowSelectorItem::SetDimmed(bool dimmed) { 519 void WindowSelectorItem::SetDimmed(bool dimmed) {
520 dimmed_ = dimmed; 520 dimmed_ = dimmed;
521 SetOpacity(dimmed ? kDimmedItemOpacity : 1.0f); 521 SetOpacity(dimmed ? kDimmedItemOpacity : 1.0f);
522 } 522 }
523 523
524 void WindowSelectorItem::ButtonPressed(views::Button* sender, 524 void WindowSelectorItem::ButtonPressed(views::Button* sender,
525 const ui::Event& event) { 525 const ui::Event& event) {
526 if (sender == close_button_) { 526 if (sender == close_button_) {
527 WmShell::Get()->RecordUserMetricsAction(UMA_WINDOW_OVERVIEW_CLOSE_BUTTON); 527 WmShell::Get()->RecordUserMetricsAction(UMA_WINDOW_OVERVIEW_CLOSE_BUTTON);
528 CloseWindow(); 528 CloseWindow();
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 // |background_view_| will get added as a child to CaptionContainerView. 616 // |background_view_| will get added as a child to CaptionContainerView.
617 views::Widget::InitParams params_label; 617 views::Widget::InitParams params_label;
618 params_label.type = views::Widget::InitParams::TYPE_POPUP; 618 params_label.type = views::Widget::InitParams::TYPE_POPUP;
619 params_label.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; 619 params_label.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET;
620 params_label.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW; 620 params_label.opacity = views::Widget::InitParams::TRANSLUCENT_WINDOW;
621 params_label.visible_on_all_workspaces = true; 621 params_label.visible_on_all_workspaces = true;
622 params_label.name = "OverviewModeLabel"; 622 params_label.name = "OverviewModeLabel";
623 params_label.activatable = 623 params_label.activatable =
624 views::Widget::InitParams::Activatable::ACTIVATABLE_DEFAULT; 624 views::Widget::InitParams::Activatable::ACTIVATABLE_DEFAULT;
625 params_label.accept_events = true; 625 params_label.accept_events = true;
626 window_label_.reset(new views::Widget);
varkha 2016/11/08 00:02:56 I guess this would not work with mus. Thanks for p
626 root_window_->GetRootWindowController() 627 root_window_->GetRootWindowController()
627 ->ConfigureWidgetInitParamsForContainer( 628 ->ConfigureWidgetInitParamsForContainer(
628 window_label_.get(), 629 window_label_.get(),
629 transform_window_.window()->GetParent()->GetShellWindowId(), 630 transform_window_.window()->GetParent()->GetShellWindowId(),
630 &params_label); 631 &params_label);
631 window_label_.reset(new views::Widget);
632 window_label_->set_focus_on_creation(false); 632 window_label_->set_focus_on_creation(false);
633 window_label_->Init(params_label); 633 window_label_->Init(params_label);
634 window_label_button_view_ = new OverviewLabelButton(this, title); 634 window_label_button_view_ = new OverviewLabelButton(this, title);
635 window_label_button_view_->SetBorder(views::Border::NullBorder()); 635 window_label_button_view_->SetBorder(views::Border::NullBorder());
636 window_label_button_view_->SetEnabledTextColors(kLabelColor); 636 window_label_button_view_->SetEnabledTextColors(kLabelColor);
637 window_label_button_view_->set_animate_on_state_change(false); 637 window_label_button_view_->set_animate_on_state_change(false);
638 WmWindow* label_window = 638 WmWindow* label_window =
639 WmLookup::Get()->GetWindowForWidget(window_label_.get()); 639 WmLookup::Get()->GetWindowForWidget(window_label_.get());
640 if (transform_window_.GetTopInset()) { 640 if (transform_window_.GetTopInset()) {
641 // For windows with headers the overview header fades in above the 641 // For windows with headers the overview header fades in above the
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 animation_settings->AddObserver(observer.get()); 780 animation_settings->AddObserver(observer.get());
781 window_selector_->delegate()->AddDelayedAnimationObserver( 781 window_selector_->delegate()->AddDelayedAnimationObserver(
782 std::move(observer)); 782 std::move(observer));
783 widget_ptr->SetOpacity(0.f); 783 widget_ptr->SetOpacity(0.f);
784 } 784 }
785 785
786 gfx::SlideAnimation* WindowSelectorItem::GetBackgroundViewAnimation() { 786 gfx::SlideAnimation* WindowSelectorItem::GetBackgroundViewAnimation() {
787 return background_view_ ? background_view_->animation() : nullptr; 787 return background_view_ ? background_view_->animation() : nullptr;
788 } 788 }
789 789
790 WmWindow* WindowSelectorItem::GetOverviewWindowForMinimizedStateForTest() {
791 return transform_window_.GetOverviewWindowForMinimizedState();
792 }
793
790 } // namespace ash 794 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698