hasTouchpadOnX11() return false when cann't find TouchPad from XInput
so if XInputExtension isn't present, hasTouchpadOnX11() should return false
not true
bug: 186930, 186938
In the past, in order for PlayIcon to be correctly highlighted with the theme,
the pixmap was reset according to the current state each time it was drawn.
However, this is a very wrong choice, it's causesed CPU usage to increase.
Pixmap should be updated when the checked state or theme changes.
The update rules for pixMap are:
1. System style change
2. Icon theme change
3. The checked state changed
In the past, touchpad plugin and touchscreen plugin all monitor icon theme
change for update icon of GestureWidget, they shouldn't care it, GestureWidget
should monitor it by self.
bug: 168990 168946 155293 155228
The GestureWidget inherits QPushButton for style of three-state,
and we add a layout with two label in the native QPushButton.
When the font size bigger, GestureWidget‘s sizeHint will not bigger
with font size change, so we overwrite the sizeHint().
Then by design, our GestureWidget requires a height of 64 by default,
but if we use minimumHeight, the GestureWidget is set to the
minimum height by default when it is placed in the scrollarea, so
we set the default height of the GestureWidget by override
minimumSizeHint().
Touchpad is a QtPlugin class, it shouldn't care how to find touchpad device,
so move the code about device to a other class.
At the same time, optimize the file include of files about touchpad settings.
in the past, InitUI() took on too many responsibilities, that's why we've modularized each of these parts
to make it more consistent with the single responsibility principle and to increase readability.
the location of some strings was changed, so we updated the translation file.
some x11 libs provide anonymity struct which can't
forward declaration, so we use the TouchPadX11Helper
encapsulates the x11 interface for isolate the impact
of these APIs on other parts.
setStyleSheet also set style of widget's children by default,
so the class must be specified at setup time
(cherry picked from commit 1a6a0857cf0f64854d10bd692e3f9bb616a8f5b4)
In xwayland, if exits touch device, xwayland will create a virtual touch device of xinput,
if we unplug the touch screen, the virtual touch device will not be removed but disable,
so we need monitor device enable/disable event.
(cherry picked from commit 980cc1378de2482cd87725fc3c8c20f28fa93527)
bug: 162709 【触摸屏】最大号字体下鼠标点击选中任一手势后,移入省略文字后tips提示文字看不清
detail: tooltip highlight because don't designated type when tooltip's parent widget
setStyleSheet.