Mir

Merge lp:~vanvugt/mir/fix-1266385 into lp:mir

Proposed by Daniel van Vugt
Status: Merged
Approved by: Daniel van Vugt
Approved revision: no longer in the source branch.
Merged at revision: 1312
Proposed branch: lp:~vanvugt/mir/fix-1266385
Merge into: lp:mir
Diff against target: 48 lines (+17/-3)
2 files modified
src/server/compositor/bypass.cpp (+5/-3)
tests/unit-tests/compositor/test_bypass.cpp (+12/-0)
To merge this branch: bzr merge lp:~vanvugt/mir/fix-1266385
Reviewer Review Type Date Requested Status
Kevin DuBois (community) Approve
Alan Griffiths Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+200503@code.launchpad.net

Commit message

Avoid accidentally staying in bypass mode when a non-bypassable translucent
surface is on top. (LP: #1266385)

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

LGTM

review: Approve
Revision history for this message
Kevin DuBois (kdub) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/server/compositor/bypass.cpp'
2--- src/server/compositor/bypass.cpp 2013-12-18 02:19:19 +0000
3+++ src/server/compositor/bypass.cpp 2014-01-06 09:16:59 +0000
4@@ -57,9 +57,6 @@
5
6 bool BypassFilter::operator()(const CompositingCriteria &criteria)
7 {
8- if (criteria.alpha() != 1.0f || criteria.shaped())
9- return false;
10-
11 if (!all_orthogonal)
12 return false;
13
14@@ -90,6 +87,11 @@
15 if (!criteria.should_be_rendered_in(display_buffer.view_area()))
16 return false;
17
18+ topmost_fits = false;
19+
20+ if (criteria.alpha() != 1.0f || criteria.shaped())
21+ return false;
22+
23 // Transformed perfectly to fit the monitor? Bypass!
24 topmost_fits = criteria.transformation() == fullscreen;
25 return topmost_fits;
26
27=== modified file 'tests/unit-tests/compositor/test_bypass.cpp'
28--- tests/unit-tests/compositor/test_bypass.cpp 2013-10-15 08:53:10 +0000
29+++ tests/unit-tests/compositor/test_bypass.cpp 2014-01-06 09:16:59 +0000
30@@ -140,6 +140,18 @@
31 EXPECT_FALSE(filter.fullscreen_on_top());
32 }
33
34+TEST_F(BypassFilterTest, translucently_obscured_fullscreen_window_not_bypassed)
35+{ // Regression test for LP: #1266385
36+ BypassFilter filter(display_buffer[0]);
37+
38+ StubCompositingCriteria fs(0, 0, 1920, 1200);
39+ StubCompositingCriteria small(20, 30, 40, 50, 0.5f);
40+
41+ EXPECT_TRUE(filter(fs));
42+ EXPECT_FALSE(filter(small));
43+ EXPECT_FALSE(filter.fullscreen_on_top());
44+}
45+
46 TEST_F(BypassFilterTest, unobscured_fullscreen_window_bypassed)
47 {
48 BypassFilter filter(display_buffer[0]);

Subscribers

People subscribed via source and target branches