Provide correct colors for spoiler selection.

This commit is contained in:
John Preston 2022-09-17 01:59:01 +04:00
parent bd7098ef42
commit 4ff5bc5773
4 changed files with 22 additions and 22 deletions

View file

@ -9,15 +9,14 @@ using "ui/colors.palette";
TextPalette { TextPalette {
linkFg: color; linkFg: color;
monoFg: color; monoFg: color;
spoilerFg: color;
selectBg: color; selectBg: color;
selectFg: color; selectFg: color;
selectLinkFg: color; selectLinkFg: color;
selectMonoFg: color; selectMonoFg: color;
selectSpoilerFg: color;
selectOverlay: color; selectOverlay: color;
linkAlwaysActive: int; linkAlwaysActive: int;
spoilerBg: color;
spoilerActiveBg: color;
spoilerActiveFg: color;
} }
TextStyle { TextStyle {
@ -42,14 +41,13 @@ lineWidth: 1px;
defaultTextPalette: TextPalette { defaultTextPalette: TextPalette {
linkFg: windowActiveTextFg; linkFg: windowActiveTextFg;
monoFg: msgInMonoFg; monoFg: msgInMonoFg;
spoilerFg: msgInDateFg;
selectBg: msgInBgSelected; selectBg: msgInBgSelected;
selectFg: transparent; // use painter current pen instead selectFg: transparent; // use painter current pen instead
selectLinkFg: historyLinkInFgSelected; selectLinkFg: historyLinkInFgSelected;
selectMonoFg: msgInMonoFgSelected; selectMonoFg: msgInMonoFgSelected;
selectSpoilerFg: msgInDateFgSelected;
selectOverlay: msgSelectOverlay; selectOverlay: msgSelectOverlay;
spoilerBg: msgInDateFg;
spoilerActiveBg: msgInDateFg;
spoilerActiveFg: msgInBg;
} }
defaultTextStyle: TextStyle { defaultTextStyle: TextStyle {
font: normalFont; font: normalFont;
@ -126,10 +124,12 @@ msgDateTextStyle: defaultTextStyle;
serviceTextPalette: TextPalette(defaultTextPalette) { serviceTextPalette: TextPalette(defaultTextPalette) {
linkFg: msgServiceFg; linkFg: msgServiceFg;
monoFg: msgServiceFg; monoFg: msgServiceFg;
spoilerFg: msgServiceFg;
selectBg: msgServiceBgSelected; selectBg: msgServiceBgSelected;
selectFg: msgServiceFg; selectFg: msgServiceFg;
selectLinkFg: msgServiceFg; selectLinkFg: msgServiceFg;
selectMonoFg: msgServiceFg; selectMonoFg: msgServiceFg;
selectSpoilerFg: msgServiceFg;
selectOverlay: msgServiceBgSelected; selectOverlay: msgServiceBgSelected;
} }
serviceTextStyle: TextStyle(defaultTextStyle) { serviceTextStyle: TextStyle(defaultTextStyle) {
@ -140,34 +140,34 @@ serviceTextStyle: TextStyle(defaultTextStyle) {
inTextPalette: TextPalette(defaultTextPalette) { inTextPalette: TextPalette(defaultTextPalette) {
linkFg: historyLinkInFg; linkFg: historyLinkInFg;
monoFg: msgInMonoFg; monoFg: msgInMonoFg;
spoilerFg: msgInDateFg;
selectBg: msgInBgSelected; selectBg: msgInBgSelected;
selectFg: historyTextInFgSelected; selectFg: historyTextInFgSelected;
selectLinkFg: historyLinkInFgSelected; selectLinkFg: historyLinkInFgSelected;
selectMonoFg: msgInMonoFgSelected; selectMonoFg: msgInMonoFgSelected;
selectSpoilerFg: msgInDateFgSelected;
selectOverlay: msgSelectOverlay; selectOverlay: msgSelectOverlay;
spoilerBg: msgInDateFg;
spoilerActiveBg: msgInDateFg;
spoilerActiveFg: msgInBg;
} }
inTextPaletteSelected: TextPalette(inTextPalette) { inTextPaletteSelected: TextPalette(inTextPalette) {
linkFg: historyLinkInFgSelected; linkFg: historyLinkInFgSelected;
monoFg: msgInMonoFgSelected; monoFg: msgInMonoFgSelected;
spoilerFg: msgInDateFgSelected;
} }
outTextPalette: TextPalette(defaultTextPalette) { outTextPalette: TextPalette(defaultTextPalette) {
linkFg: historyLinkOutFg; linkFg: historyLinkOutFg;
monoFg: msgOutMonoFg; monoFg: msgOutMonoFg;
spoilerFg: msgOutDateFg;
selectBg: msgOutBgSelected; selectBg: msgOutBgSelected;
selectFg: historyTextOutFgSelected; selectFg: historyTextOutFgSelected;
selectLinkFg: historyLinkOutFgSelected; selectLinkFg: historyLinkOutFgSelected;
selectMonoFg: msgOutMonoFgSelected; selectMonoFg: msgOutMonoFgSelected;
selectSpoilerFg: msgOutDateFgSelected;
selectOverlay: msgSelectOverlay; selectOverlay: msgSelectOverlay;
spoilerBg: msgOutDateFg;
spoilerActiveBg: msgOutDateFg;
spoilerActiveFg: msgOutBg;
} }
outTextPaletteSelected: TextPalette(outTextPalette) { outTextPaletteSelected: TextPalette(outTextPalette) {
linkFg: historyLinkOutFgSelected; linkFg: historyLinkOutFgSelected;
monoFg: msgOutMonoFgSelected; monoFg: msgOutMonoFgSelected;
spoilerFg: msgOutDateFgSelected;
} }
fwdTextStyle: TextStyle(semiboldTextStyle) { fwdTextStyle: TextStyle(semiboldTextStyle) {
linkFontOver: semiboldFont; linkFontOver: semiboldFont;

View file

@ -757,7 +757,7 @@ bool Renderer::drawLine(uint16 _lineEnd, const String::TextBlocks::const_iterato
} }
} }
} }
const auto hasSpoiler = _background.color && const auto hasSpoiler = _background.spoiler &&
(_background.inFront || _background.startMs); (_background.inFront || _background.startMs);
if (hasSpoiler) { if (hasSpoiler) {
fillSpoiler = { x, si.width }; fillSpoiler = { x, si.width };
@ -789,7 +789,7 @@ bool Renderer::drawLine(uint16 _lineEnd, const String::TextBlocks::const_iterato
_customEmojiSkip = (st::emojiSize - _customEmojiSize) / 2; _customEmojiSkip = (st::emojiSize - _customEmojiSize) / 2;
} }
custom->paint(*_p, { custom->paint(*_p, {
.preview = _palette->spoilerActiveBg->c, .preview = _palette->spoilerFg->c,
.now = now(), .now = now(),
.position = { x + _customEmojiSkip, y + _customEmojiSkip }, .position = { x + _customEmojiSkip, y + _customEmojiSkip },
.paused = _paused, .paused = _paused,
@ -1072,7 +1072,7 @@ void Renderer::fillSpoilerRange(
int currentBlockIndex, int currentBlockIndex,
int positionFrom, int positionFrom,
int positionTill) { int positionTill) {
if (!_background.color || !_t->_spoiler) { if (!_background.spoiler || !_t->_spoiler) {
return; return;
} }
const auto elided = (_indexOfElidedBlock == currentBlockIndex) const auto elided = (_indexOfElidedBlock == currentBlockIndex)
@ -1089,7 +1089,7 @@ void Renderer::fillSpoilerRange(
useWidth, useWidth,
_fontHeight); _fontHeight);
if (_spoilerCache) { if (_spoilerCache) {
const auto mess = _spoilerCache->lookup((*_background.color)->c); const auto mess = _spoilerCache->lookup((*_background.spoiler)->c);
const auto spoiler = _t->_spoiler.get(); const auto spoiler = _t->_spoiler.get();
const auto frame = mess->frame( const auto frame = mess->frame(
spoiler->animation.index(now(), _paused)); spoiler->animation.index(now(), _paused));
@ -1920,9 +1920,8 @@ void Renderer::applyBlockProperties(const AbstractBlock *block) {
= _t->_spoiler->links.at(block->spoilerIndex() - 1); = _t->_spoiler->links.at(block->spoilerIndex() - 1);
const auto inBack = (handler && handler->shown()); const auto inBack = (handler && handler->shown());
_background.inFront = !inBack; _background.inFront = !inBack;
_background.color = inBack _background.spoiler = &_palette->spoilerFg;
? &_palette->spoilerActiveBg _background.spoilerSelected = &_palette->selectSpoilerFg;
: &_palette->spoilerBg;
_background.startMs = handler ? handler->startMs() : 0; _background.startMs = handler ? handler->startMs() : 0;
_background.spoilerIndex = block->spoilerIndex(); _background.spoilerIndex = block->spoilerIndex();
} }

View file

@ -100,7 +100,8 @@ private:
const QPen *_currentPen = nullptr; const QPen *_currentPen = nullptr;
const QPen *_currentPenSelected = nullptr; const QPen *_currentPenSelected = nullptr;
struct { struct {
const style::color *color = nullptr; const style::color *spoiler = nullptr;
const style::color *spoilerSelected = nullptr;
bool inFront = false; bool inFront = false;
crl::time startMs = 0; crl::time startMs = 0;
uint16 spoilerIndex = 0; uint16 spoilerIndex = 0;

View file

@ -765,7 +765,7 @@ QTextCharFormat PrepareTagFormat(
color = st::defaultTextPalette.monoFg; color = st::defaultTextPalette.monoFg;
font = font->monospace(); font = font->monospace();
} else if (tag == kTagSpoiler) { } else if (tag == kTagSpoiler) {
bg = st::defaultTextPalette.spoilerActiveBg; bg = st::msgInDateFg;
} }
}; };
for (const auto &tag : TextUtilities::SplitTags(tag)) { for (const auto &tag : TextUtilities::SplitTags(tag)) {
@ -1426,7 +1426,7 @@ void CustomEmojiObject::drawObject(
return; return;
} }
i->second->paint(*painter, { i->second->paint(*painter, {
.preview = st::defaultTextPalette.spoilerActiveBg->c, .preview = st::windowBgRipple->c,
.now = _now, .now = _now,
.position = QPoint( .position = QPoint(
int(base::SafeRound(rect.x())) + st::emojiPadding + _skip, int(base::SafeRound(rect.x())) + st::emojiPadding + _skip,