Use selected text colors from the palette.

On macOS in Dark Mode + Graphite system settings have selected text color
'white' and selected text background color 'white+opacity'.

It looks fine if the control background is dark, but in case of custom color
themes with white control background the selected text becomes invisible.
This commit is contained in:
John Preston 2019-11-07 10:37:46 +03:00
parent b12d0dbe9a
commit c68dceb189

View file

@ -13,6 +13,7 @@
#include "base/openssl_help.h"
#include "base/platform/base_platform_info.h"
#include "emoji_suggestions_helper.h"
#include "styles/palette.h"
#include <QtWidgets/QCommonStyle>
#include <QtWidgets/QScrollBar>
@ -967,6 +968,8 @@ FlatInput::FlatInput(
void FlatInput::updatePalette() {
auto p = palette();
p.setColor(QPalette::Text, _st.textColor->c);
p.setColor(QPalette::Highlight, st::msgInBgSelected->c);
p.setColor(QPalette::HighlightedText, st::historyTextInFgSelected->c);
setPalette(p);
}
@ -1368,6 +1371,8 @@ bool InputField::viewportEventInner(QEvent *e) {
void InputField::updatePalette() {
auto p = _inner->palette();
p.setColor(QPalette::Text, _st.textFg->c);
p.setColor(QPalette::Highlight, st::msgInBgSelected->c);
p.setColor(QPalette::HighlightedText, st::historyTextInFgSelected->c);
_inner->setPalette(p);
_defaultCharFormat.merge(PrepareTagFormat(_st, QString()));
@ -3595,6 +3600,8 @@ MaskedInputField::MaskedInputField(
void MaskedInputField::updatePalette() {
auto p = palette();
p.setColor(QPalette::Text, _st.textFg->c);
p.setColor(QPalette::Highlight, st::msgInBgSelected->c);
p.setColor(QPalette::HighlightedText, st::historyTextInFgSelected->c);
setPalette(p);
}