Fix regression for timestamp handling for Xwayland windows

Summary:
Change 0bec9ad733 introduced a regrssion
on Wayland. On Wayland getTimestamp always returns 0, thus the X11
timestamp gets reset again and again. This results in broken interaction
for Xwayland windows as the broken unit tests show.

This change addresses the regression by ignoring a value of 0.
It means the addressed bug is still present on Wayland for X11 windows
as the timestamp doesn't get updated properly. This requires further
changes.

Test Plan: TestShade works again, testX11TimestampUpdate still works

Reviewers: #kwin, #plasma

Subscribers: plasma-devel, kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D5731
This commit is contained in:
Martin Flöser 2017-05-06 19:52:41 +02:00
parent 0bec9ad733
commit 32939fa7b5

2
main.h
View file

@ -109,7 +109,7 @@ public:
Always Always
}; };
void setX11Time(xcb_timestamp_t timestamp, TimestampUpdate force = TimestampUpdate::OnlyIfLarger) { void setX11Time(xcb_timestamp_t timestamp, TimestampUpdate force = TimestampUpdate::OnlyIfLarger) {
if (timestamp > m_x11Time || force == TimestampUpdate::Always) { if ((timestamp > m_x11Time || force == TimestampUpdate::Always) && timestamp != 0) {
m_x11Time = timestamp; m_x11Time = timestamp;
} }
} }