Fixed fade effect for input message fields in compose controls.

This commit is contained in:
23rd 2024-02-16 13:41:58 +03:00 committed by John Preston
parent 18ca4a9eeb
commit 991110b84d
4 changed files with 10 additions and 9 deletions

View file

@ -441,7 +441,9 @@ bool HasSendText(not_null<const Ui::InputField*> field) {
return false;
}
void InitMessageFieldFade(not_null<Ui::InputField*> field) {
void InitMessageFieldFade(
not_null<Ui::InputField*> field,
const style::color &bg) {
class Fade final : public Ui::RpWidget {
public:
using Ui::RpWidget::RpWidget;
@ -467,7 +469,7 @@ void InitMessageFieldFade(not_null<Ui::InputField*> field) {
const auto topFade = Ui::CreateChild<Fade>(field.get());
const auto bottomFade = Ui::CreateChild<Fade>(field.get());
const auto generateFade = [=] {
const auto generateFade = [=, bg = bg->c] {
const auto size = QSize(1, st::historyComposeFieldFadeHeight);
auto fade = QPixmap(size * style::DevicePixelRatio());
fade.setDevicePixelRatio(style::DevicePixelRatio());
@ -476,10 +478,7 @@ void InitMessageFieldFade(not_null<Ui::InputField*> field) {
auto p = QPainter(&fade);
auto gradient = QLinearGradient(0, 1, 0, size.height());
gradient.setStops({
{ 0., st::historyComposeField.textBg->c },
{ .9, Qt::transparent },
});
gradient.setStops({ { 0., bg }, { .9, Qt::transparent } });
p.setPen(Qt::NoPen);
p.setBrush(gradient);
p.drawRect(Rect(size));

View file

@ -79,7 +79,9 @@ void InitSpellchecker(
bool HasSendText(not_null<const Ui::InputField*> field);
void InitMessageFieldFade(not_null<Ui::InputField*> field);
void InitMessageFieldFade(
not_null<Ui::InputField*> field,
const style::color &bg);
struct InlineBotQuery {
QString query;

View file

@ -401,7 +401,7 @@ HistoryWidget::HistoryWidget(
showPremiumToast(document);
return false;
});
InitMessageFieldFade(_field);
InitMessageFieldFade(_field, st::historyComposeField.textBg);
_keyboard->sendCommandRequests(
) | rpl::start_with_next([=](Bot::SendCommandRequest r) {

View file

@ -1583,7 +1583,7 @@ void ComposeControls::initField() {
}
return false;
});
InitMessageFieldFade(_field);
InitMessageFieldFade(_field, _st.field.textBg);
_field->setEditLinkCallback(
DefaultEditLinkCallback(_show, _field, &_st.boxField));
initAutocomplete();