summaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/documentwidget.c10
-rw-r--r--src/ui/documentwidget.h2
-rw-r--r--src/ui/util.h4
3 files changed, 10 insertions, 6 deletions
diff --git a/src/ui/documentwidget.c b/src/ui/documentwidget.c
index 2e51f253..90c270fc 100644
--- a/src/ui/documentwidget.c
+++ b/src/ui/documentwidget.c
@@ -545,7 +545,7 @@ void setUrlFromCache_DocumentWidget(iDocumentWidget *d, const iString *url, iBoo
545 } 545 }
546} 546}
547 547
548iDocumentWidget *duplicate_DocumentWidget(iDocumentWidget *orig) { 548iDocumentWidget *duplicate_DocumentWidget(const iDocumentWidget *orig) {
549 iDocumentWidget *d = new_DocumentWidget(); 549 iDocumentWidget *d = new_DocumentWidget();
550 delete_History(d->history); 550 delete_History(d->history);
551 d->textSizePercent = orig->textSizePercent; 551 d->textSizePercent = orig->textSizePercent;
@@ -1060,7 +1060,7 @@ static iBool processEvent_DocumentWidget_(iDocumentWidget *d, const SDL_Event *e
1060 return iTrue; 1060 return iTrue;
1061 } 1061 }
1062 } 1062 }
1063 processContextMenuEvent_Widget(d->menu, ev); 1063 processContextMenuEvent_Widget(d->menu, ev, d->hoverLink = NULL);
1064 switch (processEvent_Click(&d->click, ev)) { 1064 switch (processEvent_Click(&d->click, ev)) {
1065 case started_ClickResult: 1065 case started_ClickResult:
1066 d->selecting = iFalse; 1066 d->selecting = iFalse;
@@ -1084,6 +1084,9 @@ static iBool processEvent_DocumentWidget_(iDocumentWidget *d, const SDL_Event *e
1084 return iTrue; 1084 return iTrue;
1085 } 1085 }
1086 case finished_ClickResult: 1086 case finished_ClickResult:
1087 if (isVisible_Widget(d->menu)) {
1088 closeMenu_Widget(d->menu);
1089 }
1087 if (!isMoved_Click(&d->click)) { 1090 if (!isMoved_Click(&d->click)) {
1088 if (d->hoverLink) { 1091 if (d->hoverLink) {
1089 const iGmLinkId linkId = d->hoverLink->linkId; 1092 const iGmLinkId linkId = d->hoverLink->linkId;
@@ -1115,7 +1118,8 @@ static iBool processEvent_DocumentWidget_(iDocumentWidget *d, const SDL_Event *e
1115 refresh_Widget(w); 1118 refresh_Widget(w);
1116 } 1119 }
1117 else { 1120 else {
1118 postCommandf_App("open url:%s", 1121 postCommandf_App("open newtab:%d url:%s",
1122 (SDL_GetModState() & KMOD_PRIMARY) != 0,
1119 cstr_String(absoluteUrl_String( 1123 cstr_String(absoluteUrl_String(
1120 d->url, linkUrl_GmDocument(d->doc, linkId)))); 1124 d->url, linkUrl_GmDocument(d->doc, linkId))));
1121 } 1125 }
diff --git a/src/ui/documentwidget.h b/src/ui/documentwidget.h
index 5e7c3f2c..85b9a710 100644
--- a/src/ui/documentwidget.h
+++ b/src/ui/documentwidget.h
@@ -7,7 +7,7 @@ iDeclareType(History)
7iDeclareWidgetClass(DocumentWidget) 7iDeclareWidgetClass(DocumentWidget)
8iDeclareObjectConstruction(DocumentWidget) 8iDeclareObjectConstruction(DocumentWidget)
9 9
10iDocumentWidget *duplicate_DocumentWidget (iDocumentWidget *); 10iDocumentWidget *duplicate_DocumentWidget (const iDocumentWidget *);
11iHistory * history_DocumentWidget (iDocumentWidget *); 11iHistory * history_DocumentWidget (iDocumentWidget *);
12 12
13const iString * url_DocumentWidget (const iDocumentWidget *); 13const iString * url_DocumentWidget (const iDocumentWidget *);
diff --git a/src/ui/util.h b/src/ui/util.h
index 26066e53..b67f0a87 100644
--- a/src/ui/util.h
+++ b/src/ui/util.h
@@ -84,9 +84,9 @@ void closeMenu_Widget (iWidget *);
84 84
85int checkContextMenu_Widget (iWidget *, const SDL_Event *ev); /* see macro below */ 85int checkContextMenu_Widget (iWidget *, const SDL_Event *ev); /* see macro below */
86 86
87#define processContextMenuEvent_Widget(menu, sdlEvent) \ 87#define processContextMenuEvent_Widget(menu, sdlEvent, stmtEaten) \
88 for (const int result = checkContextMenu_Widget((menu), (sdlEvent));;) { \ 88 for (const int result = checkContextMenu_Widget((menu), (sdlEvent));;) { \
89 if (result) return result >> 1; \ 89 if (result) { {stmtEaten;} return result >> 1; } \
90 break; \ 90 break; \
91 } 91 }
92 92