From 4d6c1a52a06ff480291a8192dd0f69f13be3513f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= Date: Mon, 28 Dec 2020 12:36:09 +0200 Subject: [PATCH 1/1] SidebarWidget: Opening feed entries in new tab --- res/about/version.gmi | 1 + src/gmutil.c | 7 ++++--- src/gmutil.h | 2 +- src/ui/lookupwidget.c | 2 +- src/ui/sidebarwidget.c | 3 ++- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/res/about/version.gmi b/res/about/version.gmi index a81dcfa9..39b8e095 100644 --- a/res/about/version.gmi +++ b/res/about/version.gmi @@ -7,6 +7,7 @@ # Release notes ## 1.0.2 +* Fixed opening sidebar feed entries in new/background tab with modifier keys. * Fixed editing identity notes. The entered new notes were not being applied. ## 1.0.1 diff --git a/src/gmutil.c b/src/gmutil.c index afca4978..cf96cfd8 100644 --- a/src/gmutil.c +++ b/src/gmutil.c @@ -315,7 +315,7 @@ void urlEncodeSpaces_String(iString *d) { } } -const iString *feedEntryOpenCommand_String(const iString *url) { +const iString *feedEntryOpenCommand_String(const iString *url, int newTab) { if (!isEmpty_String(url)) { iString *cmd = collectNew_String(); const size_t fragPos = indexOf_String(url, '#'); @@ -323,14 +323,15 @@ const iString *feedEntryOpenCommand_String(const iString *url) { iString *head = newRange_String( (iRangecc){ constBegin_String(url) + fragPos + 1, constEnd_String(url) }); format_String(cmd, - "open gotourlheading:%s url:%s", + "open newtab:%d gotourlheading:%s url:%s", + newTab, cstr_String(head), cstr_Rangecc((iRangecc){ constBegin_String(url), constBegin_String(url) + fragPos })); delete_String(head); } else { - format_String(cmd, "open url:%s", cstr_String(url)); + format_String(cmd, "open newtab:%d url:%s", newTab, cstr_String(url)); } return cmd; } diff --git a/src/gmutil.h b/src/gmutil.h index 88ed1f32..a9c8c42a 100644 --- a/src/gmutil.h +++ b/src/gmutil.h @@ -110,4 +110,4 @@ iString * makeFileUrl_String (const iString *localFilePath); const char * makeFileUrl_CStr (const char *localFilePath); void urlEncodeSpaces_String (iString *); -const iString * feedEntryOpenCommand_String (const iString *url); /* checks fragment */ +const iString * feedEntryOpenCommand_String (const iString *url, int newTab); /* checks fragment */ diff --git a/src/ui/lookupwidget.c b/src/ui/lookupwidget.c index b80170d2..284d518e 100644 --- a/src/ui/lookupwidget.c +++ b/src/ui/lookupwidget.c @@ -535,7 +535,7 @@ static void presentResults_LookupWidget_(iLookupWidget *d) { cstr_String(&res->label), uiText_ColorEscape, cstr_String(&res->meta)); - const iString *cmd = feedEntryOpenCommand_String(&res->url); + const iString *cmd = feedEntryOpenCommand_String(&res->url, 0); if (cmd) { set_String(&item->command, cmd); } diff --git a/src/ui/sidebarwidget.c b/src/ui/sidebarwidget.c index 406ce2f2..d3be3710 100644 --- a/src/ui/sidebarwidget.c +++ b/src/ui/sidebarwidget.c @@ -524,7 +524,8 @@ static void itemClicked_SidebarWidget_(iSidebarWidget *d, const iSidebarItem *it break; } case feeds_SidebarMode: { - postCommandString_App(feedEntryOpenCommand_String(&item->url)); + postCommandString_App( + feedEntryOpenCommand_String(&item->url, openTabMode_Sym(SDL_GetModState()))); break; } case bookmarks_SidebarMode: -- 2.34.1