-
Notifications
You must be signed in to change notification settings - Fork 144
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
Add keepBorder <theme>
option and enable it by default
#876
Conversation
791b5c6
to
22ed9c6
Compare
Thanks! Looks good. |
Another issue is that manually enabling SSDs on a CSD client correctly shows the SSD but when then disabling it again (with keepBorder enabled) it will keep the borders, e.g. once SSD is enabled you can't get rid of it anymore. I am not sure how that could be fixed as the intention to disable the SSD can mean different things. |
Hi. Any news how this goes? |
The first issue (keep state on Reconfigure) should be relatively easy to fix (but requires saving some state outside of The second issue however.. I am not sure.
The second option (3-state) sounds not that hard to implement actually but I am not sure if that is the behavior a user would expect. In my eyes it seems like the most flexible option though as it allows the user to express all variants including having no decorations at all, even with Edit: Restore-on-Reconfigure still needs fixing. |
22ed9c6
to
3a4deb6
Compare
Yes, I think this proposal makes a lot of sense. It would be pretty annoying if someone turned on SSD on a CSD client and then couldn't get rid of it 😄 I've had a play and it feels nice. It keeps it clean with the current client-menu too. If - in the future - there is a use-case of a more direct set/unset of titlebar/ssd I guess we could add window-action like:
I've just had a fresh look through the code. It's probably just my brain not keeping up, but... src/ssd/ssd.c:36: why |
So completely remove the
Good idea. That would also be useful for the window rules. Or we add further options to the existing property instead.
Just looked at that part and was confused as well. But it actually makes sense if what the comment on top says is true: that function has to return the correct dimensions even before /*
* Check preconditions for displaying SSD. Note that this
* needs to work even before ssd_create() has been called.
*/
if (!view->ssd_enabled || view->fullscreen) {
return (struct border){ 0 };
} Thus when we are at the bottom of the function it doesn't matter if Edit: |
Good stuff. Yes, completely remove the keepBorder setting and just always use the 3-state variant. It’s a deviation from Openbox, but I think we need the flexibility. |
cf46b5d
to
8052952
Compare
I had some further thoughts on the So unless the user manually disables the setting the 3-state variant is used, with the config setting disabled the old 2-state variant. I think this is a good compromise about flexibility and respecting user wishes. But I would also be up to remove the option if @johanmalm prefers. Also added docs and fixed exiting fullscreen. IMHO this PR is basically ready, would just need to squash the commits into one and write a proper commit message. A final test would also be appreciated. |
Good compromise. |
Have tested. Works well. |
With the new keepBorder option enabled, the ToggleDecorations action now has 3 states: - the first time only disables the titlebar - the second time disables the whole SSD - the third time enables the whole SSD again When the keepBorder action is disabled, the old 2-state behavior is restored, e.g. the ToggleDecorations action only toggles between on and off. Fixes labwc#813
5491ce3
to
eb29e6c
Compare
<theme>
option and enable it by default
Fixes #813
Just a quick and dirty implementation with not that much testing.
TODO:
!view->ssd
inssd_thickness()
keepBorder
setting and if notRemove the settingUpdate docs