wayland: fix clipboard
This commit is contained in:
parent
24d7412f1c
commit
d3135d4c1e
2 changed files with 51 additions and 16 deletions
|
|
@ -131,18 +131,19 @@ if(MW_USE_STB_TRUETYPE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(MW_USE_FREETYPE2)
|
if(MW_USE_FREETYPE2)
|
||||||
|
find_package(Freetype)
|
||||||
|
if(Freetype_FOUND)
|
||||||
target_compile_definitions(
|
target_compile_definitions(
|
||||||
Mw
|
Mw
|
||||||
PRIVATE
|
PRIVATE
|
||||||
USE_FREETYPE2
|
USE_FREETYPE2
|
||||||
)
|
)
|
||||||
|
|
||||||
find_package(PkgConfig)
|
|
||||||
pkg_check_modules(FT2 REQUIRED freetype2)
|
|
||||||
list(APPEND INCLUDE_DIRS ${FT2_INCLUDE_DIRS})
|
list(APPEND INCLUDE_DIRS ${FT2_INCLUDE_DIRS})
|
||||||
list(APPEND LIBRARY_DIRS ${FT2_LIBRARY_DIRS})
|
list(APPEND LIBRARY_DIRS ${FT2_LIBRARY_DIRS})
|
||||||
list(APPEND LIBRARIES ${FT2_LIBRARIES})
|
list(APPEND LIBRARIES ${FT2_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(MW_USE_WAYLAND)
|
if(MW_USE_WAYLAND)
|
||||||
function(scan_wayland_protocol_core)
|
function(scan_wayland_protocol_core)
|
||||||
|
|
@ -197,6 +198,8 @@ if(MW_USE_WAYLAND)
|
||||||
)
|
)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
check_include_files(wayland-client.h HAVE_WL_H)
|
check_include_files(wayland-client.h HAVE_WL_H)
|
||||||
check_include_files(xkbcommon/xkbcommon.h HAVE_XKBCOMMON_H)
|
check_include_files(xkbcommon/xkbcommon.h HAVE_XKBCOMMON_H)
|
||||||
check_include_files(cairo/cairo.h HAVE_CAIRO_H)
|
check_include_files(cairo/cairo.h HAVE_CAIRO_H)
|
||||||
|
|
@ -318,27 +321,54 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Retro")
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
find_package(PkgConfig)
|
find_package(PkgConfig)
|
||||||
pkg_check_modules(X11 REQUIRED x11)
|
find_package(X11)
|
||||||
pkg_check_modules(XRENDER REQUIRED xrender)
|
pkg_check_modules(DBUS dbus-1)
|
||||||
|
|
||||||
target_sources(
|
target_sources(
|
||||||
Mw
|
Mw
|
||||||
PRIVATE
|
PRIVATE
|
||||||
src/backend/x11.c
|
src/backend/x11.c
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(${X11_FOUND})
|
||||||
|
list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS})
|
||||||
|
list(APPEND LIBRARY_DIRS ${X11_LIBRARY_DIRS})
|
||||||
|
list(APPEND LIBRARIES ${X11_LIBRARIES} m)
|
||||||
target_compile_definitions(
|
target_compile_definitions(
|
||||||
Mw
|
Mw
|
||||||
PRIVATE
|
PRIVATE
|
||||||
USE_X11
|
USE_X11
|
||||||
)
|
)
|
||||||
list(APPEND INCLUDE_DIRS ${X11_INCLUDE_DIRS} ${XRENDER_INCLUDE_DIRS})
|
endif()
|
||||||
list(APPEND LIBRARY_DIRS ${X11_LIBRARY_DIRS} ${XRENDER_LIBRARY_DIRS})
|
if(${X11_Xrender_FOUND})
|
||||||
list(APPEND LIBRARIES ${X11_LIBRARIES} ${XRENDER_LIBRARIES} m)
|
list(APPEND INCLUDE_DIRS ${XRENDER_INCLUDE_DIRS})
|
||||||
|
list(APPEND LIBRARY_DIRS ${XRENDER_LIBRARY_DIRS})
|
||||||
|
list(APPEND LIBRARIES ${XRENDER_LIBRARIES} m)
|
||||||
|
target_compile_definitions(
|
||||||
|
Mw
|
||||||
|
PRIVATE
|
||||||
|
USE_XRENDER
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
list(APPEND LIBRARIES dl)
|
list(APPEND LIBRARIES dl)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
find_package(DBus1)
|
||||||
|
|
||||||
|
if(${DBus1_FOUND})
|
||||||
|
list(APPEND INCLUDE_DIRS ${DBUS_INCLUDE_DIRS})
|
||||||
|
list(APPEND LIBRARY_DIRS ${DBUS_LIBRARY_DIRS})
|
||||||
|
list(APPEND LIBRARIES ${DBUS_LIBRARIES})
|
||||||
|
target_compile_definitions(
|
||||||
|
Mw
|
||||||
|
PRIVATE
|
||||||
|
USE_DBUS
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_include_directories(
|
target_include_directories(
|
||||||
Mw
|
Mw
|
||||||
PRIVATE
|
PRIVATE
|
||||||
|
|
|
||||||
|
|
@ -979,6 +979,11 @@ static void wl_seat_capabilities(void* data, struct wl_seat* wl_seat,
|
||||||
wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data);
|
wl_pointer_add_listener(self->wayland.pointer, &pointer_listener, data);
|
||||||
}
|
}
|
||||||
WAYLAND_EVENT_OP_END(self);
|
WAYLAND_EVENT_OP_END(self);
|
||||||
|
|
||||||
|
if(self->wayland.clipboard_manager.wl)
|
||||||
|
setup_clipboard(self, self->wayland.pointer_seat);
|
||||||
|
if(self->wayland.clipboard_manager.zwp)
|
||||||
|
setup_zwp_clipboard(self, self->wayland.pointer_seat);
|
||||||
};
|
};
|
||||||
|
|
||||||
static void output_geometry(void* data,
|
static void output_geometry(void* data,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue