diff --git a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/findandreplace/overlay/FindReplaceOverlay.java b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/findandreplace/overlay/FindReplaceOverlay.java index ac389fd96a6..f5638e46464 100644 --- a/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/findandreplace/overlay/FindReplaceOverlay.java +++ b/bundles/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/internal/findandreplace/overlay/FindReplaceOverlay.java @@ -701,8 +701,8 @@ private void createSearchBar() { searchBar.forceFocus(); searchBar.selectAll(); searchBar.addModifyListener(e -> { - wholeWordSearchButton.setEnabled(findReplaceLogic.isAvailable(SearchOptions.WHOLE_WORD)); updateIncrementalSearch(); + wholeWordSearchButton.setEnabled(findReplaceLogic.isAvailable(SearchOptions.WHOLE_WORD)); decorate(); }); searchBar.addFocusListener(new FocusListener() { diff --git a/tests/org.eclipse.ui.workbench.texteditor.tests/src/org/eclipse/ui/internal/findandreplace/overlay/FindReplaceOverlayTest.java b/tests/org.eclipse.ui.workbench.texteditor.tests/src/org/eclipse/ui/internal/findandreplace/overlay/FindReplaceOverlayTest.java index e74eb92d3b4..ddc82604ccc 100644 --- a/tests/org.eclipse.ui.workbench.texteditor.tests/src/org/eclipse/ui/internal/findandreplace/overlay/FindReplaceOverlayTest.java +++ b/tests/org.eclipse.ui.workbench.texteditor.tests/src/org/eclipse/ui/internal/findandreplace/overlay/FindReplaceOverlayTest.java @@ -201,6 +201,18 @@ public void testSearchTermStoredInHistoryAfterSearchForward() { assertEquals("foo", dialog.getFindText()); } + @Test + public void testWholeWordButtonEnabledStateImmediatelyReflectsCurrentSearchTerm() { + initializeTextViewerWithFindReplaceUI("foo bar foo"); + OverlayAccess dialog= getDialog(); + + dialog.setFindText("foo "); + dialog.assertDisabled(SearchOptions.WHOLE_WORD); + + dialog.setFindText("foo"); + dialog.assertEnabled(SearchOptions.WHOLE_WORD); + } + @Test public void testSearchTermStoredInHistoryAfterSearchBackward() { // Backward search must persist the term to history just like forward search.