From def97b3f705de29de15fba88daea6759055cf86e Mon Sep 17 00:00:00 2001
From: John Preston <johnprestonmail@gmail.com>
Date: Tue, 5 Sep 2017 19:34:36 +0300
Subject: [PATCH] Update faved sticker / saved GIF remove button.

---
 Telegram/Resources/colors.palette               |   2 +-
 Telegram/Resources/icons/emoji_delete.png       | Bin 131 -> 211 bytes
 Telegram/Resources/icons/emoji_delete@2x.png    | Bin 182 -> 272 bytes
 Telegram/Resources/icons/emoji_delete_bg.png    | Bin 137 -> 141 bytes
 Telegram/Resources/icons/emoji_delete_bg@2x.png | Bin 243 -> 245 bytes
 .../SourceFiles/chat_helpers/chat_helpers.style |  11 ++++++-----
 .../chat_helpers/stickers_list_widget.cpp       |  12 +++++++-----
 .../inline_bots/inline_bot_layout_internal.cpp  |  14 ++++++++------
 8 files changed, 22 insertions(+), 17 deletions(-)

diff --git a/Telegram/Resources/colors.palette b/Telegram/Resources/colors.palette
index ec28a02c4..60b942ea8 100644
--- a/Telegram/Resources/colors.palette
+++ b/Telegram/Resources/colors.palette
@@ -255,7 +255,7 @@ emojiPanHeaderFg: windowSubTextFg; // emoji panel section header text
 emojiPanHeaderBg: #fffffff2 | emojiPanBg; // emoji panel section header background
 emojiIconFg: checkboxFg; // emoji category icon
 emojiIconFgActive: windowBgActive; // active emoji category icon
-stickerPanDeleteBg: #000000cc; // delete X button background for custom sent stickers in stickers panel (legacy)
+stickerPanDeleteBg: #000000ff; // delete X button background for custom sent stickers in stickers panel (legacy)
 stickerPanDeleteFg: windowFgActive; // delete X button icon for custom sent stickers in stickers panel (legacy)
 stickerPreviewBg: #ffffffb0; // sticker and GIF preview background (when you press and hold on a sticker)
 
