Compare commits

..

17 Commits

Author SHA1 Message Date
09eb3e8196 update version for new release 2025-04-02 05:17:01 +01:00
9f83b5177d update version for new release 2025-03-11 14:32:37 +00:00
7ed94f9246 update version for new release 2025-02-25 16:45:49 +00:00
aa4cfaf37e update version for new release 2025-02-18 14:21:38 +00:00
d44f84a8da update version for new release 2025-02-12 15:47:58 +00:00
a0923de84d update version for new release 2025-02-06 10:41:35 +00:00
5dccaf1b84 update version for new release 2025-01-23 11:55:19 +00:00
c85d6e7baa update version for new release 2025-01-09 11:01:05 +00:00
e534206172 Update Frameworks version requirement to 6.10.0
GIT_SILENT
2025-01-09 10:29:52 +00:00
edb8f67b1b It compiles without deprecated methods 2024-12-18 13:24:21 +01:00
1796255496 update version for new release 2024-10-03 13:11:32 +01:00
2dbd1d6eb7 Update Frameworks version requirement to 6.5.0
GIT_SILENT
2024-09-12 11:08:45 +01:00
0d11058c8f update version for new release 2024-09-12 10:50:16 +01:00
a5fbaa5975 Reformat CMake code for better readability 2024-08-14 11:08:41 +02:00
6f8a3f5d42 Generate wayland code with PRIVATE_CODE 2024-08-14 10:47:07 +02:00
303f68cf10 Update Qt version requirement to 6.7.0
GIT_SILENT
2024-08-02 10:15:46 +01:00
368cf2dd37 Port to QWaylandWindow::updateExposure() 2024-07-05 09:49:38 +03:00
6 changed files with 18 additions and 45 deletions

View File

@ -4,13 +4,13 @@
cmake_minimum_required(VERSION 3.16)
project(layershellqt)
set(PROJECT_VERSION "6.1.80")
set(PROJECT_VERSION "6.3.5")
set(PROJECT_VERSION_MAJOR 6)
set(CMAKE_C_STANDARD 99)
set(QT_MIN_VERSION "6.6.0")
set(KF6_MIN_VERSION "6.2.0")
set(QT_MIN_VERSION "6.7.0")
set(KF6_MIN_VERSION "6.10.0")
set(KDE_COMPILERSETTINGS_LEVEL "5.82")
set(CMAKE_CXX_STANDARD 20)
@ -55,8 +55,8 @@ kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
ecm_set_disabled_deprecation_versions(QT 6.5
KF 5.240
ecm_set_disabled_deprecation_versions(QT 6.8.1
KF 6.9.0
)
add_subdirectory(src)

View File

@ -4,7 +4,13 @@
remove_definitions(-DQT_NO_SIGNALS_SLOTS_KEYWORDS)
add_library(LayerShellQtInterface)
qt6_generate_wayland_protocol_client_sources(LayerShellQtInterface FILES
if (Qt6_VERSION VERSION_GREATER_EQUAL "6.8.0")
set(private_code_option "PRIVATE_CODE")
endif()
qt6_generate_wayland_protocol_client_sources(LayerShellQtInterface
${private_code_option}
FILES
${WaylandProtocols_DATADIR}/stable/xdg-shell/xdg-shell.xml
${WaylandProtocols_DATADIR}/staging/xdg-activation/xdg-activation-v1.xml
${CMAKE_CURRENT_SOURCE_DIR}/wlr-layer-shell-unstable-v1.xml

View File

@ -12,15 +12,12 @@
#include <QtWaylandClient/private/qwaylanddisplay_p.h>
#include <QtWaylandClient/private/qwaylandwindow_p.h>
#include <QPlatformSurfaceEvent>
namespace LayerShellQt
{
QWaylandLayerShellIntegration::QWaylandLayerShellIntegration()
: QWaylandShellIntegrationTemplate<QWaylandLayerShellIntegration>(5)
, m_xdgActivation(new QWaylandXdgActivationV1)
{
qGuiApp->installEventFilter(this);
}
QWaylandLayerShellIntegration::~QWaylandLayerShellIntegration()
@ -35,29 +32,4 @@ QtWaylandClient::QWaylandShellSurface *QWaylandLayerShellIntegration::createShel
return new QWaylandLayerSurface(this, window);
}
bool QWaylandLayerShellIntegration::eventFilter(QObject *watched, QEvent *event)
{
if (event->type() == QEvent::PlatformSurface && static_cast<QPlatformSurfaceEvent *>(event)->surfaceEventType() == QPlatformSurfaceEvent::SurfaceCreated) {
QWindow *window = qobject_cast<QWindow *>(watched);
if (!window) {
return false;
}
auto child = static_cast<QtWaylandClient::QWaylandWindow *>(window->handle());
auto maybeSetParent = [child]() {
auto transientParent = child->window()->transientParent();
if (!transientParent) {
return;
}
if (auto layerParent = qobject_cast<QWaylandLayerSurface *>(static_cast<QtWaylandClient::QWaylandWindow *>(transientParent->handle())->shellSurface())) {
if (auto topevel = child->surfaceRole<xdg_toplevel>()) {
layerParent->set_parent_of(topevel);
}
}
};
maybeSetParent();
connect(window, &QWindow::transientParentChanged, child, maybeSetParent);
connect(child, &QtWaylandClient::QWaylandWindow::surfaceRoleCreated, this, maybeSetParent);
}
return false;
}
}

View File

@ -32,7 +32,6 @@ public:
QtWaylandClient::QWaylandShellSurface *createShellSurface(QtWaylandClient::QWaylandWindow *window) override;
private:
bool eventFilter(QObject *watched, QEvent *event) override;
QScopedPointer<QWaylandXdgActivationV1> m_xdgActivation;
};

View File

@ -231,8 +231,10 @@ void QWaylandLayerSurface::sendExpose()
{
#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0)
window()->handleExpose(QRect(QPoint(), m_pendingSize));
#else
#elif QT_VERSION < QT_VERSION_CHECK(6, 9, 0)
window()->sendRecursiveExposeEvent();
#else
window()->updateExposure();
#endif
}

View File

@ -403,11 +403,5 @@
</description>
<arg name="edge" type="uint"/>
</request>
<request name="set_parent_of">
<description summary="assign this layer_surface as an xdg_toplevel parent">
</description>
<arg name="toplevel" type="object" interface="xdg_toplevel" />
</request>
</interface>
</protocol>