xcb: reduce focus-in delay
This patch amends fe63900dc9
The previous value of 400ms was a random and seemingly harmless choice.
It turns out that 400ms is a bit too long and interferes with x11 async
behavior tweaks in the VirtualBox source code.
The original aim of specifying a concrete delay was to fix the
nondeterministic behavior of the pre-existing code and to avoid flickering
on KWin caused by waiting too little. This patch changes 400ms -> 100ms,
which seems to work better in practice.
Fixes: QTBUG-76742
Change-Id: Ia8168216819ac41d0124622c9472a98a1877262f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
bb10
parent
44602224bf
commit
b55fac3f37
|
|
@ -132,7 +132,9 @@ QXcbConnection::QXcbConnection(QXcbNativeInterface *nativeInterface, bool canGra
|
|||
if (!m_startupId.isNull())
|
||||
qunsetenv("DESKTOP_STARTUP_ID");
|
||||
|
||||
const int focusInDelay = 100;
|
||||
m_focusInTimer.setSingleShot(true);
|
||||
m_focusInTimer.setInterval(focusInDelay);
|
||||
m_focusInTimer.callOnTimeout([]() {
|
||||
// No FocusIn events for us, proceed with FocusOut normally.
|
||||
QWindowSystemInterface::handleWindowActivated(nullptr, Qt::ActiveWindowFocusReason);
|
||||
|
|
|
|||
|
|
@ -848,7 +848,7 @@ void QXcbWindow::doFocusOut()
|
|||
connection()->setFocusWindow(nullptr);
|
||||
relayFocusToModalWindow();
|
||||
// Do not set the active window to nullptr if there is a FocusIn coming.
|
||||
connection()->focusInTimer().start(400);
|
||||
connection()->focusInTimer().start();
|
||||
}
|
||||
|
||||
struct QtMotifWmHints {
|
||||
|
|
|
|||
Loading…
Reference in New Issue