Merge lp:~alan-griffiths/miral/deconflate-output-from-display into lp:miral

Proposed by Alan Griffiths
Status: Merged
Approved by: Alan Griffiths
Approved revision: 573
Merged at revision: 571
Proposed branch: lp:~alan-griffiths/miral/deconflate-output-from-display
Merge into: lp:miral
Diff against target: 494 lines (+69/-63)
12 files modified
debian/libmiral2.symbols (+1/-0)
include/miral/window_manager_tools.h (+2/-2)
miral-shell/floating_window_manager.cpp (+5/-5)
miral-shell/tiling_window_manager.cpp (+4/-4)
miral-shell/tiling_window_manager.h (+1/-1)
miral/basic_window_manager.cpp (+43/-43)
miral/basic_window_manager.h (+2/-2)
miral/symbols.map (+1/-0)
miral/window_management_trace.cpp (+2/-2)
miral/window_management_trace.h (+1/-1)
miral/window_manager_tools.cpp (+6/-2)
miral/window_manager_tools_implementation.h (+1/-1)
To merge this branch: bzr merge lp:~alan-griffiths/miral/deconflate-output-from-display
Reviewer Review Type Date Requested Status
Gerry Boland (community) Approve
Mir CI Bot continuous-integration Approve
Review via email: mp+328221@code.launchpad.net

Commit message

Correct some conflation of the display and the outputs it includes

To post a comment you must log in.
Revision history for this message
Mir CI Bot (mir-ci-bot) wrote :

PASSED: Continuous integration, rev:573
https://mir-jenkins.ubuntu.com/job/miral-ci/58/
Executed test runs:
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-miral/90
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-0-fetch/5009
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=artful/4998
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial/4998
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-1-sourcepkg/release=zesty/4998
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=amd64,release=artful/94
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=amd64,release=artful/94/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=amd64,release=xenial/94
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=amd64,release=xenial/94/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=amd64,release=zesty/94
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=amd64,release=zesty/94/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=i386,release=artful/94
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=i386,release=artful/94/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=i386,release=xenial/94
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=i386,release=xenial/94/artifact/output/*zip*/output.zip
    SUCCESS: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=i386,release=zesty/94
        deb: https://mir-jenkins.ubuntu.com/job/build-2-binpkg-miral/arch=i386,release=zesty/94/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://mir-jenkins.ubuntu.com/job/miral-ci/58/rebuild

