Lagrange [release]
SidebarWidget: Opening feed entries in new tab
[1mdiff --git a/res/about/version.gmi b/res/about/version.gmi[m
[1mindex a81dcfa9..39b8e095 100644[m
[1m--- a/res/about/version.gmi[m
[1m+++ b/res/about/version.gmi[m
[36m@@ -7,6 +7,7 @@[m
# Release notes[m
[m
## 1.0.2[m
[32m+[m[32m* Fixed opening sidebar feed entries in new/background tab with modifier keys.[m
* Fixed editing identity notes. The entered new notes were not being applied.[m
[m
## 1.0.1[m
[1mdiff --git a/src/gmutil.c b/src/gmutil.c[m
[1mindex afca4978..cf96cfd8 100644[m
[1m--- a/src/gmutil.c[m
[1m+++ b/src/gmutil.c[m
[36m@@ -315,7 +315,7 @@[m [mvoid urlEncodeSpaces_String(iString *d) {[m
}[m
}[m
[m
[31m-const iString *feedEntryOpenCommand_String(const iString *url) {[m
[32m+[m[32mconst iString *feedEntryOpenCommand_String(const iString *url, int newTab) {[m
if (!isEmpty_String(url)) {[m
iString *cmd = collectNew_String();[m
const size_t fragPos = indexOf_String(url, '#');[m
[36m@@ -323,14 +323,15 @@[m [mconst iString *feedEntryOpenCommand_String(const iString *url) {[m
iString *head = newRange_String([m
(iRangecc){ constBegin_String(url) + fragPos + 1, constEnd_String(url) });[m
format_String(cmd,[m
[31m- "open gotourlheading:%s url:%s",[m
[32m+[m[32m "open newtab:%d gotourlheading:%s url:%s",[m
[32m+[m[32m newTab,[m
cstr_String(head),[m
cstr_Rangecc((iRangecc){ constBegin_String(url),[m
constBegin_String(url) + fragPos }));[m
delete_String(head);[m
}[m
else {[m
[31m- format_String(cmd, "open url:%s", cstr_String(url));[m
[32m+[m[32m format_String(cmd, "open newtab:%d url:%s", newTab, cstr_String(url));[m
}[m
return cmd;[m
}[m
[1mdiff --git a/src/gmutil.h b/src/gmutil.h[m
[1mindex 88ed1f32..a9c8c42a 100644[m
[1m--- a/src/gmutil.h[m
[1m+++ b/src/gmutil.h[m
[36m@@ -110,4 +110,4 @@[m [miString * makeFileUrl_String (const iString *localFilePath);[m
const char * makeFileUrl_CStr (const char *localFilePath);[m
void urlEncodeSpaces_String (iString *);[m
[m
[31m-const iString * feedEntryOpenCommand_String (const iString *url); /* checks fragment */[m
[32m+[m[32mconst iString * feedEntryOpenCommand_String (const iString *url, int newTab); /* checks fragment */[m
[1mdiff --git a/src/ui/lookupwidget.c b/src/ui/lookupwidget.c[m
[1mindex b80170d2..284d518e 100644[m
[1m--- a/src/ui/lookupwidget.c[m
[1m+++ b/src/ui/lookupwidget.c[m
[36m@@ -535,7 +535,7 @@[m [mstatic void presentResults_LookupWidget_(iLookupWidget *d) {[m
cstr_String(&res->label),[m
uiText_ColorEscape,[m
cstr_String(&res->meta));[m
[31m- const iString *cmd = feedEntryOpenCommand_String(&res->url);[m
[32m+[m[32m const iString *cmd = feedEntryOpenCommand_String(&res->url, 0);[m
if (cmd) {[m
set_String(&item->command, cmd);[m
}[m
[1mdiff --git a/src/ui/sidebarwidget.c b/src/ui/sidebarwidget.c[m
[1mindex 406ce2f2..d3be3710 100644[m
[1m--- a/src/ui/sidebarwidget.c[m
[1m+++ b/src/ui/sidebarwidget.c[m
[36m@@ -524,7 +524,8 @@[m [mstatic void itemClicked_SidebarWidget_(iSidebarWidget *d, const iSidebarItem *it[m
break;[m
}[m
case feeds_SidebarMode: {[m
[31m- postCommandString_App(feedEntryOpenCommand_String(&item->url));[m
[32m+[m[32m postCommandString_App([m
[32m+[m[32m feedEntryOpenCommand_String(&item->url, openTabMode_Sym(SDL_GetModState())));[m
break;[m
}[m
case bookmarks_SidebarMode:[m