Pārlūkot izejas kodu

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 gadi atpakaļ
vecāks
revīzija
7a4b912ece
1 mainītis faili ar 2 papildinājumiem un 0 dzēšanām
  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);
         }