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

[Next] panel: add padding for optimal icon sizes #12576

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

okaestne
Copy link
Contributor

When using the 'scale to panel size optimally' panel option, ensure that
there are some pixels of padding. Otherwise, the icons will fill the
whole height (or width for vertical panels) and thus may also flow over
the panel's border.

The padding has been set to 4px for each side, so that the sizes don't
change when using the default settings. Also, symbolic icons will be
addtionally shrunk to 87.5% to visually match the colored icons (which
also matches the existing effective default proportions (32px colored,
28px symbolic.)
By doing so, merge the two very similar size clamping functions.

With these changes, one can set the colored icons to 'scale optimally'
and crank up the symbolic icon size to max, to always have visually
matching sizes for both.

When using the 'scale to panel size optimally' panel option, ensure that
there are some pixels of padding. Otherwise, the icons will fill the
whole height (or width for vertical panels) and thus may also flow over
the panel's border.

The padding has been set to 4px for each side, so that the sizes don't
change when using the default settings. Also, symbolic icons will be
addtionally shrunk to 87.5% to visually match the colored icons (which
also matches the existing effective default proportions (32px colored,
28px symbolic.)
By doing so, merge the two very similar size clamping functions.

With these changes, one can set the colored icons to 'scale optimally'
and crank up the symbolic icon size to max, to always have visually
matching sizes for both.
@okaestne
Copy link
Contributor Author

okaestne commented Dec 15, 2024

The amount of the effective padding is debatable. I personally would increase it a little more. Also, what do you think about merging the icon size settings, i.e. always setting symbolic icon size to 0.875x colored icon size?

Edit: Instead of tuning the padding for defined icon sizes, we could also think about letting users decide on the padding (related to the panel height in percent?) and calculate the optimal icon sizes based on that. This might be more intuitive when changing the panel height, as users won't need to adjust the fixed icon size(s).

@fredcw
Copy link
Contributor

fredcw commented Dec 15, 2024

Issue: If you set your panel size to say 54 and then try to set the color icon size to 48, it pops it back down to 32. Same with symbolic icon size. This give users less control and makes some configurations impossible.

Some thoughts:

The real option that needs to change is "scale to panel exactly" as I doubt anyone thinks that full height icons with no padding at all looks good, so this option should add padding and the padding should be a percentage of the icon size rather than a fixed number of pixels, say 20% or something.

Also, I don't really see the need to have separate settings for left/centre/right zones. I doubt many people want different sized color icons or symbolic icons on different parts of the panel. So I think the zones option should be removed altogether as it's mainly just an inconvenience.

@JosephMcc
Copy link
Contributor

Also, I don't really see the need to have separate settings for left/centre/right zones. I doubt many people want different sized color icons or symbolic icons on different parts of the panel. So I think the zones option should be removed altogether as it's mainly just an inconvenience.

You'd be completely wrong on that. I want all the applets on the right of the panel at a fairly small size which are mostly symbolic. The menu applet on the left of my panel also uses a symbolic icon and I don't want it that small.

@fredcw
Copy link
Contributor

fredcw commented Dec 16, 2024

@JosephMcc Good point.

Personally, I like @okaestne idea to have a padding percentage setting.

Instead of tuning the padding for defined icon sizes, we could also think about letting users decide on the padding (related to the panel height in percent?) and calculate the optimal icon sizes based on that. This might be more intuitive when changing the panel height, as users won't need to adjust the fixed icon size(s).

This would simplify the settings so that you only have a "Icon padding" percentage spinbutton and a "Use optimal icon sizes only" switch. The padding spinbutton could go in increments of 5% (0%, 5%, 10%,...etc) This would give much more control to users of higher DPI monitors who don't care about default icon sizes. As it is at the moment, only standard icon sizes are possible unless you want full height icons.

Edit: I guess the only issue with this is that some users might not know what "padding" means so an alternative for the spin button could be just "Icon size (%)" with spinbutton options being 100%, 95%, 90%,...etc.

@Secret-chest
Copy link
Contributor

Please no 5% increments. Just let it be set to any value. At least 0.5%.

@fredcw
Copy link
Contributor

fredcw commented Dec 16, 2024

@Secret-chest

Please no 5% increments. Just let it be set to any value. At least 0.5%.

Icon sizes would have to be rounded to the nearest integer anyway. So 0.5% wouldn't make any difference. And with a panel size of 40px, 74%, 75%, and 76% would all be rounded to 30px.

@Secret-chest
Copy link
Contributor

Then calculate the lowest increment based on the panel size? Or allow setting it in both % and px?

@clefebvre clefebvre changed the title panel: add padding for optimal icon sizes [Next] panel: add padding for optimal icon sizes Dec 19, 2024
@JosephMcc
Copy link
Contributor

JosephMcc commented Dec 22, 2024

Icon sizes would have to be rounded to the nearest integer anyway. So 0.5% wouldn't make any difference. And with a panel size of 40px, 74%, 75%, and 76% would all be rounded to 30px.

Well there are multiple issues here. One, color icons cannot be rounded to an arbitrary size without causing blurriness. So you might have a minimum padding value in there, but there is no reason for it to be user adjustable because it won't mean much once icons are adjusted to the needed sizes.

Also, the hard coded .0875 for symbolics is no good. That may work out on one icon theme but not the next. Some themes may design their icons to fill the entire canvas space while others will leaving spacing around the actual drawing. That makes the sizes appear different even when they aren't. So the thinking on that is faulty.

The best you can probably do here is take the panel size minus some constant value and then use that to determine your final icon size.

@Secret-chest
Copy link
Contributor

Please don't change the symbolic size!

  1. The menu icon can be symbolic; it needs to be large like the apps.
  2. I, and I'm sure many others, like large status icons.

@Secret-chest
Copy link
Contributor

Icon sizes would have to be rounded to the nearest integer anyway. So 0.5% wouldn't make any difference. And with a panel size of 40px, 74%, 75%, and 76% would all be rounded to 30px.

Well there are multiple issues here. One, color icons cannot be rounded to an arbitrary size without causing blurriness. So you might have a minimum padding value in there, but there is no reason for it to be user adjustable because it won't mean much once icons are adjusted to the needed sizes.

Also, the hard coded .0875 for symbolics is no good. That may work out on one icon theme but not the next. Some themes may design their icons to fill the entire canvas space while others will leaving spacing around the actual drawing. That makes the sizes appear different even when they aren't. So the thinking on that is faulty.

The best you can probably do here is take the panel size minus some constant value and then use that to determine your final icon size.

Well, that is what the other automatic setting does.

@Secret-chest
Copy link
Contributor

Also, when a value like this can so easily be made configurable (currently a constant, just add a gsetting for it) it really makes no sense for it not to be.

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.

4 participants