Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/exo/shell_surface.h" | 5 #include "components/exo/shell_surface.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "ash/common/frame/custom_frame_view_ash.h" | 9 #include "ash/common/frame/custom_frame_view_ash.h" |
| 10 #include "ash/common/shelf/wm_shelf.h" | 10 #include "ash/common/shelf/wm_shelf.h" |
| (...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 489 // managed system modal dialogs using a single ShellSurface instance. | 489 // managed system modal dialogs using a single ShellSurface instance. |
| 490 // Hit-test region will be non-empty when at least one dialog exists on | 490 // Hit-test region will be non-empty when at least one dialog exists on |
| 491 // the client side. Here we detect the transition between no client side | 491 // the client side. Here we detect the transition between no client side |
| 492 // dialog and at least one dialog so activatable state is properly | 492 // dialog and at least one dialog so activatable state is properly |
| 493 // updated. | 493 // updated. |
| 494 if (container_ != ash::kShellWindowId_SystemModalContainer) { | 494 if (container_ != ash::kShellWindowId_SystemModalContainer) { |
| 495 LOG(ERROR) | 495 LOG(ERROR) |
| 496 << "Only a window in SystemModalContainer can change the modality"; | 496 << "Only a window in SystemModalContainer can change the modality"; |
| 497 return; | 497 return; |
| 498 } | 498 } |
| 499 | |
| 500 system_modal_ = system_modal; | |
|
reveman
2017/03/10 21:38:22
should we return early if it didn't change?
khmel
2017/03/10 22:11:32
Done.
| |
| 501 if (!widget_) { | |
| 502 LOG(WARNING) << "Skip setting system modal state to " << system_modal_ | |
|
reveman
2017/03/10 21:38:22
We shouldn't LOG things that can be triggered by a
khmel
2017/03/10 22:11:32
Done.
| |
| 503 << " because window is not ready yet."; | |
| 504 return; | |
| 505 } | |
| 506 | |
| 499 widget_->GetNativeWindow()->SetProperty( | 507 widget_->GetNativeWindow()->SetProperty( |
| 500 aura::client::kModalKey, | 508 aura::client::kModalKey, |
| 501 system_modal ? ui::MODAL_TYPE_SYSTEM : ui::MODAL_TYPE_NONE); | 509 system_modal_ ? ui::MODAL_TYPE_SYSTEM : ui::MODAL_TYPE_NONE); |
| 502 } | 510 } |
|
reveman
2017/03/10 21:38:22
Please add a private UpdateSystemModal() function
khmel
2017/03/10 22:11:32
Done.
| |
| 503 | 511 |
| 504 // static | 512 // static |
| 505 void ShellSurface::SetApplicationId(aura::Window* window, | 513 void ShellSurface::SetApplicationId(aura::Window* window, |
| 506 const std::string& id) { | 514 const std::string& id) { |
| 507 TRACE_EVENT1("exo", "ShellSurface::SetApplicationId", "application_id", id); | 515 TRACE_EVENT1("exo", "ShellSurface::SetApplicationId", "application_id", id); |
| 508 window->SetProperty(aura::client::kAppIdKey, new std::string(id)); | 516 window->SetProperty(aura::client::kAppIdKey, new std::string(id)); |
| 509 } | 517 } |
| 510 | 518 |
| 511 // static | 519 // static |
| 512 const std::string ShellSurface::GetApplicationId(aura::Window* window) { | 520 const std::string ShellSurface::GetApplicationId(aura::Window* window) { |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 759 surface_->window()->SetTransform(transform); | 767 surface_->window()->SetTransform(transform); |
| 760 scale_ = pending_scale_; | 768 scale_ = pending_scale_; |
| 761 } | 769 } |
| 762 | 770 |
| 763 // Show widget if needed. | 771 // Show widget if needed. |
| 764 if (pending_show_widget_) { | 772 if (pending_show_widget_) { |
| 765 DCHECK(!widget_->IsClosed()); | 773 DCHECK(!widget_->IsClosed()); |
| 766 DCHECK(!widget_->IsVisible()); | 774 DCHECK(!widget_->IsVisible()); |
| 767 pending_show_widget_ = false; | 775 pending_show_widget_ = false; |
| 768 widget_->Show(); | 776 widget_->Show(); |
| 777 if (system_modal_) | |
|
reveman
2017/03/10 21:38:22
Please replace these two lines with a call to Upda
khmel
2017/03/10 22:11:32
Done.
| |
| 778 SetSystemModal(true); | |
| 769 } | 779 } |
| 770 } | 780 } |
| 771 } | 781 } |
| 772 | 782 |
| 773 bool ShellSurface::IsSurfaceSynchronized() const { | 783 bool ShellSurface::IsSurfaceSynchronized() const { |
| 774 // A shell surface is always desynchronized. | 784 // A shell surface is always desynchronized. |
| 775 return false; | 785 return false; |
| 776 } | 786 } |
| 777 | 787 |
| 778 //////////////////////////////////////////////////////////////////////////////// | 788 //////////////////////////////////////////////////////////////////////////////// |
| (...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1570 // small style shadow for them. | 1580 // small style shadow for them. |
| 1571 if (!activatable_) | 1581 if (!activatable_) |
| 1572 shadow->SetElevation(wm::ShadowElevation::SMALL); | 1582 shadow->SetElevation(wm::ShadowElevation::SMALL); |
| 1573 // We don't have rounded corners unless frame is enabled. | 1583 // We don't have rounded corners unless frame is enabled. |
| 1574 if (!frame_enabled_) | 1584 if (!frame_enabled_) |
| 1575 shadow->SetRoundedCornerRadius(0); | 1585 shadow->SetRoundedCornerRadius(0); |
| 1576 } | 1586 } |
| 1577 } | 1587 } |
| 1578 | 1588 |
| 1579 } // namespace exo | 1589 } // namespace exo |
| OLD | NEW |