Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Backports:SLE-15-SP6
audacious-plugins
audacious-plugins-fix-qt6-qthotkey.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File audacious-plugins-fix-qt6-qthotkey.patch of Package audacious-plugins
--- a/src/qthotkey/gui.cc +++ b/src/qthotkey/gui.cc @@ -40,11 +40,14 @@ #include <QtCore/QMap> #include <QtCore/QStringList> +#include <QtGui/QGuiApplication> #include <QtGui/QKeyEvent> #include <QtGui/QMouseEvent> #include <QtWidgets/QApplication> #include <QtWidgets/QStyle> +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) #include <QtX11Extras/QX11Info> +#endif #include <libaudcore/i18n.h> #include <libaudcore/preferences.h> @@ -106,8 +109,14 @@ public: QStringList strings; - KeySym keysym; - keysym = XkbKeycodeToKeysym(QX11Info::display(), key, 0, 0); +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + Display * xdisplay = reinterpret_cast<Display *>(qApp + ->nativeInterface<QNativeInterface::QX11Application>() + ->display()); +#else + Display * xdisplay = QX11Info::display(); +#endif + KeySym keysym = XkbKeycodeToKeysym(xdisplay, key, 0, 0); if (keysym == 0 || keysym == NoSymbol) { text = QString::fromLocal8Bit("#%1").arg(key); --- a/src/qthotkey/meson.build +++ b/src/qthotkey/meson.build @@ -1,17 +1,17 @@ if get_option('qt6') - qtx11extras_dep = dependency('qt6', version: qt_req, required: false, modules: ['X11Extras']) + qtprivate_dep = dependency('qt6', version: qt_req, private_headers: true, required: false, modules: ['Core', 'Gui']) else - qtx11extras_dep = dependency('qt5', version: qt_req, required: false, modules: ['X11Extras']) + qtprivate_dep = dependency('qt5', version: qt_req, required: false, modules: ['X11Extras']) endif -have_qthotkey = qtx11extras_dep.found() +have_qthotkey = qtprivate_dep.found() if have_qthotkey shared_module('qthotkey', 'gui.cc', 'plugin.cc', - dependencies: [audacious_dep, qt_dep, audqt_dep, qtx11extras_dep], + dependencies: [audacious_dep, qt_dep, audqt_dep, qtprivate_dep], name_prefix: '', install: true, install_dir: general_plugin_dir --- a/src/qthotkey/plugin.cc +++ b/src/qthotkey/plugin.cc @@ -42,7 +42,10 @@ #include <QtCore/QCoreApplication> #include <QtCore/QString> #include <QtCore/QTimer> +#include <QtGui/QGuiApplication> +#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0) #include <QtX11Extras/QX11Info> +#endif #include <libaudcore/drct.h> #include <libaudcore/hook.h> @@ -95,6 +98,7 @@ static GlobalHotkeysEventFilter event_fi static PluginConfig plugin_cfg; static int grabbed = 0; +static Display * xdisplay = nullptr; unsigned int numlock_mask = 0; unsigned int scrolllock_mask = 0; unsigned int capslock_mask = 0; @@ -336,7 +340,7 @@ void add_hotkey(QList<HotkeyConfiguratio return; } - keycode = XKeysymToKeycode(QX11Info::display(), keysym); + keycode = XKeysymToKeycode(xdisplay, keysym); if (keycode == 0) { return; @@ -436,13 +440,25 @@ bool GlobalHotkeys::init() { audqt::init(); - if (!QX11Info::isPlatformX11()) +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + auto * native = qApp->nativeInterface<QNativeInterface::QX11Application>(); +#else + bool native = QX11Info::isPlatformX11(); +#endif + + if (!native) { AUDERR("Global Hotkey plugin only supports X11.\n"); audqt::cleanup(); return false; } +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + xdisplay = reinterpret_cast<Display *>(native->display()); +#else + xdisplay = QX11Info::display(); +#endif + load_config(); grab_keys(); QCoreApplication::instance()->installNativeEventFilter(&event_filter); @@ -610,7 +626,6 @@ void grab_keys() PluginConfig * plugin_cfg = get_config(); XErrorHandler old_handler = nullptr; - Display * xdisplay = QX11Info::display(); if (grabbed || (!xdisplay)) { @@ -704,7 +719,6 @@ void ungrab_keys() PluginConfig * plugin_cfg = get_config(); XErrorHandler old_handler = nullptr; - Display * xdisplay = QX11Info::display(); if ((!grabbed) || (!xdisplay)) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor