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

Side by Side Diff: components/mus/public/cpp/lib/window.cc

Issue 1419793006: Makes windowmanager draw non-client area (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add include Created 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/mus/public/cpp/window.h" 5 #include "components/mus/public/cpp/window.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 const bool can_change = OwnsWindow(connection_, this) || is_root; 207 const bool can_change = OwnsWindow(connection_, this) || is_root;
208 if (!can_change) 208 if (!can_change)
209 return; 209 return;
210 if (bounds_ == bounds) 210 if (bounds_ == bounds)
211 return; 211 return;
212 if (connection_) 212 if (connection_)
213 static_cast<WindowTreeClientImpl*>(connection_)->SetBounds(id_, bounds); 213 static_cast<WindowTreeClientImpl*>(connection_)->SetBounds(id_, bounds);
214 LocalSetBounds(bounds_, bounds); 214 LocalSetBounds(bounds_, bounds);
215 } 215 }
216 216
217 void Window::SetClientArea(const gfx::Rect& client_area) { 217 void Window::SetClientArea(const gfx::Insets& client_area) {
218 if (!OwnsWindow(connection_, this) && !IsConnectionRoot(this)) 218 if (!OwnsWindow(connection_, this) && !IsConnectionRoot(this))
219 return; 219 return;
220 220
221 if (connection_) { 221 if (connection_) {
222 static_cast<WindowTreeClientImpl*>(connection_) 222 static_cast<WindowTreeClientImpl*>(connection_)
223 ->SetClientArea(id_, client_area); 223 ->SetClientArea(id_, client_area);
224 } 224 }
225 LocalSetClientArea(client_area); 225 LocalSetClientArea(client_area);
226 } 226 }
227 227
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 bool Window::LocalReorder(Window* relative, mojom::OrderDirection direction) { 528 bool Window::LocalReorder(Window* relative, mojom::OrderDirection direction) {
529 return ReorderImpl(&parent_->children_, this, relative, direction); 529 return ReorderImpl(&parent_->children_, this, relative, direction);
530 } 530 }
531 531
532 void Window::LocalSetBounds(const gfx::Rect& old_bounds, 532 void Window::LocalSetBounds(const gfx::Rect& old_bounds,
533 const gfx::Rect& new_bounds) { 533 const gfx::Rect& new_bounds) {
534 // If this client owns the window, then it should be the only one to change 534 // If this client owns the window, then it should be the only one to change
535 // the bounds. 535 // the bounds.
536 DCHECK(!OwnsWindow(connection_, this) || old_bounds == bounds_); 536 DCHECK(!OwnsWindow(connection_, this) || old_bounds == bounds_);
537 ScopedSetBoundsNotifier notifier(this, old_bounds, new_bounds); 537 ScopedSetBoundsNotifier notifier(this, old_bounds, new_bounds);
538 if (bounds_.size() != new_bounds.size())
539 client_area_ = gfx::Rect(new_bounds.size());
540 bounds_ = new_bounds; 538 bounds_ = new_bounds;
541 } 539 }
542 540
543 void Window::LocalSetClientArea(const gfx::Rect& new_client_area) { 541 void Window::LocalSetClientArea(const gfx::Insets& new_client_area) {
544 const gfx::Rect old_client_area = client_area_; 542 const gfx::Insets old_client_area = client_area_;
545 client_area_ = new_client_area; 543 client_area_ = new_client_area;
546 FOR_EACH_OBSERVER(WindowObserver, observers_, 544 FOR_EACH_OBSERVER(WindowObserver, observers_,
547 OnWindowClientAreaChanged(this, old_client_area)); 545 OnWindowClientAreaChanged(this, old_client_area));
548 } 546 }
549 547
550 void Window::LocalSetViewportMetrics( 548 void Window::LocalSetViewportMetrics(
551 const mojom::ViewportMetrics& old_metrics, 549 const mojom::ViewportMetrics& old_metrics,
552 const mojom::ViewportMetrics& new_metrics) { 550 const mojom::ViewportMetrics& new_metrics) {
553 // TODO(eseidel): We could check old_metrics against viewport_metrics_. 551 // TODO(eseidel): We could check old_metrics against viewport_metrics_.
554 viewport_metrics_ = new_metrics.Clone(); 552 viewport_metrics_ = new_metrics.Clone();
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
664 !static_cast<WindowTreeClientImpl*>(connection_)->is_embed_root()) { 662 !static_cast<WindowTreeClientImpl*>(connection_)->is_embed_root()) {
665 return false; 663 return false;
666 } 664 }
667 665
668 while (!children_.empty()) 666 while (!children_.empty())
669 RemoveChild(children_[0]); 667 RemoveChild(children_[0]);
670 return true; 668 return true;
671 } 669 }
672 670
673 } // namespace mus 671 } // namespace mus
OLDNEW
« no previous file with comments | « components/mus/example/wm/window_manager_impl.cc ('k') | components/mus/public/cpp/lib/window_private.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698