From 18809bc9185eb736742c76aeac9ca61bcd8a88f5 Mon Sep 17 00:00:00 2001 From: drdev Date: Sat, 4 Jan 2014 03:07:14 +0000 Subject: [PATCH] Prevent updating item manager view if filters didn't change Focus item manager when Deck Editor opened and when filters hidden/shown --- .../main/java/forge/gui/deckeditor/CDeckEditorUI.java | 7 +++++++ .../forge/gui/toolbox/itemmanager/ItemManager.java | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/forge-gui/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java b/forge-gui/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java index 1426376d917..f4927b66175 100644 --- a/forge-gui/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java +++ b/forge-gui/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java @@ -472,6 +472,13 @@ public enum CDeckEditorUI implements ICDoc { catView.setWantUnique(wantUnique); deckView.setWantUnique(wantUnique); catView.applyFilters(); + + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + catView.focus(); + } + }); } private class _FindAsYouType extends KeyAdapter { diff --git a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java index 1d365dedc97..b176b0af652 100644 --- a/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java +++ b/forge-gui/src/main/java/forge/gui/toolbox/itemmanager/ItemManager.java @@ -211,6 +211,12 @@ public abstract class ItemManager extends JPanel { @Override public void run() { setHideFilters(!getHideFilters()); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + focus(); + } + }); } }; @@ -708,8 +714,10 @@ public abstract class ItemManager extends JPanel { predicates.add(mainSearchFilter.buildPredicate(this.genericType)); } - this.filterPredicate = predicates.size() == 0 ? null : Predicates.and(predicates); + Predicate newFilterPredicate = predicates.size() == 0 ? null : Predicates.and(predicates); + if (this.filterPredicate == newFilterPredicate) { return; } + this.filterPredicate = newFilterPredicate; if (this.pool != null) { this.updateView(true); }