summaryrefslogtreecommitdiff
path: root/src/gmdocument.c
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2021-06-25 16:22:29 +0300
committerJaakko Keränen <jaakko.keranen@iki.fi>2021-06-25 16:22:29 +0300
commitf99a9111170f2ff28383fd3172fdaf4b9a1ba069 (patch)
treea4c5b801298a569c5043ba69a1b9a6c010a9234c /src/gmdocument.c
parente84b1a4a13ee1932c609e9d9d64b0915fbf468b9 (diff)
parentd06c19e7fdd07ffc52ca4d4903fecf5b539f85ea (diff)
Merge branch 'dev' into work/v1.6
# Conflicts: # CMakeLists.txt
Diffstat (limited to 'src/gmdocument.c')
-rw-r--r--src/gmdocument.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/gmdocument.c b/src/gmdocument.c
index aa2baa4a..f15d9d1d 100644
--- a/src/gmdocument.c
+++ b/src/gmdocument.c
@@ -289,6 +289,12 @@ static void clearLinks_GmDocument_(iGmDocument *d) {
289 clear_PtrArray(&d->links); 289 clear_PtrArray(&d->links);
290} 290}
291 291
292static iBool isGopher_GmDocument_(const iGmDocument *d) {
293 const iRangecc scheme = urlScheme_String(&d->url);
294 return (equalCase_Rangecc(scheme, "gopher") ||
295 equalCase_Rangecc(scheme, "finger"));
296}
297
292static iBool isForcedMonospace_GmDocument_(const iGmDocument *d) { 298static iBool isForcedMonospace_GmDocument_(const iGmDocument *d) {
293 const iRangecc scheme = urlScheme_String(&d->url); 299 const iRangecc scheme = urlScheme_String(&d->url);
294 if (equalCase_Rangecc(scheme, "gemini")) { 300 if (equalCase_Rangecc(scheme, "gemini")) {
@@ -364,6 +370,7 @@ static void updateOpenURLs_GmDocument_(iGmDocument *d) {
364static void doLayout_GmDocument_(iGmDocument *d) { 370static void doLayout_GmDocument_(iGmDocument *d) {
365 const iPrefs *prefs = prefs_App(); 371 const iPrefs *prefs = prefs_App();
366 const iBool isMono = isForcedMonospace_GmDocument_(d); 372 const iBool isMono = isForcedMonospace_GmDocument_(d);
373 const iBool isGopher = isGopher_GmDocument_(d);
367 const iBool isNarrow = d->size.x < 90 * gap_Text; 374 const iBool isNarrow = d->size.x < 90 * gap_Text;
368 const iBool isVeryNarrow = d->size.x <= 70 * gap_Text; 375 const iBool isVeryNarrow = d->size.x <= 70 * gap_Text;
369 const iBool isExtremelyNarrow = d->size.x <= 60 * gap_Text; 376 const iBool isExtremelyNarrow = d->size.x <= 60 * gap_Text;
@@ -482,7 +489,7 @@ static void doLayout_GmDocument_(iGmDocument *d) {
482 meta.flags = constValue_Array(oldPreMeta, preIndex, iGmPreMeta).flags & 489 meta.flags = constValue_Array(oldPreMeta, preIndex, iGmPreMeta).flags &
483 folded_GmPreMetaFlag; 490 folded_GmPreMetaFlag;
484 } 491 }
485 else if (prefs->collapsePreOnLoad) { 492 else if (prefs->collapsePreOnLoad && !isGopher) {
486 meta.flags |= folded_GmPreMetaFlag; 493 meta.flags |= folded_GmPreMetaFlag;
487 } 494 }
488 pushBack_Array(&d->preMeta, &meta); 495 pushBack_Array(&d->preMeta, &meta);
@@ -1451,6 +1458,9 @@ iBool updateOpenURLs_GmDocument(iGmDocument *d) {
1451 const iBool isOpen = contains_StringSet(d->openURLs, &link->url); 1458 const iBool isOpen = contains_StringSet(d->openURLs, &link->url);
1452 if (isOpen ^ ((link->flags & isOpen_GmLinkFlag) != 0)) { 1459 if (isOpen ^ ((link->flags & isOpen_GmLinkFlag) != 0)) {
1453 iChangeFlags(link->flags, isOpen_GmLinkFlag, isOpen); 1460 iChangeFlags(link->flags, isOpen_GmLinkFlag, isOpen);
1461 if (isOpen) {
1462 link->flags |= visited_GmLinkFlag;
1463 }
1454 wasChanged = iTrue; 1464 wasChanged = iTrue;
1455 } 1465 }
1456 } 1466 }