summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2020-12-28 12:36:09 +0200
committerJaakko Keränen <jaakko.keranen@iki.fi>2020-12-28 12:36:09 +0200
commit247b033aaf5a7a72e26cd11a6ab676b913b67ace (patch)
treee8b76e8a66393a33e01bdedc2ff0f381511b954c /src
parente8b9d34565824b526aa48a28699781b486e897b6 (diff)
SidebarWidget: Opening feed entries in new tab
Diffstat (limited to 'src')
-rw-r--r--src/gmutil.c7
-rw-r--r--src/gmutil.h2
-rw-r--r--src/ui/lookupwidget.c2
-rw-r--r--src/ui/sidebarwidget.c3
4 files changed, 8 insertions, 6 deletions
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) {
315 } 315 }
316} 316}
317 317
318const iString *feedEntryOpenCommand_String(const iString *url) { 318const iString *feedEntryOpenCommand_String(const iString *url, int newTab) {
319 if (!isEmpty_String(url)) { 319 if (!isEmpty_String(url)) {
320 iString *cmd = collectNew_String(); 320 iString *cmd = collectNew_String();
321 const size_t fragPos = indexOf_String(url, '#'); 321 const size_t fragPos = indexOf_String(url, '#');
@@ -323,14 +323,15 @@ const iString *feedEntryOpenCommand_String(const iString *url) {
323 iString *head = newRange_String( 323 iString *head = newRange_String(
324 (iRangecc){ constBegin_String(url) + fragPos + 1, constEnd_String(url) }); 324 (iRangecc){ constBegin_String(url) + fragPos + 1, constEnd_String(url) });
325 format_String(cmd, 325 format_String(cmd,
326 "open gotourlheading:%s url:%s", 326 "open newtab:%d gotourlheading:%s url:%s",
327 newTab,
327 cstr_String(head), 328 cstr_String(head),
328 cstr_Rangecc((iRangecc){ constBegin_String(url), 329 cstr_Rangecc((iRangecc){ constBegin_String(url),
329 constBegin_String(url) + fragPos })); 330 constBegin_String(url) + fragPos }));
330 delete_String(head); 331 delete_String(head);
331 } 332 }
332 else { 333 else {
333 format_String(cmd, "open url:%s", cstr_String(url)); 334 format_String(cmd, "open newtab:%d url:%s", newTab, cstr_String(url));
334 } 335 }
335 return cmd; 336 return cmd;
336 } 337 }
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);
110const char * makeFileUrl_CStr (const char *localFilePath); 110const char * makeFileUrl_CStr (const char *localFilePath);
111void urlEncodeSpaces_String (iString *); 111void urlEncodeSpaces_String (iString *);
112 112
113const iString * feedEntryOpenCommand_String (const iString *url); /* checks fragment */ 113const 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) {
535 cstr_String(&res->label), 535 cstr_String(&res->label),
536 uiText_ColorEscape, 536 uiText_ColorEscape,
537 cstr_String(&res->meta)); 537 cstr_String(&res->meta));
538 const iString *cmd = feedEntryOpenCommand_String(&res->url); 538 const iString *cmd = feedEntryOpenCommand_String(&res->url, 0);
539 if (cmd) { 539 if (cmd) {
540 set_String(&item->command, cmd); 540 set_String(&item->command, cmd);
541 } 541 }
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
524 break; 524 break;
525 } 525 }
526 case feeds_SidebarMode: { 526 case feeds_SidebarMode: {
527 postCommandString_App(feedEntryOpenCommand_String(&item->url)); 527 postCommandString_App(
528 feedEntryOpenCommand_String(&item->url, openTabMode_Sym(SDL_GetModState())));
528 break; 529 break;
529 } 530 }
530 case bookmarks_SidebarMode: 531 case bookmarks_SidebarMode: