-
Notifications
You must be signed in to change notification settings - Fork 104
Add support for wlr-foreign-toplevel-management #451
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
Conversation
emersion
left a comment
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.
It seems like support for Xwayland is missing?
|
Hi emersion, Thanks for the review! I've addressed the comments and added support for XWayland. Please let me know if anything else is needed :) |
|
Thanks for the review! I've moved the foreign-toplevel creation and destruction logic to the map/unmap paths, and moved the duplicated code to view.c. Please let me know if there's anything else needed:) |
|
Hi emersion, I've now moved the request_activate and request_close related code to view.c. I noticed that the view->type == CAGE_XWAYLAND_VIEW check might not be very elegant, but I felt it would be even more awkward to place handle_activate in view.c while splitting handle_close between xdg_shell.c and xwayland.c. Do you have any suggestions for improvement, or is this approach acceptable? Thanks again for your review! |
emersion
left a comment
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.
Thanks for updating this PR! I think we're getting close now.
|
Hi @emersion, I have updated this PR, thanks for the review! Please let me know if there are any other changes needed:) |
4333df7 to
19db25a
Compare
emersion
left a comment
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.
I've pushed some minor cleanups.
LGTM, thank you!
This PR introduces support for the wlr-foreign-toplevel-management protocol in Cage.
The protocol is especially useful in kiosk scenarios. In our use case, the system needs to run multiple windows (for example, a VNC remote connection window and a WebKit browser). We would like these windows to remain active simultaneously and allow a background daemon to handle requests to switch between them. This enables smoother workflows where the remote connection window and the browser can be freely toggled when messages arrive.
I also noticed related discussions in the following issues, where adding support for this protocol has been requested:
• #99
• #302
• #391
This implementation aims to address those needs by integrating the protocol directly into Cage.