2014-09-17 12:35:33 +00:00
|
|
|
set(SERVER_LIB_SRCS
|
2017-12-18 21:50:31 +00:00
|
|
|
appmenu_interface.cpp
|
2014-09-17 12:35:33 +00:00
|
|
|
buffer_interface.cpp
|
2014-11-17 15:01:18 +00:00
|
|
|
clientconnection.cpp
|
2014-09-17 12:35:33 +00:00
|
|
|
compositor_interface.cpp
|
2014-11-06 09:02:49 +00:00
|
|
|
datadevice_interface.cpp
|
2014-11-04 14:10:22 +00:00
|
|
|
datadevicemanager_interface.cpp
|
2014-11-06 15:56:50 +00:00
|
|
|
dataoffer_interface.cpp
|
2014-11-04 14:10:22 +00:00
|
|
|
datasource_interface.cpp
|
2014-09-17 12:35:33 +00:00
|
|
|
display.cpp
|
2015-08-31 14:08:58 +00:00
|
|
|
dpms_interface.cpp
|
Expose wl_display_set_global_filter as a virtual method
Summary:
This allows a server to filter which globals are visible and bindable by
clients.
Design rationale:
Could be it's own class with Display as an arg, but we need the lifespan
to exactly match Display, and the cardinality to match Display and it
needs to be set after we're started but before clients connect.
Better to enfore rules with code than with documentation.
I'm filtering by interface name as there isn't any other good
identifier of what a wl_global refers to, even if you could assume
you can cast the userdata to a Server::Global.
Test Plan: Attached unit test
Reviewers: #plasma, graesslin, bcooksley
Reviewed By: #plasma, graesslin
Subscribers: bcooksley, graesslin, plasma-devel, #frameworks
Tags: #frameworks, #plasma
Differential Revision: https://phabricator.kde.org/D8050
2017-11-17 08:34:01 +00:00
|
|
|
filtered_display.cpp
|
2014-11-13 14:07:31 +00:00
|
|
|
global.cpp
|
2015-07-02 09:35:16 +00:00
|
|
|
idle_interface.cpp
|
2017-10-20 16:28:25 +00:00
|
|
|
idleinhibit_interface.cpp
|
|
|
|
idleinhibit_interface_v1.cpp
|
2015-07-02 19:21:57 +00:00
|
|
|
fakeinput_interface.cpp
|
2014-11-25 12:39:24 +00:00
|
|
|
keyboard_interface.cpp
|
server side of new outputmanagement protocol
This implements the server part of the screen management protocol. The
protocol is implemented as a wayland protocol.
It provides the following mechanisms:
- a list of outputs, close to wl_output, with additional properties for
enabled, uuid, edid, etc.. These OutputDevices correspond to a
connected output that can be enabled by the compositor, but is not
necessarily currently used for rendering.
- a global OutputManagement, which allows creating config objects, one
per client. The client can make changes to the outputs through
setScale(outputdevice*, scale) for example.
- an OutputConfiguration resource, that can be handed to a client and
used for configuration. Changes are double buffered here. Only after
OutputConfiguration.apply() has been called, the changes are relayed
over the global OutputManagement.
The compositor is responsible to handle changes.
For a more detailed description, see the API docs in especially
outputconfiguration.h.
REVIEW:125942
2015-11-04 14:36:52 +00:00
|
|
|
outputconfiguration_interface.cpp
|
|
|
|
outputchangeset.cpp
|
|
|
|
outputmanagement_interface.cpp
|
|
|
|
outputdevice_interface.cpp
|
2015-01-20 08:42:26 +00:00
|
|
|
logging.cpp
|
2014-09-17 12:35:33 +00:00
|
|
|
output_interface.cpp
|
2014-11-25 12:52:40 +00:00
|
|
|
pointer_interface.cpp
|
2015-06-09 00:48:56 +00:00
|
|
|
plasmashell_interface.cpp
|
2015-06-12 01:05:14 +00:00
|
|
|
plasmawindowmanagement_interface.cpp
|
2016-11-08 13:17:15 +00:00
|
|
|
pointerconstraints_interface.cpp
|
|
|
|
pointerconstraints_interface_v1.cpp
|
2016-10-26 08:27:14 +00:00
|
|
|
pointergestures_interface.cpp
|
|
|
|
pointergestures_interface_v1.cpp
|
2015-06-09 22:56:31 +00:00
|
|
|
qtsurfaceextension_interface.cpp
|
2014-10-16 11:04:51 +00:00
|
|
|
region_interface.cpp
|
2016-10-07 07:07:34 +00:00
|
|
|
relativepointer_interface.cpp
|
|
|
|
relativepointer_interface_v1.cpp
|
2014-11-14 08:45:02 +00:00
|
|
|
resource.cpp
|
2014-09-17 12:35:33 +00:00
|
|
|
seat_interface.cpp
|
2015-09-09 11:04:11 +00:00
|
|
|
slide_interface.cpp
|
2015-07-15 09:07:50 +00:00
|
|
|
shadow_interface.cpp
|
2015-08-26 12:42:58 +00:00
|
|
|
blur_interface.cpp
|
2015-09-02 16:13:25 +00:00
|
|
|
contrast_interface.cpp
|
2015-12-10 08:39:24 +00:00
|
|
|
server_decoration_interface.cpp
|
2018-01-03 10:24:57 +00:00
|
|
|
server_decoration_palette_interface.cpp
|
2014-09-17 12:35:33 +00:00
|
|
|
shell_interface.cpp
|
|
|
|
surface_interface.cpp
|
2014-10-14 12:04:35 +00:00
|
|
|
subcompositor_interface.cpp
|
2015-03-25 12:31:38 +00:00
|
|
|
touch_interface.cpp
|
2016-05-02 12:28:26 +00:00
|
|
|
textinput_interface.cpp
|
|
|
|
textinput_interface_v0.cpp
|
|
|
|
textinput_interface_v2.cpp
|
2016-04-21 10:56:02 +00:00
|
|
|
xdgshell_interface.cpp
|
|
|
|
xdgshell_v5_interface.cpp
|
Wayland foreign protocol
Summary:
Implement the "foreign" wayland protocol.
A client can export a surface with an unique string as handle,
then another client can refer to that surface and set an own surface as
child of that surface.
Potential use cases are out-of-process dialogs, such as file dialogs,
meant to be used by sandboxed processes that may not have the access
it needs to implement such dialogs.
The handle needs to be shared between the processes with other means,
such as dbus or command line paramenters.
The public api of the server side only tracks parent/child relationships as this is the only data kwin would need it for, the rest of the api is not exported so should be safer from eventual protocol changes
Test Plan:
the autotest works, but has a lot of random crashes when deleting surfaces,
unfortunately backtraces don't tell much and the crashes never occur when running into valgrind
behavior may still be wrong, depending on how the protocol is supposed
to work if more clients try to set the same exported surface as parent
Reviewers: #plasma, #kwin, davidedmundson, graesslin
Reviewed By: #plasma, #kwin, graesslin
Subscribers: davidedmundson, graesslin, plasma-devel, #frameworks
Tags: #frameworks, #plasma_on_wayland
Differential Revision: https://phabricator.kde.org/D7369
2017-10-13 09:29:17 +00:00
|
|
|
xdgforeign_v2_interface.cpp
|
|
|
|
xdgforeign_interface.cpp
|
Support XDG v6
Summary:
The main clever part that's not just boring boiler plate is how we
handle the structure change
A surface now has an XDGSurface which then has a an Xdg TopLevel or a
Xdg Popup
We need to fit this into the public API which assumes a surface has a
Surface or a Popup.
The old Surface is similar to the new TopLevel.
The shoehorning works by relying on the fact that a surface without a
role is pretty useless.
Clients create the surface implicitly with the toplevel or implicitly
with the popup.
The server only announced it has a new "XdgSurface" when it gets a new
zxdg_surface_get_toplevel.
----
Popup decisions:
- On popup creation the server should copy the current info from the
positioner and then it gets deleted. Given kwaylands job is to keep
state, we expose all these parameter via popup.
- Due to this positioner is not exposed as a resource anywhere.
- Server API is 100% backwards compatiable.
i.e new code will work identically with v5 clients.
- Client API is not. Grabs are called separately from the constructor,
and the parent surface changed to an xdgsurface, not a raw surface.
V5 code still works as-is, just not with the new constructors.
It seemed better to match the v6 (and what will be the stable v7) than
to try and do hacks and lose functionality.
Given the client needs to change the code to opt into V6 anyway. I don't
think this is a huge problem.
Test Plan: Current test still passes.
Reviewers: #plasma, graesslin
Reviewed By: #plasma, graesslin
Subscribers: graesslin, mart, plasma-devel, #frameworks
Tags: #frameworks, #plasma_on_wayland
Differential Revision: https://phabricator.kde.org/D6047
2017-09-04 15:38:35 +00:00
|
|
|
xdgshell_v6_interface.cpp
|
2014-09-17 12:35:33 +00:00
|
|
|
)
|
|
|
|
|
server side of new outputmanagement protocol
This implements the server part of the screen management protocol. The
protocol is implemented as a wayland protocol.
It provides the following mechanisms:
- a list of outputs, close to wl_output, with additional properties for
enabled, uuid, edid, etc.. These OutputDevices correspond to a
connected output that can be enabled by the compositor, but is not
necessarily currently used for rendering.
- a global OutputManagement, which allows creating config objects, one
per client. The client can make changes to the outputs through
setScale(outputdevice*, scale) for example.
- an OutputConfiguration resource, that can be handed to a client and
used for configuration. Changes are double buffered here. Only after
OutputConfiguration.apply() has been called, the changes are relayed
over the global OutputManagement.
The compositor is responsible to handle changes.
For a more detailed description, see the API docs in especially
outputconfiguration.h.
REVIEW:125942
2015-11-04 14:36:52 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/output-management.xml
|
server side of new outputmanagement protocol
This implements the server part of the screen management protocol. The
protocol is implemented as a wayland protocol.
It provides the following mechanisms:
- a list of outputs, close to wl_output, with additional properties for
enabled, uuid, edid, etc.. These OutputDevices correspond to a
connected output that can be enabled by the compositor, but is not
necessarily currently used for rendering.
- a global OutputManagement, which allows creating config objects, one
per client. The client can make changes to the outputs through
setScale(outputdevice*, scale) for example.
- an OutputConfiguration resource, that can be handed to a client and
used for configuration. Changes are double buffered here. Only after
OutputConfiguration.apply() has been called, the changes are relayed
over the global OutputManagement.
The compositor is responsible to handle changes.
For a more detailed description, see the API docs in especially
outputconfiguration.h.
REVIEW:125942
2015-11-04 14:36:52 +00:00
|
|
|
BASENAME output-management
|
|
|
|
)
|
|
|
|
|
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/outputdevice.xml
|
server side of new outputmanagement protocol
This implements the server part of the screen management protocol. The
protocol is implemented as a wayland protocol.
It provides the following mechanisms:
- a list of outputs, close to wl_output, with additional properties for
enabled, uuid, edid, etc.. These OutputDevices correspond to a
connected output that can be enabled by the compositor, but is not
necessarily currently used for rendering.
- a global OutputManagement, which allows creating config objects, one
per client. The client can make changes to the outputs through
setScale(outputdevice*, scale) for example.
- an OutputConfiguration resource, that can be handed to a client and
used for configuration. Changes are double buffered here. Only after
OutputConfiguration.apply() has been called, the changes are relayed
over the global OutputManagement.
The compositor is responsible to handle changes.
For a more detailed description, see the API docs in especially
outputconfiguration.h.
REVIEW:125942
2015-11-04 14:36:52 +00:00
|
|
|
BASENAME org_kde_kwin_outputdevice
|
|
|
|
)
|
|
|
|
|
2015-06-09 00:48:56 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/plasma-shell.xml
|
2015-06-09 00:48:56 +00:00
|
|
|
BASENAME plasma-shell
|
|
|
|
)
|
|
|
|
|
2015-06-12 01:05:14 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/plasma-window-management.xml
|
2015-06-12 01:05:14 +00:00
|
|
|
BASENAME plasma-window-management
|
|
|
|
)
|
|
|
|
|
2015-06-09 22:56:31 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/surface-extension.xml
|
2015-06-09 22:56:31 +00:00
|
|
|
BASENAME qt-surface-extension
|
|
|
|
)
|
|
|
|
|
2015-07-02 09:35:16 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/idle.xml
|
2015-07-02 09:35:16 +00:00
|
|
|
BASENAME idle
|
|
|
|
)
|
|
|
|
|
2015-07-02 19:21:57 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/fake-input.xml
|
2015-07-02 19:21:57 +00:00
|
|
|
BASENAME fake-input
|
|
|
|
)
|
|
|
|
|
2015-07-15 09:07:50 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/shadow.xml
|
2015-07-15 09:07:50 +00:00
|
|
|
BASENAME shadow
|
|
|
|
)
|
2015-08-31 14:08:58 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/dpms.xml
|
2015-08-31 14:08:58 +00:00
|
|
|
BASENAME dpms
|
|
|
|
)
|
2015-07-15 09:07:50 +00:00
|
|
|
|
2015-08-26 12:42:58 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/blur.xml
|
2015-08-26 12:42:58 +00:00
|
|
|
BASENAME blur
|
|
|
|
)
|
|
|
|
|
2015-09-02 16:13:25 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/contrast.xml
|
2015-09-02 16:13:25 +00:00
|
|
|
BASENAME contrast
|
|
|
|
)
|
|
|
|
|
2016-10-07 07:07:34 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/relative-pointer-unstable-v1.xml
|
2016-10-07 07:07:34 +00:00
|
|
|
BASENAME relativepointer-unstable-v1
|
|
|
|
)
|
|
|
|
|
2015-09-09 11:04:11 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/slide.xml
|
2015-09-09 11:04:11 +00:00
|
|
|
BASENAME slide
|
|
|
|
)
|
|
|
|
|
2015-12-10 08:39:24 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/server-decoration.xml
|
2015-12-10 08:39:24 +00:00
|
|
|
BASENAME server_decoration
|
|
|
|
)
|
|
|
|
|
2016-05-02 12:28:26 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/text-input.xml
|
2016-05-02 12:28:26 +00:00
|
|
|
BASENAME text
|
|
|
|
)
|
|
|
|
|
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/text-input-unstable-v2.xml
|
2016-05-02 12:28:26 +00:00
|
|
|
BASENAME text-input-unstable-v2
|
|
|
|
)
|
|
|
|
|
2016-04-21 10:56:02 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-03 15:46:37 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/xdg-shell-unstable-v5.xml
|
2016-04-21 10:56:02 +00:00
|
|
|
BASENAME xdg-shell-v5
|
|
|
|
)
|
|
|
|
|
Support XDG v6
Summary:
The main clever part that's not just boring boiler plate is how we
handle the structure change
A surface now has an XDGSurface which then has a an Xdg TopLevel or a
Xdg Popup
We need to fit this into the public API which assumes a surface has a
Surface or a Popup.
The old Surface is similar to the new TopLevel.
The shoehorning works by relying on the fact that a surface without a
role is pretty useless.
Clients create the surface implicitly with the toplevel or implicitly
with the popup.
The server only announced it has a new "XdgSurface" when it gets a new
zxdg_surface_get_toplevel.
----
Popup decisions:
- On popup creation the server should copy the current info from the
positioner and then it gets deleted. Given kwaylands job is to keep
state, we expose all these parameter via popup.
- Due to this positioner is not exposed as a resource anywhere.
- Server API is 100% backwards compatiable.
i.e new code will work identically with v5 clients.
- Client API is not. Grabs are called separately from the constructor,
and the parent surface changed to an xdgsurface, not a raw surface.
V5 code still works as-is, just not with the new constructors.
It seemed better to match the v6 (and what will be the stable v7) than
to try and do hacks and lose functionality.
Given the client needs to change the code to opt into V6 anyway. I don't
think this is a huge problem.
Test Plan: Current test still passes.
Reviewers: #plasma, graesslin
Reviewed By: #plasma, graesslin
Subscribers: graesslin, mart, plasma-devel, #frameworks
Tags: #frameworks, #plasma_on_wayland
Differential Revision: https://phabricator.kde.org/D6047
2017-09-04 15:38:35 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/xdg-shell-unstable-v6.xml
|
|
|
|
BASENAME xdg-shell-v6
|
|
|
|
)
|
|
|
|
|
2016-10-26 08:27:14 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
2016-11-07 12:34:08 +00:00
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/pointer-gestures-unstable-v1.xml
|
2016-10-26 08:27:14 +00:00
|
|
|
BASENAME pointer-gestures-unstable-v1
|
|
|
|
)
|
|
|
|
|
2016-11-08 13:17:15 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/pointer-constraints-unstable-v1.xml
|
|
|
|
BASENAME pointer-constraints-unstable-v1
|
|
|
|
)
|
|
|
|
|
Wayland foreign protocol
Summary:
Implement the "foreign" wayland protocol.
A client can export a surface with an unique string as handle,
then another client can refer to that surface and set an own surface as
child of that surface.
Potential use cases are out-of-process dialogs, such as file dialogs,
meant to be used by sandboxed processes that may not have the access
it needs to implement such dialogs.
The handle needs to be shared between the processes with other means,
such as dbus or command line paramenters.
The public api of the server side only tracks parent/child relationships as this is the only data kwin would need it for, the rest of the api is not exported so should be safer from eventual protocol changes
Test Plan:
the autotest works, but has a lot of random crashes when deleting surfaces,
unfortunately backtraces don't tell much and the crashes never occur when running into valgrind
behavior may still be wrong, depending on how the protocol is supposed
to work if more clients try to set the same exported surface as parent
Reviewers: #plasma, #kwin, davidedmundson, graesslin
Reviewed By: #plasma, #kwin, graesslin
Subscribers: davidedmundson, graesslin, plasma-devel, #frameworks
Tags: #frameworks, #plasma_on_wayland
Differential Revision: https://phabricator.kde.org/D7369
2017-10-13 09:29:17 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/xdg-foreign-unstable-v2.xml
|
|
|
|
BASENAME xdg-foreign-unstable-v2
|
|
|
|
)
|
|
|
|
|
2017-10-20 16:28:25 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/idle-inhibit-unstable-v1.xml
|
|
|
|
BASENAME idle-inhibit-unstable-v1
|
|
|
|
)
|
|
|
|
|
2017-12-18 21:50:31 +00:00
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/appmenu.xml
|
|
|
|
BASENAME appmenu
|
|
|
|
)
|
2018-01-03 10:24:57 +00:00
|
|
|
|
|
|
|
ecm_add_wayland_server_protocol(SERVER_LIB_SRCS
|
|
|
|
PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/server-decoration-palette.xml
|
|
|
|
BASENAME server_decoration_palette
|
|
|
|
)
|
|
|
|
|
2017-12-14 06:48:43 +00:00
|
|
|
set(SERVER_GENERATED_SRCS
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-output-management-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-output-management-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-org_kde_kwin_outputdevice-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-org_kde_kwin_outputdevice-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-plasma-shell-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-plasma-shell-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-plasma-window-management-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-plasma-window-management-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-qt-surface-extension-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-qt-surface-extension-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-idle-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-idle-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-fake-input-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-fake-input-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-shadow-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-shadow-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-dpms-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-dpms-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-blur-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-blur-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-contrast-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-contrast-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-relativepointer-unstable-v1-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-relativepointer-unstable-v1-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-slide-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-slide-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-server_decoration-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-server_decoration-server-protocol.h
|
2018-01-03 10:24:57 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-server_decoration_palette-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-server_decoration_palette-server-protocol.h
|
2017-12-14 06:48:43 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-text-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-text-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-text-input-unstable-v2-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-text-input-unstable-v2-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-shell-v5-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-shell-v5-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-shell-v6-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-shell-v6-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-pointer-gestures-unstable-v1-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-pointer-gestures-unstable-v1-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-pointer-constraints-unstable-v1-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-pointer-constraints-unstable-v1-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-foreign-unstable-v2-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-foreign-unstable-v2-server-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-idle-inhibit-unstable-v1-client-protocol.h
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayland-idle-inhibit-unstable-v1-server-protocol.h
|
|
|
|
)
|
|
|
|
|
|
|
|
set_source_files_properties(${SERVER_GENERATED_SRCS} PROPERTIES SKIP_AUTOMOC ON)
|
|
|
|
|
2014-09-17 12:35:33 +00:00
|
|
|
add_library(KF5WaylandServer ${SERVER_LIB_SRCS})
|
2014-10-14 11:43:24 +00:00
|
|
|
generate_export_header(KF5WaylandServer
|
|
|
|
BASE_NAME
|
|
|
|
KWaylandServer
|
|
|
|
EXPORT_FILE_NAME
|
|
|
|
KWayland/Server/kwaylandserver_export.h
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2014-09-17 12:35:33 +00:00
|
|
|
add_library(KF5::WaylandServer ALIAS KF5WaylandServer)
|
|
|
|
|
2014-09-17 13:47:42 +00:00
|
|
|
target_include_directories(KF5WaylandServer INTERFACE "$<INSTALL_INTERFACE:${KF5_INCLUDE_INSTALL_DIR}/KWayland/Server>")
|
|
|
|
|
2014-09-17 12:35:33 +00:00
|
|
|
target_link_libraries(KF5WaylandServer
|
|
|
|
PUBLIC Qt5::Gui
|
2015-03-03 08:43:30 +00:00
|
|
|
PRIVATE
|
|
|
|
Wayland::Server
|
|
|
|
EGL::EGL
|
2016-10-13 11:39:27 +00:00
|
|
|
Qt5::Concurrent
|
2014-09-17 12:35:33 +00:00
|
|
|
)
|
2014-09-17 13:47:42 +00:00
|
|
|
|
|
|
|
set_target_properties(KF5WaylandServer PROPERTIES VERSION ${KWAYLAND_VERSION_STRING}
|
|
|
|
SOVERSION ${KWAYLAND_SOVERSION}
|
|
|
|
EXPORT_NAME WaylandServer
|
|
|
|
)
|
|
|
|
|
2014-11-27 17:26:33 +00:00
|
|
|
install(TARGETS KF5WaylandServer EXPORT KF5WaylandTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
|
|
|
|
|
2017-05-26 00:36:23 +00:00
|
|
|
set(SERVER_LIB_HEADERS
|
2014-11-27 17:26:33 +00:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/KWayland/Server/kwaylandserver_export.h
|
2017-12-18 21:50:31 +00:00
|
|
|
appmenu_interface.h
|
2015-08-26 12:42:58 +00:00
|
|
|
blur_interface.h
|
2015-09-02 16:13:25 +00:00
|
|
|
contrast_interface.h
|
2014-11-27 17:26:33 +00:00
|
|
|
buffer_interface.h
|
|
|
|
clientconnection.h
|
|
|
|
compositor_interface.h
|
|
|
|
datadevice_interface.h
|
|
|
|
datadevicemanager_interface.h
|
|
|
|
dataoffer_interface.h
|
|
|
|
datasource_interface.h
|
|
|
|
display.h
|
2015-08-31 14:08:58 +00:00
|
|
|
dpms_interface.h
|
Expose wl_display_set_global_filter as a virtual method
Summary:
This allows a server to filter which globals are visible and bindable by
clients.
Design rationale:
Could be it's own class with Display as an arg, but we need the lifespan
to exactly match Display, and the cardinality to match Display and it
needs to be set after we're started but before clients connect.
Better to enfore rules with code than with documentation.
I'm filtering by interface name as there isn't any other good
identifier of what a wl_global refers to, even if you could assume
you can cast the userdata to a Server::Global.
Test Plan: Attached unit test
Reviewers: #plasma, graesslin, bcooksley
Reviewed By: #plasma, graesslin
Subscribers: bcooksley, graesslin, plasma-devel, #frameworks
Tags: #frameworks, #plasma
Differential Revision: https://phabricator.kde.org/D8050
2017-11-17 08:34:01 +00:00
|
|
|
filtered_display.h
|
2015-07-02 19:21:57 +00:00
|
|
|
fakeinput_interface.h
|
2014-11-27 17:26:33 +00:00
|
|
|
global.h
|
2015-07-02 09:35:16 +00:00
|
|
|
idle_interface.h
|
2017-10-20 16:28:25 +00:00
|
|
|
idleinhibit_interface.h
|
2014-11-27 17:26:33 +00:00
|
|
|
keyboard_interface.h
|
server side of new outputmanagement protocol
This implements the server part of the screen management protocol. The
protocol is implemented as a wayland protocol.
It provides the following mechanisms:
- a list of outputs, close to wl_output, with additional properties for
enabled, uuid, edid, etc.. These OutputDevices correspond to a
connected output that can be enabled by the compositor, but is not
necessarily currently used for rendering.
- a global OutputManagement, which allows creating config objects, one
per client. The client can make changes to the outputs through
setScale(outputdevice*, scale) for example.
- an OutputConfiguration resource, that can be handed to a client and
used for configuration. Changes are double buffered here. Only after
OutputConfiguration.apply() has been called, the changes are relayed
over the global OutputManagement.
The compositor is responsible to handle changes.
For a more detailed description, see the API docs in especially
outputconfiguration.h.
REVIEW:125942
2015-11-04 14:36:52 +00:00
|
|
|
outputdevice_interface.h
|
|
|
|
outputchangeset.h
|
|
|
|
outputconfiguration_interface.h
|
|
|
|
outputmanagement_interface.h
|
2014-11-27 17:26:33 +00:00
|
|
|
output_interface.h
|
|
|
|
pointer_interface.h
|
2016-11-08 13:17:15 +00:00
|
|
|
pointerconstraints_interface.h
|
2016-10-26 08:27:14 +00:00
|
|
|
pointergestures_interface.h
|
2015-06-09 00:48:56 +00:00
|
|
|
plasmashell_interface.h
|
2015-06-12 01:05:14 +00:00
|
|
|
plasmawindowmanagement_interface.h
|
2015-06-09 22:56:31 +00:00
|
|
|
qtsurfaceextension_interface.h
|
2014-11-27 17:26:33 +00:00
|
|
|
region_interface.h
|
2016-10-07 07:07:34 +00:00
|
|
|
relativepointer_interface.h
|
2014-11-27 17:26:33 +00:00
|
|
|
resource.h
|
|
|
|
seat_interface.h
|
2015-12-10 08:39:24 +00:00
|
|
|
server_decoration_interface.h
|
2018-01-03 10:24:57 +00:00
|
|
|
server_decoration_palette_interface.h
|
2015-07-15 09:07:50 +00:00
|
|
|
shadow_interface.h
|
2014-11-27 17:26:33 +00:00
|
|
|
shell_interface.h
|
2015-09-10 06:19:39 +00:00
|
|
|
slide_interface.h
|
2014-11-27 17:26:33 +00:00
|
|
|
subcompositor_interface.h
|
|
|
|
surface_interface.h
|
2016-05-02 12:28:26 +00:00
|
|
|
textinput_interface.h
|
2015-03-25 13:23:08 +00:00
|
|
|
touch_interface.h
|
2016-04-21 10:56:02 +00:00
|
|
|
xdgshell_interface.h
|
Wayland foreign protocol
Summary:
Implement the "foreign" wayland protocol.
A client can export a surface with an unique string as handle,
then another client can refer to that surface and set an own surface as
child of that surface.
Potential use cases are out-of-process dialogs, such as file dialogs,
meant to be used by sandboxed processes that may not have the access
it needs to implement such dialogs.
The handle needs to be shared between the processes with other means,
such as dbus or command line paramenters.
The public api of the server side only tracks parent/child relationships as this is the only data kwin would need it for, the rest of the api is not exported so should be safer from eventual protocol changes
Test Plan:
the autotest works, but has a lot of random crashes when deleting surfaces,
unfortunately backtraces don't tell much and the crashes never occur when running into valgrind
behavior may still be wrong, depending on how the protocol is supposed
to work if more clients try to set the same exported surface as parent
Reviewers: #plasma, #kwin, davidedmundson, graesslin
Reviewed By: #plasma, #kwin, graesslin
Subscribers: davidedmundson, graesslin, plasma-devel, #frameworks
Tags: #frameworks, #plasma_on_wayland
Differential Revision: https://phabricator.kde.org/D7369
2017-10-13 09:29:17 +00:00
|
|
|
xdgforeign_interface.h
|
2017-05-26 00:36:23 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
install(FILES
|
|
|
|
${SERVER_LIB_HEADERS}
|
2014-11-27 17:26:33 +00:00
|
|
|
DESTINATION ${KF5_INCLUDE_INSTALL_DIR}/KWayland/Server COMPONENT Devel
|
|
|
|
)
|
2015-06-18 00:05:05 +00:00
|
|
|
|
2017-05-26 00:36:23 +00:00
|
|
|
# make available to ecm_add_qch in parent folder
|
|
|
|
set(KWaylandServer_APIDOX_SRCS ${SERVER_LIB_HEADERS} PARENT_SCOPE)
|
|
|
|
|
2015-06-18 00:05:05 +00:00
|
|
|
include(ECMGeneratePriFile)
|
|
|
|
ecm_generate_pri_file(BASE_NAME KWaylandServer LIB_NAME KF5WaylandServer DEPS "core" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5})
|
|
|
|
install(FILES ${PRI_FILENAME}
|
|
|
|
DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
|