st: Round CSS units to the nearest multiple of the scale factor
Actors themed through CSS should ideally get sizes and positions that conform to the "pixel grid". A notorious example is the panel that has a height of 1.86em. On unchanged font settings and hidpi that translates to 55px, which leaves the workarea with "half pixels" that hidpi wayland applications don't know how to fully cover. If the requested height is a multiple of the scale factor, the workarea and maximized applications can then work on full pixels. Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/91
This commit is contained in:
parent
5be61bbb68
commit
a540fe4130
@ -1136,10 +1136,14 @@ get_length_from_term_int (StThemeNode *node,
|
|||||||
{
|
{
|
||||||
double value;
|
double value;
|
||||||
GetFromTermResult result;
|
GetFromTermResult result;
|
||||||
|
int scale_factor;
|
||||||
|
|
||||||
result = get_length_from_term (node, term, use_parent_font, &value);
|
result = get_length_from_term (node, term, use_parent_font, &value);
|
||||||
if (result == VALUE_FOUND)
|
if (result == VALUE_FOUND)
|
||||||
*length = (int) (0.5 + value);
|
{
|
||||||
|
g_object_get (node->context, "scale-factor", &scale_factor, NULL);
|
||||||
|
*length = (int) ((value / scale_factor) + 0.5) * scale_factor;
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user