Replace XWayland fallback with proper xdg-decoration protocol negotiation. On Wayland: binds zxdg_decoration_manager_v1 from the compositor registry, requests CLIENT_SIDE mode on the toplevel surface — KWin respects this and drops server-side decorations. Falls back to gdk_window_set_decorations(0) + set_decorated(FALSE) on X11. GDK_BACKEND=x11 removed from Makefile. Also fixes mouse-jumping glitch: startDrag and startResize now pass screen coordinates from Flutter's globalPosition through the method channel to gtk_window_begin_move/resize_drag. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
28 lines
995 B
CMake
28 lines
995 B
CMake
cmake_minimum_required(VERSION 3.13)
|
|
project(runner LANGUAGES C CXX)
|
|
|
|
# Any new source files that you add to the application should be added here.
|
|
add_executable(${BINARY_NAME}
|
|
"main.cc"
|
|
"my_application.cc"
|
|
"protocols/xdg-decoration-unstable-v1-protocol.c"
|
|
"${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc"
|
|
)
|
|
|
|
apply_standard_settings(${BINARY_NAME})
|
|
|
|
add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}")
|
|
|
|
# Find wayland-client for xdg-decoration protocol (D-057).
|
|
pkg_check_modules(WAYLAND_CLIENT IMPORTED_TARGET wayland-client)
|
|
|
|
target_link_libraries(${BINARY_NAME} PRIVATE flutter)
|
|
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)
|
|
if(WAYLAND_CLIENT_FOUND)
|
|
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::WAYLAND_CLIENT)
|
|
target_compile_definitions(${BINARY_NAME} PRIVATE HAS_WAYLAND_CLIENT=1)
|
|
endif()
|
|
|
|
target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}")
|
|
target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}/runner")
|