瀏覽代碼

LibGUI: Fix invalid ModelIndices during shift-click multiselection

Previously, If the widget was unfocused, the selection start index
would be invalid. This would result in invalid selections when doing
shift+click on the widget (while it is unfocused).

Now, we reassign the selection start index to current index
before we initiate multiselection, if selection start index is invalid.

Should Fix SerenityOS#11999 and the same bug inside FileManager.
Aayush 2 年之前
父節點
當前提交
7a4b912ece
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      Userland/Libraries/LibGUI/AbstractView.cpp

+ 2 - 0
Userland/Libraries/LibGUI/AbstractView.cpp

@@ -493,6 +493,8 @@ void AbstractView::set_cursor(ModelIndex index, SelectionUpdate selection_update
             if (!m_selection.contains(index))
                 clear_selection();
         } else if (selection_update == SelectionUpdate::Shift) {
+            if (!selection_start_index().is_valid())
+                set_selection_start_index(index);
             select_range(index);
         }