Advance redbear-full Wayland, greeter, and Qt integration
Consolidate the active desktop path around redbear-full while landing the greeter/session stack and the runtime fixes needed to keep Wayland and KWin bring-up moving forward.
This commit is contained in:
@@ -6,7 +6,45 @@
|
||||
#include "syncobjtimeline.h"
|
||||
|
||||
#include <cerrno>
|
||||
#ifdef __redox__
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#ifndef EFD_CLOEXEC
|
||||
#define EFD_CLOEXEC O_CLOEXEC
|
||||
#endif
|
||||
|
||||
#ifndef EFD_NONBLOCK
|
||||
#define EFD_NONBLOCK O_NONBLOCK
|
||||
#endif
|
||||
|
||||
#ifndef EFD_SEMAPHORE
|
||||
#define EFD_SEMAPHORE 0x1
|
||||
#endif
|
||||
|
||||
static int eventfd(unsigned int initval, int flags)
|
||||
{
|
||||
const int supported = EFD_CLOEXEC | EFD_NONBLOCK | EFD_SEMAPHORE;
|
||||
int oflag = O_RDWR;
|
||||
char path[64];
|
||||
|
||||
if ((flags & ~supported) != 0) {
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
if (flags & EFD_CLOEXEC) {
|
||||
oflag |= O_CLOEXEC;
|
||||
}
|
||||
if (flags & EFD_NONBLOCK) {
|
||||
oflag |= O_NONBLOCK;
|
||||
}
|
||||
|
||||
snprintf(path, sizeof(path), "/scheme/event/eventfd/%u/%d", initval, (flags & EFD_SEMAPHORE) ? 1 : 0);
|
||||
return open(path, oflag);
|
||||
}
|
||||
#else
|
||||
#include <sys/eventfd.h>
|
||||
#endif
|
||||
#include <sys/ioctl.h>
|
||||
#include <xf86drm.h>
|
||||
|
||||
|
||||
@@ -45,6 +45,8 @@ function(kwin_add_script name source)
|
||||
file(COPY ${source}/contents ${source}/metadata.json DESTINATION ${CMAKE_BINARY_DIR}/bin/kwin/scripts/${name})
|
||||
endfunction()
|
||||
|
||||
add_subdirectory(qpa)
|
||||
|
||||
add_subdirectory(idletime)
|
||||
|
||||
if (KWIN_BUILD_EFFECTS)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
add_library(KWinQpaPlugin OBJECT)
|
||||
target_sources(KWinQpaPlugin PRIVATE
|
||||
add_library(KWinQpaPlugin MODULE
|
||||
backingstore.cpp
|
||||
clipboard.cpp
|
||||
eglhelpers.cpp
|
||||
@@ -13,6 +12,13 @@ target_sources(KWinQpaPlugin PRIVATE
|
||||
window.cpp
|
||||
)
|
||||
|
||||
set_target_properties(KWinQpaPlugin PROPERTIES
|
||||
AUTOMOC ON
|
||||
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/plugins/platforms"
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/plugins/platforms"
|
||||
OUTPUT_NAME "qwayland-org.kde.kwin.qpa"
|
||||
)
|
||||
|
||||
ecm_qt_declare_logging_category(KWinQpaPlugin
|
||||
HEADER logging.h
|
||||
IDENTIFIER KWIN_QPA
|
||||
@@ -20,8 +26,6 @@ ecm_qt_declare_logging_category(KWinQpaPlugin
|
||||
DEFAULT_SEVERITY Critical
|
||||
)
|
||||
|
||||
target_compile_definitions(KWinQpaPlugin PRIVATE QT_STATICPLUGIN)
|
||||
|
||||
target_link_libraries(KWinQpaPlugin PRIVATE
|
||||
Qt::Concurrent
|
||||
Qt::CorePrivate
|
||||
@@ -30,3 +34,5 @@ target_link_libraries(KWinQpaPlugin PRIVATE
|
||||
Fontconfig::Fontconfig
|
||||
kwin
|
||||
)
|
||||
|
||||
install(TARGETS KWinQpaPlugin DESTINATION plugins/platforms)
|
||||
|
||||
@@ -137,7 +137,7 @@ QPlatformWindow *Integration::createPlatformWindow(QWindow *window) const
|
||||
|
||||
QPlatformOffscreenSurface *Integration::createPlatformOffscreenSurface(QOffscreenSurface *surface) const
|
||||
{
|
||||
return new OffscreenSurface(surface);
|
||||
return new KWin::QPA::OffscreenSurface(surface);
|
||||
}
|
||||
|
||||
QPlatformFontDatabase *Integration::fontDatabase() const
|
||||
|
||||
Reference in New Issue
Block a user