| Index: apps/ui/views/shell_window_frame_view.cc
|
| diff --git a/apps/ui/views/shell_window_frame_view.cc b/apps/ui/views/shell_window_frame_view.cc
|
| index 3efa2887dea9c935e85d07539bd1e9634d7cfeaf..c651b3aa477d99673065d1c8506337732357e073 100644
|
| --- a/apps/ui/views/shell_window_frame_view.cc
|
| +++ b/apps/ui/views/shell_window_frame_view.cc
|
| @@ -60,7 +60,7 @@ void ShellWindowFrameView::Init(views::Widget* frame,
|
| resize_inside_bounds_size_ = resize_inside_bounds_size;
|
| resize_area_corner_size_ = resize_area_corner_size;
|
|
|
| - if (!window_->IsFrameless()) {
|
| + if (ShouldShowWindowFrame()) {
|
| ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
|
| close_button_ = new views::ImageButton(this);
|
| close_button_->SetImage(views::CustomButton::STATE_NORMAL,
|
| @@ -127,10 +127,20 @@ void ShellWindowFrameView::Init(views::Widget* frame,
|
| #endif
|
| }
|
|
|
| +bool ShellWindowFrameView::ShouldShowWindowFrame() const {
|
| +#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
|
| + // Linux does not use the custom window frame. The operating system's native
|
| + // window frame will be applied when window_->IsFrameless() is false.
|
| + return false;
|
| +#endif
|
| +
|
| + return !window_->IsFrameless();
|
| +}
|
| +
|
| // views::NonClientFrameView implementation.
|
|
|
| gfx::Rect ShellWindowFrameView::GetBoundsForClientView() const {
|
| - if (window_->IsFrameless() || frame_->IsFullscreen())
|
| + if (!ShouldShowWindowFrame() || frame_->IsFullscreen())
|
| return bounds();
|
| return gfx::Rect(0, kCaptionHeight, width(),
|
| std::max(0, height() - kCaptionHeight));
|
| @@ -138,7 +148,7 @@ gfx::Rect ShellWindowFrameView::GetBoundsForClientView() const {
|
|
|
| gfx::Rect ShellWindowFrameView::GetWindowBoundsForClientBounds(
|
| const gfx::Rect& client_bounds) const {
|
| - if (window_->IsFrameless()) {
|
| + if (!ShouldShowWindowFrame()) {
|
| gfx::Rect window_bounds = client_bounds;
|
| // Enforce minimum size (1, 1) in case that client_bounds is passed with
|
| // empty size. This could occur when the frameless window is being
|
| @@ -198,7 +208,7 @@ int ShellWindowFrameView::NonClientHitTest(const gfx::Point& point) {
|
|
|
| // Check for possible draggable region in the client area for the frameless
|
| // window.
|
| - if (window_->IsFrameless()) {
|
| + if (!ShouldShowWindowFrame()) {
|
| SkRegion* draggable_region = window_->GetDraggableRegion();
|
| if (draggable_region && draggable_region->contains(point.x(), point.y()))
|
| return HTCAPTION;
|
| @@ -243,7 +253,7 @@ gfx::Size ShellWindowFrameView::GetPreferredSize() {
|
| }
|
|
|
| void ShellWindowFrameView::Layout() {
|
| - if (window_->IsFrameless())
|
| + if (!ShouldShowWindowFrame())
|
| return;
|
| gfx::Size close_size = close_button_->GetPreferredSize();
|
| const int kButtonOffsetY = 0;
|
| @@ -290,7 +300,7 @@ void ShellWindowFrameView::Layout() {
|
| }
|
|
|
| void ShellWindowFrameView::OnPaint(gfx::Canvas* canvas) {
|
| - if (window_->IsFrameless())
|
| + if (!ShouldShowWindowFrame())
|
| return;
|
|
|
| ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
|
| @@ -325,7 +335,7 @@ const char* ShellWindowFrameView::GetClassName() const {
|
|
|
| gfx::Size ShellWindowFrameView::GetMinimumSize() {
|
| gfx::Size min_size = frame_->client_view()->GetMinimumSize();
|
| - if (window_->IsFrameless())
|
| + if (!ShouldShowWindowFrame())
|
| return min_size;
|
|
|
| // Ensure we can display the top of the caption area.
|
| @@ -358,7 +368,7 @@ gfx::Size ShellWindowFrameView::GetMaximumSize() {
|
|
|
| void ShellWindowFrameView::ButtonPressed(views::Button* sender,
|
| const ui::Event& event) {
|
| - DCHECK(!window_->IsFrameless());
|
| + DCHECK(ShouldShowWindowFrame());
|
| if (sender == close_button_)
|
| frame_->Close();
|
| else if (sender == maximize_button_)
|
|
|