diff options
Diffstat (limited to 'src/ui/sidebarwidget.c')
-rw-r--r-- | src/ui/sidebarwidget.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/ui/sidebarwidget.c b/src/ui/sidebarwidget.c index 3b7e7d4b..4c7435c5 100644 --- a/src/ui/sidebarwidget.c +++ b/src/ui/sidebarwidget.c | |||
@@ -1069,6 +1069,25 @@ static iBool processEvent_SidebarWidget_(iSidebarWidget *d, const SDL_Event *ev) | |||
1069 | } | 1069 | } |
1070 | } | 1070 | } |
1071 | if (hoverItem_ListWidget(d->list) || isVisible_Widget(d->menu)) { | 1071 | if (hoverItem_ListWidget(d->list) || isVisible_Widget(d->menu)) { |
1072 | /* Update the menu before opening. */ | ||
1073 | if (d->mode == bookmarks_SidebarMode && !isVisible_Widget(d->menu)) { | ||
1074 | /* Remote bookmarks have limitations. */ | ||
1075 | const iSidebarItem *hoverItem = hoverItem_ListWidget(d->list); | ||
1076 | iAssert(hoverItem); | ||
1077 | const iBookmark * bm = get_Bookmarks(bookmarks_App(), hoverItem->id); | ||
1078 | const iBool isRemote = hasTag_Bookmark(bm, "remote"); | ||
1079 | static const char *localOnlyCmds[] = { "bookmark.edit", | ||
1080 | "bookmark.delete", | ||
1081 | "bookmark.tag tag:subscribed", | ||
1082 | "bookmark.tag tag:homepage", | ||
1083 | "bookmark.tag tag:remotesource", | ||
1084 | "bookmark.tag tag:subscribed" }; | ||
1085 | iForIndices(i, localOnlyCmds) { | ||
1086 | setFlags_Widget(as_Widget(findMenuItem_Widget(d->menu, localOnlyCmds[i])), | ||
1087 | disabled_WidgetFlag, | ||
1088 | isRemote); | ||
1089 | } | ||
1090 | } | ||
1072 | processContextMenuEvent_Widget(d->menu, ev, {}); | 1091 | processContextMenuEvent_Widget(d->menu, ev, {}); |
1073 | } | 1092 | } |
1074 | return processEvent_Widget(w, ev); | 1093 | return processEvent_Widget(w, ev); |