diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableFilterPanel.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableFilterPanel.java index a26666ae29..f9f348ab6e 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableFilterPanel.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/table/GTableFilterPanel.java @@ -146,6 +146,12 @@ public class GTableFilterPanel extends JPanel { private SwingUpdateManager updateManager = new SwingUpdateManager(250, 1000, () -> { String text = filterField.getText(); TableFilter tableFilter = filterFactory.getTableFilter(text, transformer); + + // Having an edit active when the data changes can lead to incorrect row editing. The table + // knows which row is being edited by number. If the data for that row number changes as a + // result of a filter, the table does not know this and may update the wrong row data. + table.editingCanceled(null); + textFilterModel.setTableFilter( getCombinedTableFilter(secondaryTableFilter, tableFilter, columnTableFilter)); });