While in most case, Qt wayland scale is 1 (scale is on compositor side),
it is still possible to override the qt high dpi scale factor by certain
environment variables, including QT_SCALE_FACTOR and
QT_WAYLAND_FORCE_DPI.
Fix#55
Get rid of the new overloaded QMetaObject::invokeMethod from Qt 5.10.
This enables building the plugin-only on Qt 5.5, and rest of the project
on Qt 5.7.
(REQUIRED_QT5_VERSION 5.1.0) in cmake is wrong and is updated accordingly.
In cc645075dd we accidentally removed
"rendowNow()" in updateClientSideUI. Which make the content to be old if
in certain cases. Replace requestUpdate() with update() since it will
also update some internal state of QPaintDeviceWindow and it also calls to
requestUpdate.
Sometimes, Qt's internal "geometry" may not start at (0,0). While
windowContentGeometry is guarantee to be start with (0,0), and it's what
used for qt's internal xdg_positioner calculation.
A recently found bug that makes Qt6 not happy with the show/hide trick.
https://bugreports.qt.io/browse/QTBUG-118650
While I don't have a workaround for it, with Qt6 exposed xdg_popup
object, we can actually implement xdg_popup_reposition with our own
code, this will also eliminate the blinking caused by show/hide.
Fix#47
QFileSystemWatcher seems to be not happy to be created within
QPlatformInputContext's constructor, defer and always re-create when
watch and unwatch.
Fix#46.
When QPlatformInputContext object does not support input method and
the focus object/focus object wrapper do not support input method,
it's really needed to disable it.
The hack we does here will break invokeAction, but those case doesn't
support invokeAction anyway. Also, gtk doesn't support invoke action and
there's only one engine can do it (pinyin), so doesn't really matter if
we break it.
But the code here is fragile to class name change in those applications,
so ultimately, we should fix them instead.
Fixfcitx/fcitx5-unikey#35
The reason of this is that: focusWidgetChanged arrives after
setFocusObject. This makes QApplication::focusWidget value out of date
at the point of setFocusObject. The qwidget logic is actually simple
enough (see QWidgetPrivate::deepestFocusProxy), just use the same logic
here.
This will make use of a new capability flag Disable to indicate that ic doesn't want input method.
filterEvent has another check for not forwarding the event, so it should be ok that no key will reach fcitx.