From f2e69d2621a4f57e9c56d1aa1c3d69ec594d2dc0 Mon Sep 17 00:00:00 2001
From: John Preston <johnprestonmail@gmail.com>
Date: Sat, 18 Feb 2017 14:29:19 +0300
Subject: [PATCH] Intro cover now shows palette changes in realtime.

---
 Telegram/SourceFiles/intro/introphone.h    | 2 +-
 Telegram/SourceFiles/intro/introsignup.h   | 2 +-
 Telegram/SourceFiles/intro/introwidget.cpp | 9 +++++++++
 Telegram/SourceFiles/intro/introwidget.h   | 2 +-
 4 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/Telegram/SourceFiles/intro/introphone.h b/Telegram/SourceFiles/intro/introphone.h
index 98743eeca..fd2c35857 100644
--- a/Telegram/SourceFiles/intro/introphone.h
+++ b/Telegram/SourceFiles/intro/introphone.h
@@ -32,7 +32,7 @@ class FlatLabel;
 
 namespace Intro {
 
-class PhoneWidget : public Widget::Step, private base::Subscriber {
+class PhoneWidget : public Widget::Step {
 	Q_OBJECT
 
 public:
diff --git a/Telegram/SourceFiles/intro/introsignup.h b/Telegram/SourceFiles/intro/introsignup.h
index ab6561c5e..d5db7aca7 100644
--- a/Telegram/SourceFiles/intro/introsignup.h
+++ b/Telegram/SourceFiles/intro/introsignup.h
@@ -31,7 +31,7 @@ class NewAvatarButton;
 
 namespace Intro {
 
-class SignupWidget : public Widget::Step, private base::Subscriber {
+class SignupWidget : public Widget::Step {
 	Q_OBJECT
 
 public:
diff --git a/Telegram/SourceFiles/intro/introwidget.cpp b/Telegram/SourceFiles/intro/introwidget.cpp
index 5edfa0e07..4ffe11ad5 100644
--- a/Telegram/SourceFiles/intro/introwidget.cpp
+++ b/Telegram/SourceFiles/intro/introwidget.cpp
@@ -43,6 +43,7 @@ Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
 #include "styles/style_boxes.h"
 #include "styles/style_intro.h"
 #include "styles/style_window.h"
+#include "window/themes/window_theme.h"
 
 namespace Intro {
 
@@ -663,6 +664,14 @@ Widget::Step::Step(QWidget *parent, Data *data, bool hasCover) : TWidget(parent)
 , _title(this, _hasCover ? st::introCoverTitle : st::introTitle)
 , _description(this, object_ptr<Ui::FlatLabel>(this, _hasCover ? st::introCoverDescription : st::introDescription), st::introErrorDuration) {
 	hide();
+	subscribe(Window::Theme::Background(), [this](const Window::Theme::BackgroundUpdate &update) {
+		if (update.paletteChanged()) {
+			if (!_coverMask.isNull()) {
+				_coverMask = QPixmap();
+				prepareCoverMask();
+			}
+		}
+	});
 }
 
 void Widget::Step::prepareShowAnimated(Step *after) {
diff --git a/Telegram/SourceFiles/intro/introwidget.h b/Telegram/SourceFiles/intro/introwidget.h
index f8ac94786..05f61f88f 100644
--- a/Telegram/SourceFiles/intro/introwidget.h
+++ b/Telegram/SourceFiles/intro/introwidget.h
@@ -92,7 +92,7 @@ public:
 		Forward,
 		Replace,
 	};
-	class Step : public TWidget, public RPCSender {
+	class Step : public TWidget, public RPCSender, protected base::Subscriber {
 	public:
 		Step(QWidget *parent, Data *data, bool hasCover = false);