@@ -3385,49 +3385,11 @@ void Message::clickHandlerPressedChanged(
33853385 toggleCommentsButtonRipple (pressed);
33863386 } else if (_topicButton && (handler == _topicButton->link )) {
33873387 toggleTopicButtonRipple (pressed);
3388- } else if (_viewButton) {
3389- _viewButton->checkLink (handler, pressed);
3390- } else if (const auto reply = Get<Reply>()
3391- ; reply && (handler == reply->link ())) {
3392- toggleReplyRipple (pressed);
3393- } else if (const auto summaryHeader = Get<SummaryHeader>()
3394- ; summaryHeader && (handler == summaryHeader->link ())) {
3395- toggleSummaryHeaderRipple (pressed);
3396- } else if (_summarize && (handler == _summarize->link ())) {
3397- if (pressed) {
3398- _summarize->addRipple ([=] { repaint (); });
3399- } else {
3400- _summarize->stopRipple ();
3401- }
3402- } else if (const auto badge = Get<RightBadge>()
3403- ; badge && badge->tagLink && handler == badge->tagLink ) {
3404- toggleBadgeRipple (pressed);
3405- } else if (displayFromName () && handler == fromLink ()) {
3406- if (_fromLinkRipplePointSet || !pressed) {
3407- startLinkRipple ();
3408- }
3409- } else if (const auto via = data ()->Get <HistoryMessageVia>()
3410- ; via
3411- && (handler == via->link )
3412- && !displayForwardedFrom ()) {
3413- startLinkRipple ();
3414- } else if (const auto guestChat = data ()->Get <HistoryMessageGuestChat>()
3415- ; guestChat
3416- && (handler == guestChat->link )) {
3417- startLinkRipple ();
3418- } else if (const auto forwarded = data ()->Get <HistoryMessageForwarded>()
3419- ; forwarded
3420- && displayForwardedFrom ()
3421- && !forwarded->text .linkRangeFor (handler).empty ()) {
3422- startLinkRipple ();
3423- } else if (hasVisibleText ()
3424- && IsRippleLink (handler)
3425- && !text ().linkRangeFor (handler).empty ()) {
3426- startLinkRipple ();
34273388 } else if (const auto rich = richpage ()
34283389 ; rich
34293390 && ((handler == rich->handler )
34303391 || (handler == rich->handlerHorizontalScrollPressed )
3392+ || (handler == rich->pressedPlaceholderHandler )
34313393 || (handler == rich->handlerButtonRowHandler )
34323394 || (handler == rich->pressedButtonRowHandler )
34333395 || (handler == rich->handlerInlineButtonHandler )
@@ -3447,14 +3409,18 @@ void Message::clickHandlerPressedChanged(
34473409 rich->handlerHorizontalScrollActive = false ;
34483410 rich->handlerHorizontalScrollPressed = nullptr ;
34493411 }
3450- if ((handler == rich->handler ) && rich->handlerPlaceholderId ) {
3451- if (pressed) {
3412+ if (pressed) {
3413+ if ((handler == rich->handler ) && rich->handlerPlaceholderId ) {
3414+ rich->pressedPlaceholderId = rich->handlerPlaceholderId ;
3415+ rich->pressedPlaceholderHandler = handler;
34523416 rich->article .addPlaceholderRipple (
3453- rich->handlerPlaceholderId ,
3417+ rich->pressedPlaceholderId ,
34543418 rich->handlerPlaceholderPoint );
3455- } else {
3456- rich->article .stopPlaceholderRipple (rich->handlerPlaceholderId );
34573419 }
3420+ } else if (handler == rich->pressedPlaceholderHandler ) {
3421+ rich->article .stopPlaceholderRipple (
3422+ base::take (rich->pressedPlaceholderId ));
3423+ rich->pressedPlaceholderHandler = nullptr ;
34583424 }
34593425 if (pressed) {
34603426 if ((handler == rich->handlerButtonRowHandler )
@@ -3482,6 +3448,45 @@ void Message::clickHandlerPressedChanged(
34823448 rich->article .stopInlineButtonRipple ();
34833449 rich->pressedInlineButtonHandler = nullptr ;
34843450 }
3451+ } else if (_viewButton) {
3452+ _viewButton->checkLink (handler, pressed);
3453+ } else if (const auto reply = Get<Reply>()
3454+ ; reply && (handler == reply->link ())) {
3455+ toggleReplyRipple (pressed);
3456+ } else if (const auto summaryHeader = Get<SummaryHeader>()
3457+ ; summaryHeader && (handler == summaryHeader->link ())) {
3458+ toggleSummaryHeaderRipple (pressed);
3459+ } else if (_summarize && (handler == _summarize->link ())) {
3460+ if (pressed) {
3461+ _summarize->addRipple ([=] { repaint (); });
3462+ } else {
3463+ _summarize->stopRipple ();
3464+ }
3465+ } else if (const auto badge = Get<RightBadge>()
3466+ ; badge && badge->tagLink && handler == badge->tagLink ) {
3467+ toggleBadgeRipple (pressed);
3468+ } else if (displayFromName () && handler == fromLink ()) {
3469+ if (_fromLinkRipplePointSet || !pressed) {
3470+ startLinkRipple ();
3471+ }
3472+ } else if (const auto via = data ()->Get <HistoryMessageVia>()
3473+ ; via
3474+ && (handler == via->link )
3475+ && !displayForwardedFrom ()) {
3476+ startLinkRipple ();
3477+ } else if (const auto guestChat = data ()->Get <HistoryMessageGuestChat>()
3478+ ; guestChat
3479+ && (handler == guestChat->link )) {
3480+ startLinkRipple ();
3481+ } else if (const auto forwarded = data ()->Get <HistoryMessageForwarded>()
3482+ ; forwarded
3483+ && displayForwardedFrom ()
3484+ && !forwarded->text .linkRangeFor (handler).empty ()) {
3485+ startLinkRipple ();
3486+ } else if (hasVisibleText ()
3487+ && IsRippleLink (handler)
3488+ && !text ().linkRangeFor (handler).empty ()) {
3489+ startLinkRipple ();
34853490 } else if (_reactions) {
34863491 _reactions->clickHandlerPressedChanged (
34873492 handler,
0 commit comments