Selaa lähdekoodia

LibGUI: Scroll selected treeview entries into view

Tibor Nagy 5 vuotta sitten
vanhempi
commit
0086daf9b0
1 muutettua tiedostoa jossa 7 lisäystä ja 1 poistoa
  1. 7 1
      Libraries/LibGUI/TreeView.cpp

+ 7 - 1
Libraries/LibGUI/TreeView.cpp

@@ -386,6 +386,7 @@ void TreeView::keydown_event(KeyEvent& event)
         });
         if (found_index.is_valid()) {
             selection().set(found_index);
+            scroll_into_view(selection().first(), Orientation::Vertical);
             update();
         }
         return;
@@ -401,8 +402,11 @@ void TreeView::keydown_event(KeyEvent& event)
             previous_index = index;
             return IterationDecision::Continue;
         });
-        if (found_index.is_valid())
+        if (found_index.is_valid()) {
             selection().set(found_index);
+            scroll_into_view(selection().first(), Orientation::Vertical);
+            update();
+        }
         return;
     }
 
@@ -423,6 +427,7 @@ void TreeView::keydown_event(KeyEvent& event)
         }
         if (cursor_index.is_valid() && cursor_index.parent().is_valid()) {
             selection().set(cursor_index.parent());
+            scroll_into_view(selection().first(), Orientation::Vertical);
             return;
         }
     }
@@ -436,6 +441,7 @@ void TreeView::keydown_event(KeyEvent& event)
             }
 
             selection().set(model()->index(0, model()->tree_column(), cursor_index));
+            scroll_into_view(selection().first(), Orientation::Vertical);
             return;
         }
     }