Merge lp:~3v1n0/unity/scale-maximized-windows-misalignment-fix into lp:unity

Proposed by Marco Trevisan (Treviño)
Status: Merged
Approved by: Andrea Azzarone
Approved revision: no longer in the source branch.
Merged at revision: 4062
Proposed branch: lp:~3v1n0/unity/scale-maximized-windows-misalignment-fix
Merge into: lp:unity
Diff against target: 126 lines (+68/-2)
4 files modified
launcher/SwitcherView.cpp (+2/-1)
tests/test_layout_system.cpp (+61/-1)
unity-shared/LayoutSystem.cpp (+3/-0)
unity-shared/LayoutSystem.h (+2/-0)
To merge this branch: bzr merge lp:~3v1n0/unity/scale-maximized-windows-misalignment-fix
Reviewer Review Type Date Requested Status
Andrea Azzarone (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+280684@code.launchpad.net

Commit message

LayoutSystem: add ComputeDecorationHeight method to LayoutWindow

Use this only for SwitcherView, while we don't need this trick when using
these windows for generating the spread grid.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Andrea Azzarone (azzar1) wrote :

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'launcher/SwitcherView.cpp'
2--- launcher/SwitcherView.cpp 2015-12-11 12:44:53 +0000
3+++ launcher/SwitcherView.cpp 2015-12-16 11:18:42 +0000
4@@ -604,8 +604,9 @@
5
6 for (Window window : xids)
7 {
8+ bool selected = (window == model_->DetailSelectionWindow());
9 auto layout_window = std::make_shared<LayoutWindow>(window);
10- bool selected = (window == model_->DetailSelectionWindow());
11+ layout_window->ComputeDecorationHeight();
12 layout_window->selected = selected;
13 layout_window->alpha = (selected ? 1.0f : 0.9f) * progress;
14
15
16=== modified file 'tests/test_layout_system.cpp'
17--- tests/test_layout_system.cpp 2014-03-10 13:17:01 +0000
18+++ tests/test_layout_system.cpp 2015-12-16 11:18:42 +0000
19@@ -81,11 +81,71 @@
20 auto fake_window = AddFakeWindowToWM(xid);
21 wm->Maximize(xid);
22
23+ LayoutWindow lwin(xid);
24+ EXPECT_EQ(lwin.xid, xid);
25+ EXPECT_EQ(lwin.geo, fake_window->geo);
26+ EXPECT_EQ(lwin.decoration_height, 0);
27+ EXPECT_EQ(lwin.selected, false);
28+ EXPECT_EQ(lwin.aspect_ratio, fake_window->geo().width / static_cast<float>(fake_window->geo().height));
29+}
30+
31+TEST_F(TestLayoutWindow, InitializationMinimizedMaximizedWindow)
32+{
33+ const Window xid = g_random_int();
34+ auto fake_window = AddFakeWindowToWM(xid);
35+ wm->Maximize(xid);
36+ wm->Minimize(xid);
37+
38+ LayoutWindow lwin(xid);
39+ EXPECT_EQ(lwin.xid, xid);
40+ EXPECT_EQ(lwin.geo, fake_window->geo);
41+ EXPECT_EQ(lwin.decoration_height, 0);
42+ EXPECT_EQ(lwin.selected, false);
43+ EXPECT_EQ(lwin.aspect_ratio, fake_window->geo().width / static_cast<float>(fake_window->geo().height));
44+}
45+
46+TEST_F(TestLayoutWindow, DecorationHeightNormalWindow)
47+{
48+ const Window xid = g_random_int();
49+ auto fake_window = AddFakeWindowToWM(xid);
50+
51+ LayoutWindow lwin(xid);
52+ lwin.ComputeDecorationHeight();
53+ EXPECT_EQ(lwin.xid, xid);
54+ EXPECT_EQ(lwin.geo, fake_window->geo);
55+ EXPECT_EQ(lwin.decoration_height, 0);
56+ EXPECT_EQ(lwin.selected, false);
57+ EXPECT_FLOAT_EQ(lwin.scale, 1.0f);
58+ EXPECT_EQ(lwin.aspect_ratio, fake_window->geo().width / static_cast<float>(fake_window->geo().height));
59+}
60+
61+TEST_F(TestLayoutWindow, DecorationHeightMinimizedNormalWindow)
62+{
63+ const Window xid = g_random_int();
64+ auto fake_window = AddFakeWindowToWM(xid);
65+ wm->Minimize(xid);
66+
67+ LayoutWindow lwin(xid);
68+ lwin.ComputeDecorationHeight();
69+ EXPECT_EQ(lwin.xid, xid);
70+ EXPECT_EQ(lwin.geo, fake_window->geo);
71+ EXPECT_EQ(lwin.decoration_height, 0);
72+ EXPECT_EQ(lwin.selected, false);
73+ EXPECT_EQ(lwin.aspect_ratio, fake_window->geo().width / static_cast<float>(fake_window->geo().height));
74+}
75+
76+TEST_F(TestLayoutWindow, DecorationHeightMaximizedWindow)
77+{
78+ const Window xid = g_random_int();
79+ auto fake_window = AddFakeWindowToWM(xid);
80+ wm->Maximize(xid);
81+
82 nux::Geometry expected_geo(fake_window->geo);
83 unsigned top_deco = wm->GetWindowDecorationSize(xid, WindowManager::Edge::TOP).height;
84 expected_geo.height += top_deco;
85
86 LayoutWindow lwin(xid);
87+ lwin.ComputeDecorationHeight();
88 EXPECT_EQ(lwin.xid, xid);
89 EXPECT_EQ(lwin.geo, expected_geo);
90 EXPECT_EQ(lwin.decoration_height, top_deco);
91@@ -93,7 +153,7 @@
92 EXPECT_EQ(lwin.aspect_ratio, expected_geo.width / static_cast<float>(expected_geo.height));
93 }
94
95-TEST_F(TestLayoutWindow, InitializationMinimizedMaximizedWindow)
96+TEST_F(TestLayoutWindow, DecorationHeightMinimizedMaximizedWindow)
97 {
98 const Window xid = g_random_int();
99 auto fake_window = AddFakeWindowToWM(xid);
100
101=== modified file 'unity-shared/LayoutSystem.cpp'
102--- unity-shared/LayoutSystem.cpp 2014-10-09 13:08:19 +0000
103+++ unity-shared/LayoutSystem.cpp 2015-12-16 11:18:42 +0000
104@@ -301,6 +301,9 @@
105 , aspect_ratio(geo.width / static_cast<float>(geo.height))
106 , scale(1.0f)
107 , alpha(0.0f)
108+{}
109+
110+void LayoutWindow::ComputeDecorationHeight()
111 {
112 auto& wm = WindowManager::Default();
113
114
115=== modified file 'unity-shared/LayoutSystem.h'
116--- unity-shared/LayoutSystem.h 2014-10-09 13:08:19 +0000
117+++ unity-shared/LayoutSystem.h 2015-12-16 11:18:42 +0000
118@@ -38,6 +38,8 @@
119
120 LayoutWindow(Window xid);
121
122+ void ComputeDecorationHeight();
123+
124 Window xid;
125
126 nux::Geometry geo;