Commit 69afe4d2 authored by Martin Flöser's avatar Martin Flöser

Update seat's timestamp after waking up screen through double tap

Summary:
The drm platform has a special handling for touch events while the
screen is in dpms. All touch events are filtered out, but a double
tap wakes up the screen.

Due to the filtering out of the events the idle timers were not reset.
So if you only double tapped, the screen turned on, but not off again.

This change updates the timestamp after double tap, so that the idle
timers are restarted. All other events are still filtered out, to not
have "fake" events (e.g. smart phone in pocket) wake up the device.

BUG: 392754
FIXED-IN: 5.12.6

Test Plan: only compile tested

Reviewers: #kwin, #plasma

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D12668
parent f28d44e5
......@@ -19,9 +19,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*********************************************************************/
#include "drm_inputeventfilter.h"
#include "drm_backend.h"
#include "wayland_server.h"
#include <QApplication>
#include <KWayland/Server/seat_interface.h>
namespace KWin
{
......@@ -82,10 +85,10 @@ bool DpmsInputEventFilter::touchDown(quint32 id, const QPointF &pos, quint32 tim
bool DpmsInputEventFilter::touchUp(quint32 id, quint32 time)
{
Q_UNUSED(time)
m_touchPoints.removeAll(id);
if (m_touchPoints.isEmpty() && m_doubleTapTimer.isValid() && m_secondTap) {
if (m_doubleTapTimer.elapsed() < qApp->doubleClickInterval()) {
waylandServer()->seat()->setTimestamp(time);
notify();
}
m_doubleTapTimer.invalidate();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment