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

Side by Side Diff: mash/wm/frame/non_client_frame_view_mash.h

Issue 1848653006: Random wm frame painting fixes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: override Created 4 years, 8 months 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
« no previous file with comments | « mash/task_viewer/task_viewer.cc ('k') | mash/wm/frame/non_client_frame_view_mash.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef MASH_WM_FRAME_NON_CLIENT_FRAME_VIEW_MASH_H_ 5 #ifndef MASH_WM_FRAME_NON_CLIENT_FRAME_VIEW_MASH_H_
6 #define MASH_WM_FRAME_NON_CLIENT_FRAME_VIEW_MASH_H_ 6 #define MASH_WM_FRAME_NON_CLIENT_FRAME_VIEW_MASH_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "components/mus/public/cpp/window_observer.h" 10 #include "components/mus/public/cpp/window_observer.h"
11 #include "components/mus/public/cpp/window_tree_connection_observer.h"
11 #include "third_party/skia/include/core/SkColor.h" 12 #include "third_party/skia/include/core/SkColor.h"
12 #include "ui/compositor/paint_cache.h" 13 #include "ui/compositor/paint_cache.h"
13 #include "ui/views/window/non_client_view.h" 14 #include "ui/views/window/non_client_view.h"
14 15
15 namespace gfx { 16 namespace gfx {
16 class Insets; 17 class Insets;
17 } 18 }
18 19
19 namespace mus { 20 namespace mus {
20 class Window; 21 class Window;
21 } 22 }
22 23
23 namespace views { 24 namespace views {
24 class Widget; 25 class Widget;
25 } 26 }
26 27
27 namespace mash { 28 namespace mash {
28 namespace wm { 29 namespace wm {
29 30
30 class FrameCaptionButtonContainerView; 31 class FrameCaptionButtonContainerView;
31 32
32 class NonClientFrameViewMash : public views::NonClientFrameView, 33 class NonClientFrameViewMash : public views::NonClientFrameView,
33 public mus::WindowObserver { 34 public mus::WindowObserver,
35 public mus::WindowTreeConnectionObserver {
34 public: 36 public:
35 // Internal class name. 37 // Internal class name.
36 static const char kViewClassName[]; 38 static const char kViewClassName[];
37 39
38 NonClientFrameViewMash(views::Widget* frame, mus::Window* window); 40 NonClientFrameViewMash(views::Widget* frame, mus::Window* window);
39 ~NonClientFrameViewMash() override; 41 ~NonClientFrameViewMash() override;
40 42
41 static gfx::Insets GetPreferredClientAreaInsets(); 43 static gfx::Insets GetPreferredClientAreaInsets();
42 static int GetMaxTitleBarButtonWidth(); 44 static int GetMaxTitleBarButtonWidth();
43 45
(...skipping 20 matching lines...) Expand all
64 gfx::Size GetMaximumSize() const override; 66 gfx::Size GetMaximumSize() const override;
65 void OnPaint(gfx::Canvas* canvas) override; 67 void OnPaint(gfx::Canvas* canvas) override;
66 void PaintChildren(const ui::PaintContext& context) override; 68 void PaintChildren(const ui::PaintContext& context) override;
67 69
68 // mus::WindowObserver: 70 // mus::WindowObserver:
69 void OnWindowClientAreaChanged( 71 void OnWindowClientAreaChanged(
70 mus::Window* window, 72 mus::Window* window,
71 const gfx::Insets& old_client_area, 73 const gfx::Insets& old_client_area,
72 const std::vector<gfx::Rect>& old_additional_client_area) override; 74 const std::vector<gfx::Rect>& old_additional_client_area) override;
73 void OnWindowDestroyed(mus::Window* window) override; 75 void OnWindowDestroyed(mus::Window* window) override;
76 void OnWindowSharedPropertyChanged(
77 mus::Window* window,
78 const std::string& name,
79 const std::vector<uint8_t>* old_data,
80 const std::vector<uint8_t>* new_data) override;
74 81
75 // Get the view of the header. 82 // Get the view of the header.
76 views::View* GetHeaderView(); 83 views::View* GetHeaderView();
77 84
78 private: 85 private:
79 class OverlayView; 86 class OverlayView;
80 87
81 // Height from top of window to top of client area. 88 // Height from top of window to top of client area.
82 int NonClientTopBorderHeight() const; 89 int NonClientTopBorderHeight() const;
83 90
91 void RemoveObservers();
92
93 // mus::WindowTreeConnectionObserver:
94 void OnWindowTreeFocusChanged(mus::Window* gained_focus,
95 mus::Window* lost_focus) override;
96
84 // Not owned. 97 // Not owned.
85 views::Widget* frame_; 98 views::Widget* frame_;
86 99
87 mus::Window* window_; 100 mus::Window* window_;
88 ui::PaintCache paint_cache_; 101 ui::PaintCache paint_cache_;
89 102
90 // View which contains the title and window controls. 103 // View which contains the title and window controls.
91 class HeaderView; 104 class HeaderView;
92 HeaderView* header_view_; 105 HeaderView* header_view_;
93 106
94 DISALLOW_COPY_AND_ASSIGN(NonClientFrameViewMash); 107 DISALLOW_COPY_AND_ASSIGN(NonClientFrameViewMash);
95 }; 108 };
96 109
97 } // namespace wm 110 } // namespace wm
98 } // namespace mash 111 } // namespace mash
99 112
100 #endif // MASH_WM_FRAME_NON_CLIENT_FRAME_VIEW_MASH_H_ 113 #endif // MASH_WM_FRAME_NON_CLIENT_FRAME_VIEW_MASH_H_
OLDNEW
« no previous file with comments | « mash/task_viewer/task_viewer.cc ('k') | mash/wm/frame/non_client_frame_view_mash.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698