diff --git a/app/SysTray-X/SysTray-X-app/SysTray-X-app.pro b/app/SysTray-X/SysTray-X-app/SysTray-X-app.pro index bd5b944..87a82b0 100644 --- a/app/SysTray-X/SysTray-X-app/SysTray-X-app.pro +++ b/app/SysTray-X/SysTray-X-app/SysTray-X-app.pro @@ -23,7 +23,10 @@ QT += core gui widgets unix:!macx: { contains(DEFINES,KDE_INTEGRATION) { lessThan(QT_MAJOR_VERSION, 6): { - QT += dbus KNotifications + QT += dbus + + INCLUDEPATH += /usr/include/KF5/KNotifications + LIBS += -lKF5Notifications } greaterThan(QT_MAJOR_VERSION, 5): { INCLUDEPATH += /usr/include/KF6/KStatusNotifierItem diff --git a/app/SysTray-X/SysTray-X-app/windowctrl-unix.cpp b/app/SysTray-X/SysTray-X-app/windowctrl-unix.cpp index 1d7cd76..4f6fee9 100644 --- a/app/SysTray-X/SysTray-X-app/windowctrl-unix.cpp +++ b/app/SysTray-X/SysTray-X-app/windowctrl-unix.cpp @@ -432,6 +432,11 @@ void WindowCtrlUnix::minimizeWindowToTaskbar( quint64 window ) emit signalConsole( "Minimize to taskbar" ); #endif + /* + * Store the current window positions + */ + updatePositions(); + /* * Save the hints */ @@ -477,6 +482,11 @@ void WindowCtrlUnix::minimizeWindowToTray( quint64 window ) emit signalConsole( "Minimize to system tray" ); #endif + /* + * Store the current window positions + */ + updatePositions(); + /* * Save the hints */ @@ -611,6 +621,13 @@ void WindowCtrlUnix::normalizeWindow( quint64 window ) */ Sync( m_display ); + /* + * Move the window to the last recorded position, seems to be needed for wayland + */ + QPoint pos = m_tb_window_positions[ window ]; + MoveWindow( m_display, window, pos.x(), pos.y() ); + Flush( m_display ); + /* * Let us wait a bit, maybe this helps... */ diff --git a/app/SysTray-X/SysTray-X-app/windowctrl.cpp b/app/SysTray-X/SysTray-X-app/windowctrl.cpp index ae7f632..e715fe8 100644 --- a/app/SysTray-X/SysTray-X-app/windowctrl.cpp +++ b/app/SysTray-X/SysTray-X-app/windowctrl.cpp @@ -174,15 +174,6 @@ void WindowCtrl::slotWindowState( Preferences::WindowState state, int id ) QList< quint64 > win_ids = getWinIds(); -#ifdef Q_OS_UNIX - - /* - * Update window positions - */ - updatePositions(); - -#endif - /* * Minimize/dock all */ @@ -253,15 +244,6 @@ void WindowCtrl::slotShowHide() */ normalizeWindowsHidden(); -#endif - -#ifdef Q_OS_UNIX - - /* - * Update the positions - */ - updatePositions(); - #endif TargetType target_type = TargetType::TYPE_WINDOW_TO_SYSTEMTRAY;