don't request focus by mouse events in the current event cycle
BUG: 279356 BUG: 286116 REVIEW: 103284
This commit is contained in:
parent
82bf9d2d44
commit
6c934998a5
8 changed files with 9 additions and 32 deletions
|
@ -45,6 +45,6 @@ install( TARGETS kwin_update_tabbox_qml_settings DESTINATION ${LIB_INSTALL_DIR}/
|
|||
|
||||
install( FILES fsp_workarounds_1.kwinrules DESTINATION ${DATA_INSTALL_DIR}/kwin/default_rules )
|
||||
install( FILES pop.wav DESTINATION ${SOUND_INSTALL_DIR} )
|
||||
install( FILES kwin.upd kwinsticky.upd kwiniconify.upd kwin3_plugin.upd kwin_focus1.upd kwinupdatewindowsettings.upd kwin_focus2.upd kwin_fsp_workarounds_1.upd kwin_on_off.upd kwin_window_shortcuts.upd kwin_update_tabbox_settings.upd kwin_remove_effects.upd kwin_update_tabbox_qml_settings.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR} )
|
||||
install( PROGRAMS pluginlibFix.pl kwin3_plugin.pl kwin_focus1.sh kwin_focus2.sh on-off_to_true-false.sh kwin_window_shortcuts.sh DESTINATION ${KCONF_UPDATE_INSTALL_DIR} )
|
||||
install( FILES kwin.upd kwinsticky.upd kwiniconify.upd kwin3_plugin.upd kwin_focus1.upd kwinupdatewindowsettings.upd kwin_focus2.upd kwin_fsp_workarounds_1.upd kwin_on_off.upd kwin_window_shortcuts.upd kwin_update_tabbox_settings.upd kwin_remove_effects.upd kwin_update_tabbox_qml_settings.upd kwin_remove_delay_focus.upd DESTINATION ${KCONF_UPDATE_INSTALL_DIR} )
|
||||
install( PROGRAMS pluginlibFix.pl kwin3_plugin.pl kwin_focus1.sh kwin_focus2.sh on-off_to_true-false.sh kwin_window_shortcuts.sh kwin_remove_delay_focus.sh DESTINATION ${KCONF_UPDATE_INSTALL_DIR} )
|
||||
|
||||
|
|
4
data/kwin_remove_delay_focus.sh
Executable file
4
data/kwin_remove_delay_focus.sh
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
if ! `kreadconfig --file kwinrc --group Windows --key DelayFocus --default false` && [ `kreadconfig --file kwinrc --group Windows --key DelayFocusInterval --default 0` != 0 ]; then
|
||||
kwriteconfig --file kwinrc --group Windows --key DelayFocusInterval 0
|
||||
fi
|
2
data/kwin_remove_delay_focus.upd
Normal file
2
data/kwin_remove_delay_focus.upd
Normal file
|
@ -0,0 +1,2 @@
|
|||
Id=Kwin-4.8
|
||||
Script=kwin_remove_delay_focus.sh
|
|
@ -901,10 +901,7 @@ void Client::enterNotifyEvent(XCrossingEvent* e)
|
|||
// change came because of window changes (e.g. closing a window) - #92290
|
||||
if (options->focusPolicy != Options::FocusFollowsMouse
|
||||
|| currentPos != workspace()->focusMousePosition()) {
|
||||
if (options->delayFocus)
|
||||
workspace()->requestDelayFocus(this);
|
||||
else
|
||||
workspace()->requestFocus(this);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -52,7 +52,6 @@
|
|||
#define KWIN_AUTORAISE_INTERVAL "AutoRaiseInterval"
|
||||
#define KWIN_AUTORAISE "AutoRaise"
|
||||
#define KWIN_DELAYFOCUS_INTERVAL "DelayFocusInterval"
|
||||
#define KWIN_DELAYFOCUS "DelayFocus"
|
||||
#define KWIN_CLICKRAISE "ClickRaise"
|
||||
#define KWIN_MOVE_RESIZE_MAXIMIZED "MoveResizeMaximizedWindows"
|
||||
#define KWIN_SHADEHOVER "ShadeHover"
|
||||
|
@ -206,8 +205,6 @@ KFocusConfig::KFocusConfig(bool _standAlone, KConfig *_config, const KComponentD
|
|||
|
||||
connect(focusCombo, SIGNAL(activated(int)), this, SLOT(setDelayFocusEnabled()));
|
||||
|
||||
delayFocusOn = new QCheckBox(fcsBox);
|
||||
connect(delayFocusOn, SIGNAL(toggled(bool)), this, SLOT(delayFocusOnTog(bool)));
|
||||
delayFocus = new KIntNumInput(500, fcsBox);
|
||||
delayFocus->setRange(0, 3000, 100);
|
||||
delayFocus->setSteps(100, 100);
|
||||
|
@ -216,7 +213,6 @@ KFocusConfig::KFocusConfig(bool _standAlone, KConfig *_config, const KComponentD
|
|||
delayFocusOnLabel = new QLabel(i18n("Delay focus by:"), this);
|
||||
delayFocusOnLabel->setAlignment(Qt::AlignVCenter | Qt::AlignRight);
|
||||
delayFocusOnLabel->setBuddy(delayFocus);
|
||||
gLay->addWidget(delayFocusOn, 3, 0);
|
||||
gLay->addWidget(delayFocusOnLabel, 3, 1);
|
||||
gLay->addWidget(delayFocus, 3, 2);
|
||||
|
||||
|
@ -235,8 +231,6 @@ KFocusConfig::KFocusConfig(bool _standAlone, KConfig *_config, const KComponentD
|
|||
" it for inactive windows, you need to change the settings"
|
||||
" in the Actions tab."));
|
||||
|
||||
delayFocusOn->setWhatsThis(i18n("When this option is enabled, there will be a delay after which the"
|
||||
" window the mouse pointer is over will become active (receive focus)."));
|
||||
delayFocus->setWhatsThis(i18n("This is the delay after which the window the mouse pointer is over"
|
||||
" will automatically receive focus."));
|
||||
|
||||
|
@ -266,7 +260,6 @@ KFocusConfig::KFocusConfig(bool _standAlone, KConfig *_config, const KComponentD
|
|||
// Any changes goes to slotChanged()
|
||||
connect(focusCombo, SIGNAL(activated(int)), SLOT(changed()));
|
||||
connect(autoRaiseOn, SIGNAL(clicked()), SLOT(changed()));
|
||||
connect(delayFocusOn, SIGNAL(clicked()), SLOT(changed()));
|
||||
connect(clickRaiseOn, SIGNAL(clicked()), SLOT(changed()));
|
||||
connect(autoRaise, SIGNAL(valueChanged(int)), SLOT(changed()));
|
||||
connect(delayFocus, SIGNAL(valueChanged(int)), SLOT(changed()));
|
||||
|
@ -315,11 +308,6 @@ void KFocusConfig::setAutoRaise(bool on)
|
|||
autoRaiseOn->setChecked(on);
|
||||
}
|
||||
|
||||
void KFocusConfig::setDelayFocus(bool on)
|
||||
{
|
||||
delayFocusOn->setChecked(on);
|
||||
}
|
||||
|
||||
void KFocusConfig::setClickRaise(bool on)
|
||||
{
|
||||
clickRaiseOn->setChecked(on);
|
||||
|
@ -343,9 +331,8 @@ void KFocusConfig::setDelayFocusEnabled()
|
|||
int policyIndex = focusCombo->currentIndex();
|
||||
|
||||
// the delayed focus related widgets are: delayFocus
|
||||
delayFocusOn->setEnabled(policyIndex != CLICK_TO_FOCUS);
|
||||
delayFocusOnLabel->setEnabled(policyIndex != CLICK_TO_FOCUS);
|
||||
delayFocusOnTog(policyIndex != CLICK_TO_FOCUS && delayFocusOn->isChecked());
|
||||
delayFocusOnTog(policyIndex != CLICK_TO_FOCUS);
|
||||
}
|
||||
|
||||
void KFocusConfig::autoRaiseOnTog(bool a)
|
||||
|
@ -419,7 +406,6 @@ void KFocusConfig::load(void)
|
|||
setDelayFocusInterval(k);
|
||||
|
||||
setAutoRaise(cg.readEntry(KWIN_AUTORAISE, false));
|
||||
setDelayFocus(cg.readEntry(KWIN_DELAYFOCUS, false));
|
||||
setClickRaise(cg.readEntry(KWIN_CLICKRAISE, true));
|
||||
focusPolicyChanged(); // this will disable/hide the auto raise delay widget if focus==click
|
||||
setDelayFocusEnabled();
|
||||
|
@ -461,8 +447,6 @@ void KFocusConfig::save(void)
|
|||
|
||||
cg.writeEntry(KWIN_AUTORAISE, autoRaiseOn->isChecked());
|
||||
|
||||
cg.writeEntry(KWIN_DELAYFOCUS, delayFocusOn->isChecked());
|
||||
|
||||
cg.writeEntry(KWIN_CLICKRAISE, clickRaiseOn->isChecked());
|
||||
|
||||
cg.writeEntry(KWIN_SEPARATE_SCREEN_FOCUS, separateScreenFocus->isChecked());
|
||||
|
@ -487,7 +471,6 @@ void KFocusConfig::defaults()
|
|||
setDelayFocusInterval(0);
|
||||
setFocus(CLICK_TO_FOCUS);
|
||||
setAutoRaise(false);
|
||||
setDelayFocus(false);
|
||||
setClickRaise(true);
|
||||
setSeparateScreenFocus(false);
|
||||
|
||||
|
|
|
@ -95,7 +95,6 @@ private:
|
|||
void setAutoRaiseInterval(int);
|
||||
void setAutoRaise(bool);
|
||||
void setDelayFocusInterval(int);
|
||||
void setDelayFocus(bool);
|
||||
void setClickRaise(bool);
|
||||
void setSeparateScreenFocus(bool);
|
||||
void setActiveMouseScreen(bool);
|
||||
|
@ -109,7 +108,6 @@ private:
|
|||
QLabel *autoRaiseOnLabel;
|
||||
QCheckBox *autoRaiseOn;
|
||||
QLabel *delayFocusOnLabel;
|
||||
QCheckBox *delayFocusOn;
|
||||
QCheckBox *clickRaiseOn;
|
||||
KIntNumInput *autoRaise;
|
||||
KIntNumInput *delayFocus;
|
||||
|
|
|
@ -151,12 +151,10 @@ unsigned long Options::updateSettings()
|
|||
if (focusPolicy == ClickToFocus) {
|
||||
autoRaise = false;
|
||||
autoRaiseInterval = 0;
|
||||
delayFocus = false;
|
||||
delayFocusInterval = 0;
|
||||
} else {
|
||||
autoRaise = config.readEntry("AutoRaise", false);
|
||||
autoRaiseInterval = config.readEntry("AutoRaiseInterval", 0);
|
||||
delayFocus = config.readEntry("DelayFocus", false);
|
||||
delayFocusInterval = config.readEntry("DelayFocusInterval", 0);
|
||||
}
|
||||
|
||||
|
|
|
@ -97,11 +97,6 @@ public:
|
|||
*/
|
||||
int autoRaiseInterval;
|
||||
|
||||
/**
|
||||
whether delay focus is enabled or not.
|
||||
*/
|
||||
bool delayFocus;
|
||||
|
||||
/**
|
||||
delayed focus interval
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue