-
Notifications
You must be signed in to change notification settings - Fork 103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bugfix: when placing a surface that ignores exclusion zones, the application_zone should be the full display_area #3679
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The place_new_surface()
change is fine (have suggested a readability tweak).
The place_and_size_for_state() is likely harmless but pointless as we're not handling attached windows there. They are handled in
modify_window()` which I think covers all the usecases.
src/miral/basic_window_manager.cpp
Outdated
auto const ignore_exclusion_zones = modifications.ignore_exclusion_zones().is_set() | ||
? modifications.ignore_exclusion_zones().value() | ||
: window_info.ignore_exclusion_zones(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
auto const ignore_exclusion_zones = modifications.ignore_exclusion_zones().is_set() | |
? modifications.ignore_exclusion_zones().value() | |
: window_info.ignore_exclusion_zones(); | |
auto const ignore_exclusion_zones = modifications.ignore_exclusion_zones().value_or( | |
window_info.ignore_exclusion_zones()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But I notice that place_and_size_for_state()
is not handling attached windows anyway. That isn't trivial to change, as the application zone extents may affected by the windows we may be trying to place. And that is beyond the scope of this function.
src/miral/basic_window_manager.cpp
Outdated
auto const ignore_exclusion_zones = parameters.ignore_exclusion_zones().is_set() | ||
&& parameters.ignore_exclusion_zones().value(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
auto const ignore_exclusion_zones = parameters.ignore_exclusion_zones().is_set() | |
&& parameters.ignore_exclusion_zones().value(); | |
auto const ignore_exclusion_zones = parameters.ignore_exclusion_zones().value_or(false); |
…ication_zone should be the full display_area
5069673
to
2c3d235
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
If the surface ignores exclusion zones, then we should use the display area instead of the application zone
cosmic-bg
is now broken always as it should be 🎉