summaryrefslogtreecommitdiff
path: root/src/gmdocument.c
diff options
context:
space:
mode:
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 }