diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index a5f5dddf9..f2fe40b7e 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -1691,6 +1691,24 @@ public class Editor extends JFrame implements RunnerListener { selectTab(0); } + private static final Comparator CODE_DOCS_COMPARATOR = new Comparator() { + @Override + public int compare(EditorTab x, EditorTab y) { + if (x.getSketchFile().isPrimary() && !y.getSketchFile().isPrimary()) + return -1; + if (y.getSketchFile().isPrimary() && !x.getSketchFile().isPrimary()) + return 1; + return x.getSketchFile().getFileName().compareTo(y.getSketchFile().getFileName()); + } + }; + + /** + * Reorders tabs as per current sketch's files order + */ + public void reorderTabs() { + Collections.sort(tabs, CODE_DOCS_COMPARATOR); + } + /** * Add a new tab. * diff --git a/app/src/processing/app/EditorHeader.java b/app/src/processing/app/EditorHeader.java index 42d6769f8..83353559c 100644 --- a/app/src/processing/app/EditorHeader.java +++ b/app/src/processing/app/EditorHeader.java @@ -323,6 +323,7 @@ public class EditorHeader extends JComponent { if (sketch != null) { menu.addSeparator(); + editor.reorderTabs(); int i = 0; for (EditorTab tab : editor.getTabs()) { SketchFile file = tab.getSketchFile();