Improves portability by avoiding the non-standard 'uint'. For example
this fixes building with musl libc:
".../kwin_wrapper.c:45:9: error: unknown type name 'uint';
did you mean 'int'?"
A situation meant we want to only enable the new keyboard applet by
default on wayland, using the legacy one from the X11 daemon on X11.
We need a unique service name so that we can use DBus activation on it.
QMap::value() failed to find existing keys when tow ComparablePoint
shared the same x but not the same y.
This commit improves the operator<() to fix that.
Previously code was if socket fd is greater then 0, then we start
process, but new code in 05ebe676d2 reversed logic. So this
made it not start input method at all.
On that signal, we asquare the new layout anyway all over the places.
Better just pass it along with the signal instead.
Also it's in-line with DBus API signal.
The base handle for layouts in libxkbcommon is an index. Let's follow
this notion in our API to set/get layout, instead of using it's name as
an ID.
On the way, do cleanup. Following methods are removed as not needed any
more:
- Xkb::layoutShortNames()
- Xkb::layoutNames()
If user set custom name for the layout, country flag is not displayed.
Instead, Display Name is shown in the applet.
This reveals shortcomings in current DBus API design.
We need more data to pass over DBus to fix this.
Then, multiple improvements are possible:
- fix aforementioned bug
- add flags to context menu
- display correct translated Layout Name in the context menu
- simpler, cleaner DBus API and applet implementation
- etc.
At the moment we are getting the input method from the command line
which is not very handy (but very secure).
This patch changes it so it can be specified from a configuration
setting.
CCBUG: 427972
If the maximizedChanged connection is queued, several configure events
will be sent. If the client acks the first configure event and later on
acks the second one, the maximize animation will be cancelled due to
"unexpected" geometry change.
Based on the code, there is no clear reason why the connection is queued
in the first place.
CCBUG: 431415
The last presentation timestamp might be in the future by a couple of
hundred microseconds.
This may break timestamp aligning code because it assumes that the
last presentation timestamp is less or equal to the current time.
In order to properly handle this case, we have to first compute the
next expected presentation timestamp by advancing the last presentation
timestamp by the amount of vblank interval. If that fails, we can safely
resort to aligning timestamps.
BUG: 431509
BUG: 431449
This logs to a tracefs filesystem which can be viewed in tools such as
gpuvis to see precise timings of activities in relation to other trace
markers in X or graphic drivers.
This patch is loosely based on D23114. Though modified with thread
safety, support for string building, and a RAII pattern for durations.
Ultimately that expanded it somewhat.
This reverts commit bf5155f82b.
Maximize and minimize function hints provided by some applications are
bogus. This in its turn breaks video games that minimize themselves when
they loose input focus.
Ideally, the window manager should not be concerned about Motif hints
provided by NetWM applications as they set the window type.
BUG: 431450
Qt 5.15 introduced new syntax for defining Connections. Fix warnings like this one:
QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... }
follow up of d2f3372749