diff options
author | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-06-25 16:22:29 +0300 |
---|---|---|
committer | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-06-25 16:22:29 +0300 |
commit | f99a9111170f2ff28383fd3172fdaf4b9a1ba069 (patch) | |
tree | a4c5b801298a569c5043ba69a1b9a6c010a9234c /src/gmdocument.c | |
parent | e84b1a4a13ee1932c609e9d9d64b0915fbf468b9 (diff) | |
parent | d06c19e7fdd07ffc52ca4d4903fecf5b539f85ea (diff) |
Merge branch 'dev' into work/v1.6
# Conflicts:
# CMakeLists.txt
Diffstat (limited to 'src/gmdocument.c')
-rw-r--r-- | src/gmdocument.c | 12 |
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 | ||
292 | static 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 | |||
292 | static iBool isForcedMonospace_GmDocument_(const iGmDocument *d) { | 298 | static 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) { | |||
364 | static void doLayout_GmDocument_(iGmDocument *d) { | 370 | static 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 | } |