diff --git a/activation.cpp b/activation.cpp
index f2b06a3293..15d6801db8 100644
--- a/activation.cpp
+++ b/activation.cpp
@@ -276,11 +276,6 @@ void Workspace::activateClient( Client* c, bool force )
if( options->focusPolicyIsReasonable())
requestFocus( c, force );
- else
- {
- if( mostRecentlyActivatedClient() != c )
- c->demandAttention();
- }
c->updateUserTime();
}
diff --git a/kcmkwin/kwinoptions/windows.cpp b/kcmkwin/kwinoptions/windows.cpp
index faaa2ea7e4..abddd38367 100644
--- a/kcmkwin/kwinoptions/windows.cpp
+++ b/kcmkwin/kwinoptions/windows.cpp
@@ -525,7 +525,9 @@ KAdvancedConfig::KAdvancedConfig (bool _standAlone, KConfig *_config, QWidget *p
focusStealingLayout->addWidget( focusStealingLabel );
focusStealingLayout->addWidget( focusStealing, AlignLeft );
wtstr = i18n( "This option specifies how much KWin will try to prevent unwanted focus stealing "
- "caused by unexpected activation of new windows.
"
+ "caused by unexpected activation of new windows. (Note: This feature doesn't "
+ "work with the Focus Under Mouse or Focus Strictly Under Mouse focus policies.)"
+ ""
"- None: The standard old behavior - prevention is turned off "
"and new windows always become activated.
"
"- Low: Prevention is enabled; when some window doesn't have support "
diff --git a/options.cpp b/options.cpp
index 48e98d5715..661a68c2b1 100644
--- a/options.cpp
+++ b/options.cpp
@@ -68,6 +68,8 @@ unsigned long Options::updateSettings()
// TODO use low level for now
focusStealingPreventionLevel = config->readNumEntry( "FocusStealingPreventionLevel", 1 );
focusStealingPreventionLevel = KMAX( 0, KMIN( 4, focusStealingPreventionLevel ));
+ if( !focusPolicyIsReasonable()) // #48786, comments #7 and later
+ focusStealingPreventionLevel = 0;
KConfig *gc = new KConfig("kdeglobals", false, false);
bool isVirtual = KApplication::desktop()->isVirtualDesktop();