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