Quellcode durchsuchen

LibGUI: Unbreak clearing GTableView selection by clicking outside items.

Also, clicking on the column headers should not clear selection.
Andreas Kling vor 6 Jahren
Ursprung
Commit
f91a20f9d0
2 geänderte Dateien mit 6 neuen und 5 gelöschten Zeilen
  1. 1 5
      LibGUI/GTableModel.h
  2. 5 0
      LibGUI/GTableView.cpp

+ 1 - 5
LibGUI/GTableModel.h

@@ -54,11 +54,7 @@ public:
         return index.row() >= 0 && index.row() < row_count() && index.column() >= 0 && index.column() < column_count();
     }
 
-    void set_selected_index(const GModelIndex& index)
-    {
-        if (is_valid(index))
-            m_selected_index = index;
-    }
+    void set_selected_index(const GModelIndex& index) { m_selected_index = index; }
     GModelIndex selected_index() const { return m_selected_index; }
 
     void register_view(Badge<GTableView>, GTableView&);

+ 5 - 0
LibGUI/GTableView.cpp

@@ -87,6 +87,11 @@ Rect GTableView::row_rect(int item_index) const
 
 void GTableView::mousedown_event(GMouseEvent& event)
 {
+    if (event.y() < header_height()) {
+        // FIXME: Do something when clicking on a header.
+        return;
+    }
+
     auto adjusted_position = event.position().translated(0, m_vertical_scrollbar->value());
     if (event.button() == GMouseButton::Left) {
         for (int i = 0; i < item_count(); ++i) {