diff --git a/repos/os/src/server/nitpicker/capture_session.h b/repos/os/src/server/nitpicker/capture_session.h index 722073fc90..c71f852b42 100644 --- a/repos/os/src/server/nitpicker/capture_session.h +++ b/repos/os/src/server/nitpicker/capture_session.h @@ -203,7 +203,12 @@ class Nitpicker::Capture_session : public Session_object Area screen_size() const override { - return Rect::intersect(_view_stack.bounding_box(), bounding_box()).area; + Rect const panorama = _view_stack.bounding_box(); + Rect const policy { _anchor_point(), + { .w = _policy.w.or_default(panorama.w()), + .h = _policy.h.or_default(panorama.h()) } }; + + return Rect::intersect(panorama, policy).area; } void screen_size_sigh(Signal_context_capability sigh) override diff --git a/repos/os/src/server/nitpicker/main.cc b/repos/os/src/server/nitpicker/main.cc index 2a42474734..2f5dfc9805 100644 --- a/repos/os/src/server/nitpicker/main.cc +++ b/repos/os/src/server/nitpicker/main.cc @@ -292,6 +292,9 @@ class Nitpicker::Capture_root : public Root_component }, [&] { session.apply_policy(Policy::blocked()); }); }); } + + _sessions.for_each([&] (Capture_session &session) { + session.screen_size_changed(); }); } /**