Support fractional border in rounded input field.

This commit is contained in:
John Preston 2023-07-18 20:44:53 +04:00
parent 1c0889f78a
commit 048156ecda
2 changed files with 8 additions and 7 deletions

View file

@ -1645,20 +1645,19 @@ void InputField::paintRoundSurrounding(
QRect clip,
float64 errorDegree,
float64 focusedDegree) {
const auto divide = _st.borderDenominator ? _st.borderDenominator : 1;
const auto border = _st.border / float64(divide);
const auto borderHalf = border / 2.;
auto pen = anim::pen(_st.borderFg, _st.borderFgActive, focusedDegree);
pen.setWidth(_st.border);
pen.setWidthF(border);
p.setPen(pen);
p.setBrush(anim::brush(_st.textBg, _st.textBgActive, focusedDegree));
PainterHighQualityEnabler hq(p);
const auto radius = _st.borderRadius - (_st.border / 2.);
const auto radius = _st.borderRadius - borderHalf;
p.drawRoundedRect(
QRectF(0, 0, width(), height()).marginsRemoved(
QMarginsF(
_st.border / 2.,
_st.border / 2.,
_st.border / 2.,
_st.border / 2.)),
QMarginsF(borderHalf, borderHalf, borderHalf, borderHalf)),
radius,
radius);
}

View file

@ -285,6 +285,7 @@ InputField {
border: pixels;
borderActive: pixels;
borderRadius: pixels;
borderDenominator: int;
font: font;
menu: PopupMenu;
@ -881,6 +882,7 @@ defaultInputField: InputField {
border: 1px;
borderActive: 2px;
borderRadius: 0px;
borderDenominator: 1;
font: boxTextFont;
menu: defaultPopupMenu;