diff --git a/src/org/omegat/gui/main/IMainWindow.java b/src/org/omegat/gui/main/IMainWindow.java index f4fbd2c5be..6bb2284e8c 100644 --- a/src/org/omegat/gui/main/IMainWindow.java +++ b/src/org/omegat/gui/main/IMainWindow.java @@ -195,6 +195,10 @@ public interface IMainWindow { */ Cursor getCursor(); + default String getSelectedText() { + return ""; + } + /** * Retrieve main manu instance. */ diff --git a/src/org/omegat/gui/main/MainWindow.java b/src/org/omegat/gui/main/MainWindow.java index 21b2a7c623..8ccb66d62e 100644 --- a/src/org/omegat/gui/main/MainWindow.java +++ b/src/org/omegat/gui/main/MainWindow.java @@ -295,6 +295,11 @@ public Cursor getCursor() { return applicationFrame.getCursor(); } + @Override + public String getSelectedText() { + return MainWindowUI.getTrimmedSelectedTextInMainWindow(this); + } + /** * Sets the title of the main window appropriately */ diff --git a/src/org/omegat/gui/main/MainWindowMenuHandler.java b/src/org/omegat/gui/main/MainWindowMenuHandler.java index 63f7ae9af1..e3371e1f78 100644 --- a/src/org/omegat/gui/main/MainWindowMenuHandler.java +++ b/src/org/omegat/gui/main/MainWindowMenuHandler.java @@ -446,7 +446,10 @@ void findInProjectReuseLastWindow() { if (!Core.getProject().isProjectLoaded()) { return; } - String text = MainWindowUI.getTrimmedSelectedTextInMainWindow(); + String text = Core.getMainWindow().getSelectedText(); + if (text == null) { + return; + } if (!SearchWindowManager.reuseSearchWindow(text)) { SearchWindowManager.createSearchWindow(SearchMode.SEARCH, text); } diff --git a/src/org/omegat/gui/main/MainWindowUI.java b/src/org/omegat/gui/main/MainWindowUI.java index 3576366258..faaaf9e0fb 100644 --- a/src/org/omegat/gui/main/MainWindowUI.java +++ b/src/org/omegat/gui/main/MainWindowUI.java @@ -262,9 +262,9 @@ public static void resetDesktopLayout(MainWindow mainWindow) { } } - public static String getTrimmedSelectedTextInMainWindow() { + public static String getTrimmedSelectedTextInMainWindow(MainWindow mainWindow) { String selection = null; - Component component = Core.getMainWindow().getApplicationFrame().getMostRecentFocusOwner(); + Component component = mainWindow.getApplicationFrame().getMostRecentFocusOwner(); if (component instanceof JTextComponent) { selection = ((JTextComponent) component).getSelectedText(); if (!StringUtil.isEmpty(selection)) { diff --git a/src/org/omegat/gui/search/SearchWindowManager.java b/src/org/omegat/gui/search/SearchWindowManager.java index f9da85b28b..e89df8e08d 100644 --- a/src/org/omegat/gui/search/SearchWindowManager.java +++ b/src/org/omegat/gui/search/SearchWindowManager.java @@ -25,8 +25,8 @@ package org.omegat.gui.search; +import org.omegat.core.Core; import org.omegat.core.search.SearchMode; -import org.omegat.gui.main.MainWindowUI; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; @@ -41,7 +41,8 @@ public final class SearchWindowManager { private static final List searches = new ArrayList<>(); public static void createSearchWindow(SearchMode mode) { - createSearchWindow(mode, MainWindowUI.getTrimmedSelectedTextInMainWindow()); + String text = Core.getMainWindow().getSelectedText(); + createSearchWindow(mode, text); } public static void createSearchWindow(SearchMode mode, String query) {