Fix CrossLineAnimation with semi-transparent color.
This commit is contained in:
parent
b486260559
commit
6bc9586644
2 changed files with 19 additions and 6 deletions
|
|
@ -584,8 +584,8 @@ groupCallMenuBgOver: #343940; // group call popup menu with mouse over
|
|||
groupCallMenuBgRipple: #3a4047; // group call popup menu ripple effect
|
||||
groupCallLeaveBg: #f75c5c7f; // group call leave button background
|
||||
groupCallLeaveBgRipple: #f75c5c9e; // group call leave button ripple effect
|
||||
groupCallVideoTextFg: #ffffffb2; // group call text over video
|
||||
groupCallVideoSubTextFg: #ffffff66; // group call additional text over video
|
||||
groupCallVideoTextFg: #ffffffe0; // group call text over video
|
||||
groupCallVideoSubTextFg: #ffffffc0; // group call additional text over video
|
||||
|
||||
callBarBg: dialogsBgActive; // active phone call bar background
|
||||
callBarMuteRipple: dialogsRippleBgActive; // active phone call bar mute and hangup button ripple effect
|
||||
|
|
|
|||
|
|
@ -88,15 +88,20 @@ void CrossLineAnimation::fillFrame(
|
|||
|
||||
Painter q(&_frame);
|
||||
PainterHighQualityEnabler hq(q);
|
||||
if (colorOverride) {
|
||||
_st.icon.paint(q, 0, 0, _st.icon.width(), *colorOverride);
|
||||
const auto colorize = ((colorOverride && colorOverride->alpha() != 255)
|
||||
|| (!colorOverride && _st.fg->c.alpha() != 255));
|
||||
const auto color = colorize
|
||||
? QColor(255, 255, 255)
|
||||
: colorOverride;
|
||||
if (color) {
|
||||
_st.icon.paint(q, 0, 0, _st.icon.width(), *color);
|
||||
} else {
|
||||
_st.icon.paint(q, 0, 0, _st.icon.width());
|
||||
}
|
||||
|
||||
if (colorOverride) {
|
||||
if (color) {
|
||||
auto pen = _strokePen;
|
||||
pen.setColor(*colorOverride);
|
||||
pen.setColor(*color);
|
||||
q.setPen(pen);
|
||||
} else {
|
||||
q.setPen(_strokePen);
|
||||
|
|
@ -106,6 +111,14 @@ void CrossLineAnimation::fillFrame(
|
|||
q.setCompositionMode(QPainter::CompositionMode_Source);
|
||||
q.setPen(_transparentPen);
|
||||
q.drawLine(_reversed ? bottomLine : topLine);
|
||||
q.end();
|
||||
|
||||
if (colorize) {
|
||||
style::colorizeImage(
|
||||
_frame,
|
||||
colorOverride.value_or(_st.fg->c),
|
||||
&_frame);
|
||||
}
|
||||
}
|
||||
|
||||
void CrossLineAnimation::invalidate() {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue