[1mdiff --git a/res/about/version.gmi b/res/about/version.gmi[m
[1mindex ab76277b..af4ecd81 100644[m
[1m--- a/res/about/version.gmi[m
[1m+++ b/res/about/version.gmi[m
[36m@@ -8,6 +8,7 @@[m
[m
[32m+[m[32m* Fixed hovering on links via the keyboard (default binding: H).[m
[1mdiff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c[m
[1mindex f757d4c5..a7920e5d 100644[m
[1m--- a/src/ui/documentwidget.c[m
[1m+++ b/src/ui/documentwidget.c[m
[36m@@ -727,6 +727,15 @@[m [mstatic void invalidateWideRunsWithNonzeroOffset_DocumentView_(iDocumentView *d)[m
}[m
}[m
[m
[32m+[m[32mstatic void updateHoverLinkInfo_DocumentView_(iDocumentView *d) {[m
[32m+[m[32m if (update_LinkInfo(d->owner->linkInfo,[m
[32m+[m[32m d->doc,[m
[32m+[m[32m d->hoverLink ? d->hoverLink->linkId : 0,[m
[32m+[m[32m width_Widget(constAs_Widget(d->owner)))) {[m
[32m+[m[32m animate_DocumentWidget_(d->owner);[m
[32m+[m[32m }[m[41m [m
[32m+[m[32m}[m
[32m+[m
static void updateHover_DocumentView_(iDocumentView *d, iInt2 mouse) {[m
const iWidget *w = constAs_Widget(d->owner);[m
const iRect docBounds = documentBounds_DocumentView_(d);[m
[36m@@ -752,12 +761,7 @@[m [mstatic void updateHover_DocumentView_(iDocumentView *d, iInt2 mouse) {[m
if (d->hoverLink) {[m
invalidateLink_DocumentView_(d, d->hoverLink->linkId);[m
}[m
[31m- if (update_LinkInfo(d->owner->linkInfo,[m
[31m- d->doc,[m
[31m- d->hoverLink ? d->hoverLink->linkId : 0,[m
[31m- width_Widget(w))) {[m
[31m- animate_DocumentWidget_(d->owner);[m
[31m- }[m
[32m+[m[32m updateHoverLinkInfo_DocumentView_(d);[m
refresh_Widget(w);[m
}[m
/* Hovering over preformatted blocks. */[m
[36m@@ -4981,6 +4985,7 @@[m [mstatic iBool processEvent_DocumentWidget_(iDocumentWidget *d, const SDL_Event *e[m
visibleLinkOrdinal_DocumentView_(view, run->linkId) == ord) {[m
if (d->flags & setHoverViaKeys_DocumentWidgetFlag) {[m
view->hoverLink = run;[m
[32m+[m[32m updateHoverLinkInfo_DocumentView_(view);[m
}[m
else {[m
postCommandf_Root([m
[1mdiff --git a/src/ui/labelwidget.c b/src/ui/labelwidget.c[m
[1mindex 78d38479..aa68225b 100644[m
[1m--- a/src/ui/labelwidget.c[m
[1m+++ b/src/ui/labelwidget.c[m
[36m@@ -244,11 +244,17 @@[m [mstatic void getColors_LabelWidget_(const iLabelWidget *d, int *bg, int *fg, int[m
const enum iGmDocumentTheme docTheme = docTheme_Prefs(prefs_App());[m
if (areTabButtonsThemeColored_() &&[m
!cmp_String(&d->widget.parent->id, "tabs.buttons")) {[m
[31m- *bg = (docTheme == sepia_GmDocumentTheme &&[m
[31m- colorTheme_App() == pureWhite_ColorTheme[m
[32m+[m[32m *bg = (docTheme == oceanic_GmDocumentTheme ||[m
[32m+[m[32m (docTheme == sepia_GmDocumentTheme &&[m
[32m+[m[32m colorTheme_App() == pureWhite_ColorTheme)[m
? tmBackground_ColorId[m
: tmBannerBackground_ColorId);[m
isThemeBackground = iTrue;[m
[32m+[m[32m /* Ensure visibility in case the background matches UI background. */[m
[32m+[m[32m if (delta_Color(get_Color(*bg), get_Color(uiBackground_ColorId)) < 30) {[m
[32m+[m[32m *bg = uiBackgroundSelected_ColorId;[m
[32m+[m[32m isThemeBackground = iFalse;[m
[32m+[m[32m }[m
}[m
else {[m
*bg = uiBackgroundSelected_ColorId;[m
text/plain
This content has been proxied by September (ba2dc).