summaryrefslogtreecommitdiff
path: root/src/app.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/app.c')
-rw-r--r--src/app.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/app.c b/src/app.c
index 4872799b..39f0346e 100644
--- a/src/app.c
+++ b/src/app.c
@@ -1446,6 +1446,14 @@ static void updatePrefsThemeButtons_(iWidget *d) {
1446 } 1446 }
1447} 1447}
1448 1448
1449static void updatePrefsPinSplitButtons_(iWidget *d, int value) {
1450 for (size_t i = 0; i < 3; i++) {
1451 setFlags_Widget(findChild_Widget(d, format_CStr("prefs.pinsplit.%u", i)),
1452 selected_WidgetFlag,
1453 i == value);
1454 }
1455}
1456
1449static void updateDropdownSelection_(iLabelWidget *dropButton, const char *selectedCommand) { 1457static void updateDropdownSelection_(iLabelWidget *dropButton, const char *selectedCommand) {
1450 iWidget *menu = findChild_Widget(as_Widget(dropButton), "menu"); 1458 iWidget *menu = findChild_Widget(as_Widget(dropButton), "menu");
1451 iForEach(ObjectList, i, children_Widget(menu)) { 1459 iForEach(ObjectList, i, children_Widget(menu)) {
@@ -1526,6 +1534,10 @@ static iBool handlePrefsCommands_(iWidget *d, const char *cmd) {
1526 setFlags_Widget(findChild_Widget(d, "prefs.quoteicon.1"), selected_WidgetFlag, arg == 1); 1534 setFlags_Widget(findChild_Widget(d, "prefs.quoteicon.1"), selected_WidgetFlag, arg == 1);
1527 return iFalse; 1535 return iFalse;
1528 } 1536 }
1537 else if (equal_Command(cmd, "pinsplit.set")) {
1538 updatePrefsPinSplitButtons_(d, arg_Command(cmd));
1539 return iFalse;
1540 }
1529 else if (equal_Command(cmd, "doctheme.dark.set")) { 1541 else if (equal_Command(cmd, "doctheme.dark.set")) {
1530 updateColorThemeButton_(findChild_Widget(d, "prefs.doctheme.dark"), arg_Command(cmd)); 1542 updateColorThemeButton_(findChild_Widget(d, "prefs.doctheme.dark"), arg_Command(cmd));
1531 return iFalse; 1543 return iFalse;
@@ -1824,6 +1836,10 @@ iBool handleCommand_App(const char *cmd) {
1824 } 1836 }
1825 return iTrue; 1837 return iTrue;
1826 } 1838 }
1839 else if (equal_Command(cmd, "pinsplit.set")) {
1840 d->prefs.pinSplit = arg_Command(cmd);
1841 return iTrue;
1842 }
1827 else if (equal_Command(cmd, "theme.set")) { 1843 else if (equal_Command(cmd, "theme.set")) {
1828 const int isAuto = argLabel_Command(cmd, "auto"); 1844 const int isAuto = argLabel_Command(cmd, "auto");
1829 d->prefs.theme = arg_Command(cmd); 1845 d->prefs.theme = arg_Command(cmd);
@@ -2030,6 +2046,7 @@ iBool handleCommand_App(const char *cmd) {
2030 iRoot *oldRoot = root; 2046 iRoot *oldRoot = root;
2031 if (newTab & otherRoot_OpenTabFlag) { 2047 if (newTab & otherRoot_OpenTabFlag) {
2032 root = otherRoot_Window(d->window, root); 2048 root = otherRoot_Window(d->window, root);
2049 setKeyRoot_Window(d->window, root);
2033 setCurrent_Root(root); /* need to change for widget creation */ 2050 setCurrent_Root(root); /* need to change for widget creation */
2034 } 2051 }
2035 iDocumentWidget *doc = document_Command(cmd); 2052 iDocumentWidget *doc = document_Command(cmd);
@@ -2172,6 +2189,7 @@ iBool handleCommand_App(const char *cmd) {
2172 setToggle_Widget(findChild_Widget(dlg, "prefs.archive.openindex"), d->prefs.openArchiveIndexPages); 2189 setToggle_Widget(findChild_Widget(dlg, "prefs.archive.openindex"), d->prefs.openArchiveIndexPages);
2173 setToggle_Widget(findChild_Widget(dlg, "prefs.ostheme"), d->prefs.useSystemTheme); 2190 setToggle_Widget(findChild_Widget(dlg, "prefs.ostheme"), d->prefs.useSystemTheme);
2174 setToggle_Widget(findChild_Widget(dlg, "prefs.customframe"), d->prefs.customFrame); 2191 setToggle_Widget(findChild_Widget(dlg, "prefs.customframe"), d->prefs.customFrame);
2192 updatePrefsPinSplitButtons_(dlg, d->prefs.pinSplit);
2175 updateDropdownSelection_(findChild_Widget(dlg, "prefs.uilang"), cstr_String(&d->prefs.uiLanguage)); 2193 updateDropdownSelection_(findChild_Widget(dlg, "prefs.uilang"), cstr_String(&d->prefs.uiLanguage));
2176 setToggle_Widget(findChild_Widget(dlg, "prefs.retainwindow"), d->prefs.retainWindowSize); 2194 setToggle_Widget(findChild_Widget(dlg, "prefs.retainwindow"), d->prefs.retainWindowSize);
2177 setText_InputWidget(findChild_Widget(dlg, "prefs.uiscale"), 2195 setText_InputWidget(findChild_Widget(dlg, "prefs.uiscale"),
@@ -2234,7 +2252,8 @@ iBool handleCommand_App(const char *cmd) {
2234 } 2252 }
2235 else if (equal_Command(cmd, "navigate.home")) { 2253 else if (equal_Command(cmd, "navigate.home")) {
2236 /* Look for bookmarks tagged "homepage". */ 2254 /* Look for bookmarks tagged "homepage". */
2237 iRegExp *pattern = iClob(new_RegExp("\\bhomepage\\b", caseInsensitive_RegExpOption)); 2255 iRegExp *pattern = iClob(new_RegExp("\\b" homepage_BookmarkTag "\\b",
2256 caseInsensitive_RegExpOption));
2238 const iPtrArray *homepages = 2257 const iPtrArray *homepages =
2239 list_Bookmarks(d->bookmarks, NULL, filterTagsRegExp_Bookmarks, pattern); 2258 list_Bookmarks(d->bookmarks, NULL, filterTagsRegExp_Bookmarks, pattern);
2240 if (isEmpty_PtrArray(homepages)) { 2259 if (isEmpty_PtrArray(homepages)) {