Skip to content
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

feat: add subscriber for wayland #86

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft

Conversation

Decodetalkers
Copy link
Collaborator

This pr add a new crate to support listen to the addon of output.

and allow new layershell be add to target output

resolve: #82

@Decodetalkers Decodetalkers marked this pull request as draft November 9, 2024 07:04
@Decodetalkers Decodetalkers force-pushed the outputsubscription branch 3 times, most recently from 08532b4 to 13fe005 Compare November 11, 2024 11:14
@Decodetalkers
Copy link
Collaborator Author

Seems the wl_output by other task cannot be used to create new layershell? .. Emm

@Decodetalkers Decodetalkers force-pushed the outputsubscription branch 3 times, most recently from b46eb70 to 009f83e Compare November 13, 2024 12:56
This pr add a new crate to support listen to the addon of output.

and allow new layershell be add to target output
self.last_wloutput.clone()
}
events::LayerOutputSetting::ChosenOutput(output) => self
.xdg_info_cache

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self.xdg_info_cache in not always populated at this point
Following cycle must be either copied here or moved outside of if is_allscreens statement where it is already present:

for (_, output_display) in &self.outputs {
    let zxdgoutput = xdg_output_manager.get_xdg_output(output_display, &qh, ());
    self.xdg_info_cache
        .push((output_display.clone(), ZxdgOutputInfo::new(zxdgoutput)));
}

Copy link
Collaborator Author

@Decodetalkers Decodetalkers Nov 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self.xdg_info_cache in not always populated at this point Following cycle must be either copied here or moved outside of if is_allscreens statement where it is already present:

for (_, output_display) in &self.outputs {
    let zxdgoutput = xdg_output_manager.get_xdg_output(output_display, &qh, ());
    self.xdg_info_cache
        .push((output_display.clone(), ZxdgOutputInfo::new(zxdgoutput)));
}

It should has be added at
https://github.com/waycrate/exwlshelleventloop/pull/86/files#diff-d794182b4533a00f543694b67814cc1ffca93afbc14c08c438cb67f8994c821eR2141-R2208

Emm , I do not think add this logic is good..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

Listen Wayland events
2 participants