diff --git a/src/Main/Base/Project/Editor/Bookmarks/BookmarkPad.cs b/src/Main/Base/Project/Editor/Bookmarks/BookmarkPad.cs index b7c5dcb1fc..499c02737c 100644 --- a/src/Main/Base/Project/Editor/Bookmarks/BookmarkPad.cs +++ b/src/Main/Base/Project/Editor/Bookmarks/BookmarkPad.cs @@ -65,6 +65,10 @@ namespace ICSharpCode.SharpDevelop.Editor.Bookmarks get { return (SDBookmark)this.control.listView.SelectedItem; } } + public IEnumerable SelectedItems { + get { return this.control.listView.SelectedItems.OfType(); } + } + protected BookmarkPadBase() { this.control = new BookmarkPadContent(); @@ -86,11 +90,14 @@ namespace ICSharpCode.SharpDevelop.Editor.Bookmarks }; this.control.listView.KeyDown += delegate(object sender, System.Windows.Input.KeyEventArgs e) { - SDBookmark bm = this.control.listView.SelectedItem as SDBookmark; - if (bm == null) return; + var selectedItems = this.SelectedItems.ToList(); + if (!selectedItems.Any()) + return; switch (e.Key) { case System.Windows.Input.Key.Delete: - SD.BookmarkManager.RemoveMark(bm); + foreach (var selectedItem in selectedItems) { + SD.BookmarkManager.RemoveMark(selectedItem); + } break; } }; diff --git a/src/Main/Base/Project/Editor/Bookmarks/BookmarkPadToolbarCommands.cs b/src/Main/Base/Project/Editor/Bookmarks/BookmarkPadToolbarCommands.cs index 7158e769ad..6a38a06b50 100644 --- a/src/Main/Base/Project/Editor/Bookmarks/BookmarkPadToolbarCommands.cs +++ b/src/Main/Base/Project/Editor/Bookmarks/BookmarkPadToolbarCommands.cs @@ -67,8 +67,11 @@ namespace ICSharpCode.SharpDevelop.Editor.Bookmarks public override void Run() { BookmarkPadBase pad = (BookmarkPadBase)this.Owner; - if (pad.SelectedItem != null) { - SD.BookmarkManager.RemoveMark(pad.SelectedItem); + var selectedItems = pad.SelectedItems.ToList(); + if (selectedItems.Any()) { + foreach (var selectedItem in selectedItems) { + SD.BookmarkManager.RemoveMark(selectedItem); + } } } }