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

Reject requests for WM_STATE_ICONIC #3421

Merged
merged 1 commit into from
Sep 26, 2018
Merged

Reject requests for WM_STATE_ICONIC #3421

merged 1 commit into from
Sep 26, 2018

Conversation

9ary
Copy link
Contributor

@9ary 9ary commented Sep 25, 2018

For compatiblity reasons, Wine will request iconic state and cannot ensure that the WM has agreed on it; immediately revert to normal to avoid being stuck in a paused state.

This is a follow-up on #3370. As suggested by @psychon and discussed in the Wine bug report, I've moved this to the notification handler to immediately tell clients that we do not want them to iconize. I've also made it clear that this workaround is specific to Wine.

For compatiblity reasons, Wine will request iconic state and cannot
ensure that the WM has agreed on it; immediately revert to normal to
avoid being stuck in a paused state.
@Airblader
Copy link
Member

Airblader commented Sep 25, 2018

If Wine sends WM_CHANGE_STATE, which i3 currently doesn't claim to support in _NET_SUPPORTED, why doesn't Wine check whether the window manager even supports it and doesn't try to iconify the client in that case? This can be a completely synchronous check on Wine's side.

@9ary
Copy link
Contributor Author

9ary commented Sep 25, 2018

This actually sounds pretty reasonable. I'll ask over there.

@psychon
Copy link
Contributor

psychon commented Sep 25, 2018

@Airblader WM_CHANGE_STATE comes from ICCCM and not from EWMH. _NET_SUPPORTED comes from EWMH.

From "Introduction" / "What is this spec?" in EWMH:

[This spec] builds on the Inter-Client Communication Conventions Manual [ICCCM],

So, since this is not an EWMH-feature, you cannot expect it to be listed in _NET_SUPPORTED (and I bet nothing does so). Also, since this is an ICCCM-feature, i3 does not get to not support this and still claim to be a window manager (ICCCM is the greatest common denominator, afterwards there is just X11 left and nothing will work).
Sorry.

@Airblader
Copy link
Member

That's a good point. I guess we should also not add it to _NET_SUPPORTED then, though. I don't like workarounds for clients (it's not i3's fault that wine has to deal with Windows), but I guess in this case there isn't much harm in it either.

@Streetwalrus Do you think we could add a testcase for this, though?

@9ary
Copy link
Contributor Author

9ary commented Sep 25, 2018

I'm not sure if this is testable. Besides the notification, there's no way to figure out what state the application is in as far as I know.

I don't really like the idea of fixing it in i3 either but I don't really see how it could be done on the Wine side.

@Airblader Airblader merged commit 27afc57 into i3:next Sep 26, 2018
@Airblader
Copy link
Member

Let's give it a go.

@9ary
Copy link
Contributor Author

9ary commented Sep 26, 2018

Thanks!

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

Successfully merging this pull request may close these issues.

3 participants