diff --git a/Telegram/Resources/icons/emoji_delete.png b/Telegram/Resources/icons/emoji_delete.png
index 8023fa4239288690840881fb33506c7229d1c148..864252d7fc535cbcd8f7a9c814f9d1fb5ca3f73f 100644
GIT binary patch
literal 211
zcmV;^04)EBP)<h;3K|Lk000e1NJLTq000gE000gM1^@s6A4o0H0001*Nkl<ZD3QIA
zK?=h#3<RBCwEure<cn>6A^Owwln~RT&{Dc!kd0>13NNJ;$`^Wk1N{!%wymt|S|lBB
zW>(z2WabOZerl}%wAPS>nbBGUz}-3bPM{=u?*NQ37-LLEx8M#(1iK>Q3gU7(z*L{_
zml-7;nId8u)y(ckb$0-I??{@A-YzFIskKg-B;oF4<^(P~{i*){<(?t;wmR;bZNC5j
N002ovPDHLkV1hv-SLXl#

literal 131
zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&kFHaZ85RHj*`#rfB6nK~y|NkF6
z&um^x7xy;Xt%+>2)Hqd_r9bf9u$OT;kLL}x17_=e5+fV9_izR7I<Un1dc4+jyV9=m
f+1K7L@#eq&cg91vIe)JLO=a+O^>bP0l+XkKhT1Ka

diff --git a/Telegram/Resources/icons/emoji_delete@2x.png b/Telegram/Resources/icons/emoji_delete@2x.png
index bae82620aca7ef381c0e863294fc36683c98a73b..6283a9eba0b6a2f2d50458a5b489cf8a67a97f4e 100644
GIT binary patch
literal 272
zcmV+r0q_2aP)<h;3K|Lk000e1NJLTq000~S000~a1^@s6at+^<0002jNkl<ZNQv#$
zJr2Vl3<Y4P7jZ5JR|PH+1}+c__ScE3O5^+uR$IkVwkLnV!pT5HAj5iCVmJ8bpmUBy
zghB|!%)5=4nL-F8BIKOg%wp}C=NY}GX#z8^=7<Q)jGXf;FCuDI1yf3RFAZH{0FY8T
z502yb(P)XTVL9i`X{exv_J$X+ZBRo?DJZ2}!S+FIbQiH>U`Lmy>Zd({!F=)Q$Xl6?
z)b!Gru7&yHn}6C`YrB|+w${#r-h0$q5o0`b8JHO{M$}s2y;pNXSFP%M{`fceGvE_o
WF8_Am;Q@#M0000<MNUMnLSTY|UUmrp

literal 182
zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjwVp1HAs(G~Lml}JC~zG9``^D-
z%6g}c6<cf=|D=LVTND<YJ#(j}Oyi`vI75Ki$qjZ@<_wo_zF^R+Y3O7&nyB<GT45r`
zeA(bs4FSQ4Pu?^6E2&iK33Q5_jNO-!$$Ck9l3AqHvP-VfpF#|Lm&os~PDpeL%6YA&
fb^FKZKd1e4CHnrZlzbinbO?i|tDnm{r-UW|*C#=l

diff --git a/Telegram/Resources/icons/emoji_delete_bg.png b/Telegram/Resources/icons/emoji_delete_bg.png
index 6f973e511217c698c039fb73fd1571f1bd8c09ec..251e7cd2e9a5364c3ca00392097af36df3d408d6 100644
GIT binary patch
literal 141
zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0y_5KkA!5RHj%FDddJFyL_xT(6MM
z?^6+RetOKo$CsCEn|SQo&&i#NN+soKYT>DBcjqcO&A2IK6C9e9{xbKclBbE3?3csm
p6GCMduR1iNSnhBK!!GsxjPg6LZ@+u4^eWJN22WQ%mvv4FO#tRSGY9|x

literal 137
zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a)408bak5RHj<Cn*XYaNuCREWAgS
zQ||ch2iz;)f3a$R`^q<oNpRur&8v1SUiIRgh~S|!+a3vrs_vV0f12K;BMqh#>xEyu
mOWwJAqtRyz0l@=bq|60kwqO2~IP*WyYz9wPKbLh*2~7azdo-*7

diff --git a/Telegram/Resources/icons/emoji_delete_bg@2x.png b/Telegram/Resources/icons/emoji_delete_bg@2x.png
index 08c32768571e0f9152b4cf9e21e59c28b467450f..2c4f0a08aae01433f80b7ce828bccaa093ea00be 100644
GIT binary patch
literal 245
zcmV<R01E$!P)<h;3K|Lk000e1NJLTq000~S000~a1^@s6at+^<0002INkl<ZNQv#%
zu?@o@6h+Y&7oQ=R5g3b6zC>Z<!i!)E+s#XnL`sTCk*xfRyTEBL01yC0gfT{{DqCy3
zT5FA}$`~U>gf9mG=)GsH^)m9US}VQx4^Tw@ioK)GIU<DcckERNflyU5P*r(5j)Nis
zi}roTjU-L9XOks1zyS_$fCC)hkKlQpX4tlEnC5vl1J`xMlyf!%bIyQs&SVppWqE8O
vtVbActDjP0DTTfF%Si8?r4*)=K34w@Z_PbfHKhL300000NkvXXu0mjf*o<PW

literal 243
zcmV<P01W?$P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0002GNkl<ZNQv#1
zF%E+;5Ck_A=STRBwx8vvoa6$Ff{z#%K(i?bQc|Qq$~6)5fSGa^00@90!Wbh}m8~^i
zrL{&?WsH#`!qW=?^xm`9dRh97S}VQxM?ge=Du0hS=ZFx(&*di}1VUBK0;<Z#wrvy<
zSg@`u9wcdEe=%6f@4y|n1Ai0P_uWjsEDMHl9L)mrJY&c?n+0;tfOF1dGN)-eCKJ}9
tkGI>BQer8Ez4yz~-aAVvOeuZbmM4~&y~0CyPO1O^002ovPDHLkV1oE`VRQfh

diff --git a/Telegram/SourceFiles/chat_helpers/chat_helpers.style b/Telegram/SourceFiles/chat_helpers/chat_helpers.style
index 3a8b8d6e0..fc9e0dd85 100644
--- a/Telegram/SourceFiles/chat_helpers/chat_helpers.style
+++ b/Telegram/SourceFiles/chat_helpers/chat_helpers.style
@@ -194,11 +194,12 @@ hashtagClose: IconButton {
 
 stickerPanSize: size(64px, 64px);
 stickerPanPadding: 11px;
-stickerPanDelete: icon {
-	{ "emoji_delete_bg", stickerPanDeleteBg },
-	{ "emoji_delete", stickerPanDeleteFg },
-};
-stickerPanDeleteOpacity: 0.5;
+stickerPanDeleteIconBg: icon {{ "emoji_delete_bg", stickerPanDeleteBg }};
+stickerPanDeleteIconFg: icon {{ "emoji_delete", stickerPanDeleteFg }};
+stickerPanDeleteOpacityBg: 0.3;
+stickerPanDeleteOpacityBgOver: 0.5;
+stickerPanDeleteOpacityFg: 0.8;
+stickerPanDeleteOpacityFgOver: 1.;
 stickerPanRemoveSet: hashtagClose;
 stickerIconPadding: 5px;
 stickerIconOpacity: 0.7;
diff --git a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp
index bab357f2c..b18d8517f 100644
--- a/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp
+++ b/Telegram/SourceFiles/chat_helpers/stickers_list_widget.cpp
@@ -839,10 +839,12 @@ void StickersListWidget::paintSticker(Painter &p, Set &set, int y, int index, bo
 	}
 
 	if (selected && stickerHasDeleteButton(set, index)) {
-		auto xPos = pos + QPoint(st::stickerPanSize.width() - st::stickerPanDelete.width(), 0);
-		if (!deleteSelected) p.setOpacity(st::stickerPanDeleteOpacity);
-		st::stickerPanDelete.paint(p, xPos, width());
-		if (!deleteSelected) p.setOpacity(1.);
+		auto xPos = pos + QPoint(st::stickerPanSize.width() - st::stickerPanDeleteIconBg.width(), 0);
+		p.setOpacity(deleteSelected ? st::stickerPanDeleteOpacityBgOver : st::stickerPanDeleteOpacityBg);
+		st::stickerPanDeleteIconBg.paint(p, xPos, width());
+		p.setOpacity(deleteSelected ? st::stickerPanDeleteOpacityFgOver : st::stickerPanDeleteOpacityFg);
+		st::stickerPanDeleteIconFg.paint(p, xPos, width());
+		p.setOpacity(1.);
 	}
 }
 
@@ -1466,7 +1468,7 @@ void StickersListWidget::updateSelected() {
 					if (stickerHasDeleteButton(set, index)) {
 						auto inx = sx - (columnIndex * st::stickerPanSize.width());
 						auto iny = yOffset - (rowIndex * st::stickerPanSize.height());
-						if (inx >= st::stickerPanSize.width() - st::stickerPanDelete.width() && iny < st::stickerPanDelete.height()) {
+						if (inx >= st::stickerPanSize.width() - st::stickerPanDeleteIconBg.width() && iny < st::stickerPanDeleteIconBg.height()) {
 							overDelete = true;
 						}
 					}
diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp
index 7158b2e25..078dad98d 100644
--- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp
+++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp
@@ -201,17 +201,19 @@ void Gif::paint(Painter &p, const QRect &clip, const PaintContext *context) cons
 	}
 
 	if (_delete && (_state & StateFlag::Over)) {
-		float64 deleteOver = _a_deleteOver.current(context->ms, (_state & StateFlag::DeleteOver) ? 1 : 0);
-		QPoint deletePos = QPoint(_width - st::stickerPanDelete.width(), 0);
-		p.setOpacity(deleteOver + (1 - deleteOver) * st::stickerPanDeleteOpacity);
-		st::stickerPanDelete.paint(p, deletePos, _width);
-		p.setOpacity(1);
+		auto deleteSelected = (_state & StateFlag::DeleteOver);
+		auto deletePos = QPoint(_width - st::stickerPanDeleteIconBg.width(), 0);
+		p.setOpacity(deleteSelected ? st::stickerPanDeleteOpacityBgOver : st::stickerPanDeleteOpacityBg);
+		st::stickerPanDeleteIconBg.paint(p, deletePos, width());
+		p.setOpacity(deleteSelected ? st::stickerPanDeleteOpacityFgOver : st::stickerPanDeleteOpacityFg);
+		st::stickerPanDeleteIconFg.paint(p, deletePos, width());
+		p.setOpacity(1.);
 	}
 }
 
 void Gif::getState(ClickHandlerPtr &link, HistoryCursorState &cursor, QPoint point) const {
 	if (QRect(0, 0, _width, st::inlineMediaHeight).contains(point)) {
-		if (_delete && rtlpoint(point, _width).x() >= _width - st::stickerPanDelete.width() && point.y() < st::stickerPanDelete.height()) {
+		if (_delete && rtlpoint(point, _width).x() >= _width - st::stickerPanDeleteIconBg.width() && point.y() < st::stickerPanDeleteIconBg.height()) {
 			link = _delete;
 		} else {
 			link = _send;