review: Approve (continuous-integration)
Revision history for this message
Gerry Boland (gerboland) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/libmiral2.symbols'
--- debian/libmiral2.symbols 2017-07-26 10:52:45 +0000
+++ debian/libmiral2.symbols 2017-07-28 13:57:06 +0000
@@ -395,3 +395,4 @@
395 (c++)"typeinfo for miral::WindowManagementPolicyAddendum2@MIRAL_1.4.0" 1.4.0395 (c++)"typeinfo for miral::WindowManagementPolicyAddendum2@MIRAL_1.4.0" 1.4.0
396 MIRAL_1.5.0@MIRAL_1.5.0 1.5.0396 MIRAL_1.5.0@MIRAL_1.5.0 1.5.0
397 (c++)"typeinfo for miral::WindowManagementPolicyAddendum3@MIRAL_1.5.0" 1.5.0397 (c++)"typeinfo for miral::WindowManagementPolicyAddendum3@MIRAL_1.5.0" 1.5.0
398 (c++)"miral::WindowManagerTools::active_output()@MIRAL_1.5.0" 1.5.0
398\ No newline at end of file399\ No newline at end of file
399400
=== modified file 'include/miral/window_manager_tools.h'
--- include/miral/window_manager_tools.h 2017-03-23 11:25:25 +0000
+++ include/miral/window_manager_tools.h 2017-07-28 13:57:06 +0000
@@ -160,8 +160,8 @@
160 /// Find the topmost window at the cursor160 /// Find the topmost window at the cursor
161 auto window_at(mir::geometry::Point cursor) const -> Window;161 auto window_at(mir::geometry::Point cursor) const -> Window;
162162
163 /// Find the active display area163 /// Find the active output area
164 auto active_display() -> mir::geometry::Rectangle const;164 auto active_output() -> mir::geometry::Rectangle const;
165165
166 /// Raise window and all its children166 /// Raise window and all its children
167 void raise_tree(Window const& root);167 void raise_tree(Window const& root);
168168
=== modified file 'miral-shell/floating_window_manager.cpp'
--- miral-shell/floating_window_manager.cpp 2017-07-28 13:43:24 +0000
+++ miral-shell/floating_window_manager.cpp 2017-07-28 13:57:06 +0000
@@ -468,7 +468,7 @@
468 {468 {
469 if (auto active_window = tools.active_window())469 if (auto active_window = tools.active_window())
470 {470 {
471 auto active_display = tools.active_display();471 auto active_output = tools.active_output();
472 auto& window_info = tools.info_for(active_window);472 auto& window_info = tools.info_for(active_window);
473 WindowSpecification modifications;473 WindowSpecification modifications;
474474
@@ -477,13 +477,13 @@
477 case KEY_LEFT:477 case KEY_LEFT:
478 modifications.state() = mir_window_state_vertmaximized;478 modifications.state() = mir_window_state_vertmaximized;
479 tools.place_and_size_for_state(modifications, window_info);479 tools.place_and_size_for_state(modifications, window_info);
480 modifications.top_left() = active_display.top_left + title_bar_height;480 modifications.top_left() = active_output.top_left + title_bar_height;
481 break;481 break;
482482
483 case KEY_RIGHT:483 case KEY_RIGHT:
484 modifications.state() = mir_window_state_vertmaximized;484 modifications.state() = mir_window_state_vertmaximized;
485 tools.place_and_size_for_state(modifications, window_info);485 tools.place_and_size_for_state(modifications, window_info);
486 modifications.top_left() = active_display.top_right() -486 modifications.top_left() = active_output.top_right() -
487 as_displacement({active_window.size().width, 0}) + title_bar_height;487 as_displacement({active_window.size().width, 0}) + title_bar_height;
488 break;488 break;
489489
@@ -491,14 +491,14 @@
491 modifications.state() = mir_window_state_horizmaximized;491 modifications.state() = mir_window_state_horizmaximized;
492 tools.place_and_size_for_state(modifications, window_info);492 tools.place_and_size_for_state(modifications, window_info);
493493
494 modifications.top_left() = active_display.top_left + title_bar_height;494 modifications.top_left() = active_output.top_left + title_bar_height;
495 break;495 break;
496496
497 case KEY_DOWN:497 case KEY_DOWN:
498 modifications.state() = mir_window_state_horizmaximized;498 modifications.state() = mir_window_state_horizmaximized;
499 tools.place_and_size_for_state(modifications, window_info);499 tools.place_and_size_for_state(modifications, window_info);
500500
501 modifications.top_left() = active_display.bottom_right() - as_displacement(501 modifications.top_left() = active_output.bottom_right() - as_displacement(
502 modifications.size().is_set() ? modifications.size().value() : active_window.size());502 modifications.size().is_set() ? modifications.size().value() : active_window.size());
503 break;503 break;
504504
505505
=== modified file 'miral-shell/tiling_window_manager.cpp'
--- miral-shell/tiling_window_manager.cpp 2017-07-24 15:30:22 +0000
+++ miral-shell/tiling_window_manager.cpp 2017-07-28 13:57:06 +0000
@@ -457,13 +457,13 @@
457 { return spinner.session() != info.application() && tile_for(info).contains(position);});457 { return spinner.session() != info.application() && tile_for(info).contains(position);});
458}458}
459459
460void TilingWindowManagerPolicy::update_tiles(Rectangles const& displays)460void TilingWindowManagerPolicy::update_tiles(Rectangles const& outputs)
461{461{
462 auto const tile_count = tiles.count();462 auto const tile_count = tiles.count();
463463
464 if (tile_count < 1 || displays.size() < 1) return;464 if (tile_count < 1 || outputs.size() < 1) return;
465465
466 auto const bounding_rect = displays.bounding_rectangle();466 auto const bounding_rect = outputs.bounding_rectangle();
467467
468 auto const total_width = bounding_rect.size.width.as_int();468 auto const total_width = bounding_rect.size.width.as_int();
469 auto const total_height = bounding_rect.size.height.as_int();469 auto const total_height = bounding_rect.size.height.as_int();
@@ -674,7 +674,7 @@
674{674{
675 if (dirty_displays)675 if (dirty_displays)
676 {676 {
677 // Need to acquire lock before accessing displays & dirty_tiles677 // Need to acquire lock before accessing outputs & dirty_tiles
678 tools.invoke_under_lock([this]678 tools.invoke_under_lock([this]
679 {679 {
680 displays = live_displays;680 displays = live_displays;
681681
=== modified file 'miral-shell/tiling_window_manager.h'
--- miral-shell/tiling_window_manager.h 2017-03-06 09:26:44 +0000
+++ miral-shell/tiling_window_manager.h 2017-07-28 13:57:06 +0000
@@ -95,7 +95,7 @@
9595
96 miral::Application application_under(Point position);96 miral::Application application_under(Point position);
9797
98 void update_tiles(Rectangles const& displays);98 void update_tiles(Rectangles const& outputs);
99 void update_surfaces(miral::ApplicationInfo& info, Rectangle const& old_tile, Rectangle const& new_tile);99 void update_surfaces(miral::ApplicationInfo& info, Rectangle const& old_tile, Rectangle const& new_tile);
100100
101 auto transform_set_state(MirWindowState value) -> MirWindowState;101 auto transform_set_state(MirWindowState value) -> MirWindowState;
102102
=== modified file 'miral/basic_window_manager.cpp'
--- miral/basic_window_manager.cpp 2017-07-28 08:54:30 +0000
+++ miral/basic_window_manager.cpp 2017-07-28 13:57:06 +0000
@@ -727,7 +727,7 @@
727 return surface_at ? info_for(surface_at).window() : Window{};727 return surface_at ? info_for(surface_at).window() : Window{};
728}728}
729729
730auto miral::BasicWindowManager::active_display()730auto miral::BasicWindowManager::active_output()
731-> geometry::Rectangle const731-> geometry::Rectangle const
732{732{
733 geometry::Rectangle result;733 geometry::Rectangle result;
@@ -739,13 +739,13 @@
739 auto const surface_rect = surface->input_bounds();739 auto const surface_rect = surface->input_bounds();
740 int max_overlap_area = -1;740 int max_overlap_area = -1;
741741
742 for (auto const& display : displays)742 for (auto const& output : outputs)
743 {743 {
744 auto const intersection = surface_rect.intersection_with(display).size;744 auto const intersection = surface_rect.intersection_with(output).size;
745 if (intersection.width.as_int()*intersection.height.as_int() > max_overlap_area)745 if (intersection.width.as_int()*intersection.height.as_int() > max_overlap_area)
746 {746 {
747 max_overlap_area = intersection.width.as_int()*intersection.height.as_int();747 max_overlap_area = intersection.width.as_int()*intersection.height.as_int();
748 result = display;748 result = output;
749 }749 }
750 }750 }
751 return result;751 return result;
@@ -757,20 +757,20 @@
757 // available.757 // available.
758758
759 // 3. Otherwise, the display that contains the pointer, if there is one.759 // 3. Otherwise, the display that contains the pointer, if there is one.
760 for (auto const& display : displays)760 for (auto const& output : outputs)
761 {761 {
762 if (display.contains(cursor))762 if (output.contains(cursor))
763 {763 {
764 // Ignore the (unspecified) possiblity of overlapping displays764 // Ignore the (unspecified) possiblity of overlapping displays
765 return display;765 return output;
766 }766 }
767 }767 }
768768
769 // 4. Otherwise, the primary display, if there is one (for example, the laptop display).769 // 4. Otherwise, the primary display, if there is one (for example, the laptop display).
770770
771 // 5. Otherwise, the first display.771 // 5. Otherwise, the first display.
772 if (displays.size())772 if (outputs.size())
773 result = *displays.begin();773 result = *outputs.begin();
774774
775 return result;775 return result;
776}776}
@@ -1042,7 +1042,7 @@
1042 return;1042 return;
1043 }1043 }
10441044
1045 auto const display_area = displays.bounding_rectangle();1045 auto const display_area = outputs.bounding_rectangle();
1046 auto const window = window_info.window();1046 auto const window = window_info.window();
10471047
1048 auto restore_rect = window_info.restore_rect();1048 auto restore_rect = window_info.restore_rect();
@@ -1450,7 +1450,7 @@
1450 if (!parameters.state().is_set())1450 if (!parameters.state().is_set())
1451 parameters.state() = mir_window_state_restored;1451 parameters.state() = mir_window_state_restored;
14521452
1453 auto const active_display_area = active_display();1453 auto const active_output_area = active_output();
1454 auto const height = parameters.size().value().height.as_int();1454 auto const height = parameters.size().value().height.as_int();
14551455
1456 bool positioned = false;1456 bool positioned = false;
@@ -1525,35 +1525,35 @@
15251525
1526 if (!positioned)1526 if (!positioned)
1527 {1527 {
1528 auto centred = active_display_area.top_left1528 auto centred = active_output_area.top_left
1529 + 0.5*(as_displacement(active_display_area.size) - as_displacement(parameters.size().value()))1529 + 0.5*(as_displacement(active_output_area.size) - as_displacement(parameters.size().value()))
1530 - DeltaY{(active_display_area.size.height.as_int()-height)/6};1530 - DeltaY{(active_output_area.size.height.as_int()-height)/6};
15311531
1532 switch (parameters.state().value())1532 switch (parameters.state().value())
1533 {1533 {
1534 case mir_window_state_fullscreen:1534 case mir_window_state_fullscreen:
1535 case mir_window_state_maximized:1535 case mir_window_state_maximized:
1536 parameters.top_left() = active_display_area.top_left;1536 parameters.top_left() = active_output_area.top_left;
1537 parameters.size() = active_display_area.size;1537 parameters.size() = active_output_area.size;
1538 break;1538 break;
15391539
1540 case mir_window_state_vertmaximized:1540 case mir_window_state_vertmaximized:
1541 centred.y = active_display_area.top_left.y;1541 centred.y = active_output_area.top_left.y;
1542 parameters.top_left() = centred;1542 parameters.top_left() = centred;
1543 parameters.size() = Size{parameters.size().value().width, active_display_area.size.height};1543 parameters.size() = Size{parameters.size().value().width, active_output_area.size.height};
1544 break;1544 break;
15451545
1546 case mir_window_state_horizmaximized:1546 case mir_window_state_horizmaximized:
1547 centred.x = active_display_area.top_left.x;1547 centred.x = active_output_area.top_left.x;
1548 parameters.top_left() = centred;1548 parameters.top_left() = centred;
1549 parameters.size() = Size{active_display_area.size.width, parameters.size().value().height};1549 parameters.size() = Size{active_output_area.size.width, parameters.size().value().height};
1550 break;1550 break;
15511551
1552 default:1552 default:
1553 parameters.top_left() = centred;1553 parameters.top_left() = centred;
1554 }1554 }
15551555
1556 auto const display_area = displays.bounding_rectangle();1556 auto const display_area = outputs.bounding_rectangle();
15571557
1558 if (parameters.top_left().value().y < display_area.top_left.y)1558 if (parameters.top_left().value().y < display_area.top_left.y)
1559 parameters.top_left() = Point{parameters.top_left().value().x, display_area.top_left.y};1559 parameters.top_left() = Point{parameters.top_left().value().x, display_area.top_left.y};
@@ -1750,7 +1750,7 @@
1750-> mir::optional_value<Rectangle>1750-> mir::optional_value<Rectangle>
1751{1751{
1752 auto const hints = parameters.placement_hints().value();1752 auto const hints = parameters.placement_hints().value();
1753 auto const active_display_area = active_display();1753 auto const active_output_area = active_output();
1754 auto const win_gravity = parameters.window_placement_gravity().value();1754 auto const win_gravity = parameters.window_placement_gravity().value();
17551755
1756 if (parameters.size().is_set())1756 if (parameters.size().is_set())
@@ -1775,7 +1775,7 @@
1775 auto result = constrain_to(parent, anchor_for(aux_rect, rect_gravity) + offset) +1775 auto result = constrain_to(parent, anchor_for(aux_rect, rect_gravity) + offset) +
1776 offset_for(size, win_gravity);1776 offset_for(size, win_gravity);
17771777
1778 if (active_display_area.contains(Rectangle{result, size}))1778 if (active_output_area.contains(Rectangle{result, size}))
1779 return Rectangle{result, size};1779 return Rectangle{result, size};
17801780
1781 if (!default_result.is_set())1781 if (!default_result.is_set())
@@ -1787,7 +1787,7 @@
1787 auto result = constrain_to(parent, anchor_for(aux_rect, flip_x(rect_gravity)) + flip_x(offset)) +1787 auto result = constrain_to(parent, anchor_for(aux_rect, flip_x(rect_gravity)) + flip_x(offset)) +
1788 offset_for(size, flip_x(win_gravity));1788 offset_for(size, flip_x(win_gravity));
17891789
1790 if (active_display_area.contains(Rectangle{result, size}))1790 if (active_output_area.contains(Rectangle{result, size}))
1791 return Rectangle{result, size};1791 return Rectangle{result, size};
1792 }1792 }
17931793
@@ -1796,7 +1796,7 @@
1796 auto result = constrain_to(parent, anchor_for(aux_rect, flip_y(rect_gravity)) + flip_y(offset)) +1796 auto result = constrain_to(parent, anchor_for(aux_rect, flip_y(rect_gravity)) + flip_y(offset)) +
1797 offset_for(size, flip_y(win_gravity));1797 offset_for(size, flip_y(win_gravity));
17981798
1799 if (active_display_area.contains(Rectangle{result, size}))1799 if (active_output_area.contains(Rectangle{result, size}))
1800 return Rectangle{result, size};1800 return Rectangle{result, size};
1801 }1801 }
18021802
@@ -1805,7 +1805,7 @@
1805 auto result = constrain_to(parent, anchor_for(aux_rect, flip_x(flip_y(rect_gravity))) + flip_x(flip_y(offset))) +1805 auto result = constrain_to(parent, anchor_for(aux_rect, flip_x(flip_y(rect_gravity))) + flip_x(flip_y(offset))) +
1806 offset_for(size, flip_x(flip_y(win_gravity)));1806 offset_for(size, flip_x(flip_y(win_gravity)));
18071807
1808 if (active_display_area.contains(Rectangle{result, size}))1808 if (active_output_area.contains(Rectangle{result, size}))
1809 return Rectangle{result, size};1809 return Rectangle{result, size};
1810 }1810 }
1811 }1811 }
@@ -1817,8 +1817,8 @@
18171817
1818 if (hints & mir_placement_hints_slide_x)1818 if (hints & mir_placement_hints_slide_x)
1819 {1819 {
1820 auto const left_overhang = result.x - active_display_area.top_left.x;1820 auto const left_overhang = result.x - active_output_area.top_left.x;
1821 auto const right_overhang = (result + as_displacement(size)).x - active_display_area.top_right().x;1821 auto const right_overhang = (result + as_displacement(size)).x - active_output_area.top_right().x;
18221822
1823 if (left_overhang < DeltaX{0})1823 if (left_overhang < DeltaX{0})
1824 result -= left_overhang;1824 result -= left_overhang;
@@ -1828,8 +1828,8 @@
18281828
1829 if (hints & mir_placement_hints_slide_y)1829 if (hints & mir_placement_hints_slide_y)
1830 {1830 {
1831 auto const top_overhang = result.y - active_display_area.top_left.y;1831 auto const top_overhang = result.y - active_output_area.top_left.y;
1832 auto const bot_overhang = (result + as_displacement(size)).y - active_display_area.bottom_left().y;1832 auto const bot_overhang = (result + as_displacement(size)).y - active_output_area.bottom_left().y;
18331833
1834 if (top_overhang < DeltaY{0})1834 if (top_overhang < DeltaY{0})
1835 result -= top_overhang;1835 result -= top_overhang;
@@ -1837,7 +1837,7 @@
1837 result -= bot_overhang;1837 result -= bot_overhang;
1838 }1838 }
18391839
1840 if (active_display_area.contains(Rectangle{result, size}))1840 if (active_output_area.contains(Rectangle{result, size}))
1841 return Rectangle{result, size};1841 return Rectangle{result, size};
1842 }1842 }
18431843
@@ -1848,8 +1848,8 @@
18481848
1849 if (hints & mir_placement_hints_resize_x)1849 if (hints & mir_placement_hints_resize_x)
1850 {1850 {
1851 auto const left_overhang = result.x - active_display_area.top_left.x;1851 auto const left_overhang = result.x - active_output_area.top_left.x;
1852 auto const right_overhang = (result + as_displacement(size)).x - active_display_area.top_right().x;1852 auto const right_overhang = (result + as_displacement(size)).x - active_output_area.top_right().x;
18531853
1854 if (left_overhang < DeltaX{0})1854 if (left_overhang < DeltaX{0})
1855 {1855 {
@@ -1865,8 +1865,8 @@
18651865
1866 if (hints & mir_placement_hints_resize_y)1866 if (hints & mir_placement_hints_resize_y)
1867 {1867 {
1868 auto const top_overhang = result.y - active_display_area.top_left.y;1868 auto const top_overhang = result.y - active_output_area.top_left.y;
1869 auto const bot_overhang = (result + as_displacement(size)).y - active_display_area.bottom_left().y;1869 auto const bot_overhang = (result + as_displacement(size)).y - active_output_area.bottom_left().y;
18701870
1871 if (top_overhang < DeltaY{0})1871 if (top_overhang < DeltaY{0})
1872 {1872 {
@@ -1880,7 +1880,7 @@
1880 }1880 }
1881 }1881 }
18821882
1883 if (active_display_area.contains(Rectangle{result, size}))1883 if (active_output_area.contains(Rectangle{result, size}))
1884 return Rectangle{result, size};1884 return Rectangle{result, size};
1885 }1885 }
18861886
@@ -2149,7 +2149,7 @@
2149void miral::BasicWindowManager::add_display_for_testing(mir::geometry::Rectangle const& area)2149void miral::BasicWindowManager::add_display_for_testing(mir::geometry::Rectangle const& area)
2150{2150{
2151 Locker lock{this};2151 Locker lock{this};
2152 displays.add(area);2152 outputs.add(area);
21532153
2154 update_windows_for_outputs();2154 update_windows_for_outputs();
2155}2155}
@@ -2157,7 +2157,7 @@
2157void miral::BasicWindowManager::advise_output_create(miral::Output const& output)2157void miral::BasicWindowManager::advise_output_create(miral::Output const& output)
2158{2158{
2159 Locker lock{this};2159 Locker lock{this};
2160 displays.add(output.extents());2160 outputs.add(output.extents());
21612161
2162 update_windows_for_outputs();2162 update_windows_for_outputs();
2163}2163}
@@ -2165,8 +2165,8 @@
2165void miral::BasicWindowManager::advise_output_update(miral::Output const& updated, miral::Output const& original)2165void miral::BasicWindowManager::advise_output_update(miral::Output const& updated, miral::Output const& original)
2166{2166{
2167 Locker lock{this};2167 Locker lock{this};
2168 displays.remove(original.extents());2168 outputs.remove(original.extents());
2169 displays.add(updated.extents());2169 outputs.add(updated.extents());
21702170
2171 update_windows_for_outputs();2171 update_windows_for_outputs();
2172}2172}
@@ -2174,7 +2174,7 @@
2174void miral::BasicWindowManager::advise_output_delete(miral::Output const& output)2174void miral::BasicWindowManager::advise_output_delete(miral::Output const& output)
2175{2175{
2176 Locker lock{this};2176 Locker lock{this};
2177 displays.remove(output.extents());2177 outputs.remove(output.extents());
21782178
2179 update_windows_for_outputs();2179 update_windows_for_outputs();
2180}2180}
@@ -2192,10 +2192,10 @@
2192 }2192 }
2193 }2193 }
21942194
2195 if (displays.size() == 0)2195 if (outputs.size() == 0)
2196 return;2196 return;
21972197
2198 auto const display_area = displays.bounding_rectangle();2198 auto const display_area = outputs.bounding_rectangle();
21992199
2200 for (auto const& window : maximized_surfaces)2200 for (auto const& window : maximized_surfaces)
2201 {2201 {
22022202
=== modified file 'miral/basic_window_manager.h'
--- miral/basic_window_manager.h 2017-07-28 08:54:30 +0000
+++ miral/basic_window_manager.h 2017-07-28 13:57:06 +0000
@@ -176,7 +176,7 @@
176176
177 auto window_at(mir::geometry::Point cursor) const -> Window override;177 auto window_at(mir::geometry::Point cursor) const -> Window override;
178178
179 auto active_display() -> mir::geometry::Rectangle const override;179 auto active_output() -> mir::geometry::Rectangle const override;
180180
181 void raise_tree(Window const& root) override;181 void raise_tree(Window const& root) override;
182 void start_drag_and_drop(WindowInfo& window_info, std::vector<uint8_t> const& handle) override;182 void start_drag_and_drop(WindowInfo& window_info, std::vector<uint8_t> const& handle) override;
@@ -216,7 +216,7 @@
216 std::mutex mutex;216 std::mutex mutex;
217 SessionInfoMap app_info;217 SessionInfoMap app_info;
218 SurfaceInfoMap window_info;218 SurfaceInfoMap window_info;
219 mir::geometry::Rectangles displays;219 mir::geometry::Rectangles outputs;
220 mir::geometry::Point cursor;220 mir::geometry::Point cursor;
221 uint64_t last_input_event_timestamp{0};221 uint64_t last_input_event_timestamp{0};
222#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(0, 27, 0)222#if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(0, 27, 0)
223223
=== modified file 'miral/symbols.map'
--- miral/symbols.map 2017-07-26 10:44:19 +0000
+++ miral/symbols.map 2017-07-28 13:57:06 +0000
@@ -429,6 +429,7 @@
429 miral::WindowManagementPolicyAddendum3::?WindowManagementPolicyAddendum3*;429 miral::WindowManagementPolicyAddendum3::?WindowManagementPolicyAddendum3*;
430 miral::WindowManagementPolicyAddendum3::WindowManagementPolicyAddendum3*;430 miral::WindowManagementPolicyAddendum3::WindowManagementPolicyAddendum3*;
431 miral::WindowManagementPolicyAddendum3::operator*;431 miral::WindowManagementPolicyAddendum3::operator*;
432 miral::WindowManagerTools::active_output*;
432 non-virtual?thunk?to?miral::WindowManagementPolicyAddendum3::?WindowManagementPolicyAddendum3*;433 non-virtual?thunk?to?miral::WindowManagementPolicyAddendum3::?WindowManagementPolicyAddendum3*;
433 typeinfo?for?miral::WindowManagementPolicyAddendum3;434 typeinfo?for?miral::WindowManagementPolicyAddendum3;
434 vtable?for?miral::WindowManagementPolicyAddendum3;435 vtable?for?miral::WindowManagementPolicyAddendum3;
435436
=== modified file 'miral/window_management_trace.cpp'
--- miral/window_management_trace.cpp 2017-03-21 17:55:31 +0000
+++ miral/window_management_trace.cpp 2017-07-28 13:57:06 +0000
@@ -448,10 +448,10 @@
448}448}
449MIRAL_TRACE_EXCEPTION449MIRAL_TRACE_EXCEPTION
450450
451auto miral::WindowManagementTrace::active_display() -> mir::geometry::Rectangle const451auto miral::WindowManagementTrace::active_output() -> mir::geometry::Rectangle const
452try {452try {
453 log_input();453 log_input();
454 auto result = wrapped.active_display();454 auto result = wrapped.active_output();
455 std::stringstream out;455 std::stringstream out;
456 out << result;456 out << result;
457 mir::log_info("%s -> ", __func__, out.str().c_str());457 mir::log_info("%s -> ", __func__, out.str().c_str());
458458
=== modified file 'miral/window_management_trace.h'
--- miral/window_management_trace.h 2017-03-21 17:55:31 +0000
+++ miral/window_management_trace.h 2017-07-28 13:57:06 +0000
@@ -54,7 +54,7 @@
54 virtual auto active_window() const -> Window override;54 virtual auto active_window() const -> Window override;
55 virtual auto select_active_window(Window const& hint) -> Window override;55 virtual auto select_active_window(Window const& hint) -> Window override;
56 virtual auto window_at(mir::geometry::Point cursor) const -> Window override;56 virtual auto window_at(mir::geometry::Point cursor) const -> Window override;
57 virtual auto active_display() -> mir::geometry::Rectangle const override;57 virtual auto active_output() -> mir::geometry::Rectangle const override;
58 virtual auto info_for_window_id(std::string const& id) const -> WindowInfo& override;58 virtual auto info_for_window_id(std::string const& id) const -> WindowInfo& override;
59 virtual auto id_for_window(Window const& window) const -> std::string override;59 virtual auto id_for_window(Window const& window) const -> std::string override;
60 virtual void place_and_size_for_state(WindowSpecification& modifications, WindowInfo const& window_info) const override;60 virtual void place_and_size_for_state(WindowSpecification& modifications, WindowInfo const& window_info) const override;
6161
=== modified file 'miral/window_manager_tools.cpp'
--- miral/window_manager_tools.cpp 2017-03-21 17:55:31 +0000
+++ miral/window_manager_tools.cpp 2017-07-28 13:57:06 +0000
@@ -18,6 +18,7 @@
1818
19#include "miral/window_manager_tools.h"19#include "miral/window_manager_tools.h"
20#include "window_manager_tools_implementation.h"20#include "window_manager_tools_implementation.h"
21#include "both_versions.h"
2122
22miral::WindowManagerTools::WindowManagerTools(WindowManagerToolsImplementation* tools) :23miral::WindowManagerTools::WindowManagerTools(WindowManagerToolsImplementation* tools) :
23 tools{tools}24 tools{tools}
@@ -77,8 +78,11 @@
77auto miral::WindowManagerTools::window_at(mir::geometry::Point cursor) const -> Window78auto miral::WindowManagerTools::window_at(mir::geometry::Point cursor) const -> Window
78{ return tools->window_at(cursor); }79{ return tools->window_at(cursor); }
7980
80auto miral::WindowManagerTools::active_display() -> mir::geometry::Rectangle const81MIRAL_FAKE_OLD_SYMBOL(
81{ return tools->active_display(); }82 _ZN5miral18WindowManagerTools14active_displayEv,
83 _ZN5miral18WindowManagerTools13active_outputEv)
84auto miral::WindowManagerTools::active_output() -> mir::geometry::Rectangle const
85{ return tools->active_output(); }
8286
83void miral::WindowManagerTools::raise_tree(Window const& root)87void miral::WindowManagerTools::raise_tree(Window const& root)
84{ tools->raise_tree(root); }88{ tools->raise_tree(root); }
8589
=== modified file 'miral/window_manager_tools_implementation.h'
--- miral/window_manager_tools_implementation.h 2017-03-21 17:55:31 +0000
+++ miral/window_manager_tools_implementation.h 2017-07-28 13:57:06 +0000
@@ -65,7 +65,7 @@
65 virtual void focus_next_within_application() = 0;65 virtual void focus_next_within_application() = 0;
66 virtual void focus_prev_within_application() = 0;66 virtual void focus_prev_within_application() = 0;
67 virtual auto window_at(mir::geometry::Point cursor) const -> Window = 0;67 virtual auto window_at(mir::geometry::Point cursor) const -> Window = 0;
68 virtual auto active_display() -> mir::geometry::Rectangle const = 0;68 virtual auto active_output() -> mir::geometry::Rectangle const = 0;
69 virtual void raise_tree(Window const& root) = 0;69 virtual void raise_tree(Window const& root) = 0;
70 virtual void start_drag_and_drop(WindowInfo& window_info, std::vector<uint8_t> const& handle) = 0;70 virtual void start_drag_and_drop(WindowInfo& window_info, std::vector<uint8_t> const& handle) = 0;
71 virtual void end_drag_and_drop() = 0;71 virtual void end_drag_and_drop() = 0;

Subscribers

People subscribed via source and target branches