[1mdiff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c[m
[1mindex 81aa382f..1b5b9af2 100644[m
[1m--- a/src/ui/documentwidget.c[m
[1m+++ b/src/ui/documentwidget.c[m
[36m@@ -1243,9 +1243,9 @@[m [mstatic void drawRun_DrawContext_(void *context, const iGmRun *run) {[m
const iGmDocument *doc = d->view->doc;[m
const int linkFlags = linkFlags_GmDocument(doc, run->linkId);[m
/* Hover state of a link. */[m
[31m- iBool isHover =[m
[31m- (run->linkId && d->view->hoverLink && run->linkId == d->view->hoverLink->linkId &&[m
[31m- ~run->flags & decoration_GmRunFlag);[m
[32m+[m[32m const iBool isPartOfHover = (run->linkId && d->view->hoverLink &&[m
[32m+[m[32m run->linkId == d->view->hoverLink->linkId);[m
[32m+[m[32m iBool isHover = (isPartOfHover && ~run->flags & decoration_GmRunFlag);[m
/* Visible (scrolled) position of the run. */[m
const iInt2 visPos = addX_I2(add_I2(run->visBounds.pos, origin),[m
/* Preformatted runs can be scrolled. */[m
[36m@@ -1260,18 +1260,23 @@[m [mstatic void drawRun_DrawContext_(void *context, const iGmRun *run) {[m
isInlineImageCaption = iFalse;[m
}[m
#endif[m
[32m+[m[32m iBool isMobileHover = deviceType_App() != desktop_AppDeviceType &&[m
[32m+[m[32m (isPartOfHover || contains_PtrSet(d->view->invalidRuns, run));[m
/* While this is consistent, it's a bit excessive to indicate that an inlined image[m
is open: the image itself is the indication. */[m
const iBool isInlineImageCaption = iFalse;[m
[31m- if (run->linkId && (linkFlags & isOpen_GmLinkFlag || isInlineImageCaption)) {[m
[32m+[m[32m if (run->linkId && (linkFlags & isOpen_GmLinkFlag || isInlineImageCaption || isMobileHover)) {[m
/* Open links get a highlighted background. */[m
int bg = tmBackgroundOpenLink_ColorId;[m
[32m+[m[32m if (isMobileHover && !isPartOfHover) {[m
[32m+[m[32m bg = tmBackground_ColorId; /* hover ended and was invalidated */[m
[32m+[m[32m }[m
const int frame = tmFrameOpenLink_ColorId;[m
const int pad = gap_Text;[m
iRect wideRect = { init_I2(origin.x - pad, visPos.y),[m
init_I2(d->docBounds.size.x + 2 * pad,[m
height_Rect(run->visBounds)) };[m
[31m- adjustEdges_Rect(&wideRect,[m
[32m+[m[32m adjustEdges_Rect(&wideRect,[m[41m [m
run->flags & startOfLine_GmRunFlag ? -pad * 3 / 4 : 0, 0,[m
run->flags & endOfLine_GmRunFlag ? pad * 3 / 4 : 0, 0);[m
/* The first line is composed of two runs that may be drawn in either order, so[m
text/plain
This content has been proxied by September (ba2dc).