kwin/src/wayland
Vlad Zahorodnii 43cfd25d27 Search for Xwayland surfaces differently
Currently, we store all surfaces in a single list and use linear search
to find the SurfaceInterface by its object id and client connection.

With this, we first search for the wl_resource object by its id. Once we
have a wl_resource, SurfaceInterface::get(wl_resource) can be used.

The main advantage of the proposed solution is that we don't need to
maintain a static list with all SurfaceInterface objects.
2021-07-28 14:38:01 +03:00
..
autotests Fix mapped status tracking for subsurfaces 2021-07-23 21:42:30 +03:00
protocols Implement layer-shell v1 protocol 2020-09-03 13:42:36 +03:00
server Drop Global and Resource classes 2021-07-22 11:41:08 +03:00
tests Split BufferInterface 2021-07-22 11:41:06 +03:00
tools Scanner: Clean up display destroy listener in deferred global destroy func 2021-05-12 13:52:59 +00:00
abstract_data_source.cpp Port DataDevice to the new inheritance approach 2020-10-01 14:49:33 +00:00
abstract_data_source.h Remove some unused includes 2021-04-05 11:20:24 +03:00
appmenu_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
appmenu_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
blur_interface.cpp Fix delayed global removal 2021-05-12 10:59:45 +03:00
blur_interface.h Fix delayed global removal 2021-05-12 10:59:45 +03:00
clientbuffer.cpp Split BufferInterface 2021-07-22 11:41:06 +03:00
clientbuffer.h Split BufferInterface 2021-07-22 11:41:06 +03:00
clientbuffer_p.h Split BufferInterface 2021-07-22 11:41:06 +03:00
clientbufferintegration.cpp Split BufferInterface 2021-07-22 11:41:06 +03:00
clientbufferintegration.h Split BufferInterface 2021-07-22 11:41:06 +03:00
clientconnection.cpp Search for Xwayland surfaces differently 2021-07-28 14:38:01 +03:00
clientconnection.h Search for Xwayland surfaces differently 2021-07-28 14:38:01 +03:00
CMakeLists.txt Drop Global and Resource classes 2021-07-22 11:41:08 +03:00
compositor_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
compositor_interface.h Make RegionInterface private 2021-03-15 16:28:30 +00:00
config-kwaylandserver.h.cmake Build standalone 2020-04-28 16:21:09 +02:00
contrast_interface.cpp Fix delayed global removal 2021-05-12 10:59:45 +03:00
contrast_interface.h Fix delayed global removal 2021-05-12 10:59:45 +03:00
datacontroldevice_v1_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
datacontroldevice_v1_interface.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
datacontroldevicemanager_v1_interface.cpp Drop Global and Resource classes 2021-07-22 11:41:08 +03:00
datacontroldevicemanager_v1_interface.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
datacontroloffer_v1_interface.cpp Fix class names for data control wrappers 2020-05-28 11:09:02 +03:00
datacontroloffer_v1_interface.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
datacontrolsource_v1_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
datacontrolsource_v1_interface.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
datadevice_interface.cpp Remove explicit flush in DataDeviceInterface 2021-06-19 14:17:03 +03:00
datadevice_interface.h Remove some unused includes 2021-04-05 11:20:24 +03:00
datadevice_interface_p.h Introduce DragAndDropIcon 2020-11-03 19:53:12 +00:00
datadevicemanager_interface.cpp Drop Global and Resource classes 2021-07-22 11:41:08 +03:00
datadevicemanager_interface.h GIT_SILENT Add trailing comma to enums 2021-04-29 11:45:00 +02:00
dataoffer_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
dataoffer_interface.h Remove some unused includes 2021-04-05 11:20:24 +03:00
datasource_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
datasource_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
DESIGN.md Move DESIGN.md to toplevel directory 2021-03-22 21:30:43 +02:00
display.cpp Ignore dpms status in Display::outputsIntersecting() 2021-07-28 10:28:21 +00:00
display.h Remove unused wl_event_loop forward declaration 2021-07-28 13:46:56 +03:00
display_p.h Split BufferInterface 2021-07-22 11:41:06 +03:00
dpms_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
dpms_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
dpms_interface_p.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
drm_fourcc.h KWayland: Convert license headers to SPDX 2020-03-16 19:57:44 +01:00
drmclientbuffer.cpp Query height instead of texture format 2021-07-27 17:30:16 +02:00
drmclientbuffer.h Split BufferInterface 2021-07-22 11:41:06 +03:00
fakeinput_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
fakeinput_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
filtered_display.cpp Don't use nested private class in FilteredDisplay 2021-04-05 11:35:06 +03:00
filtered_display.h Don't use nested private class in FilteredDisplay 2021-04-05 11:35:06 +03:00
idle_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
idle_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
idle_interface_p.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
idleinhibit_v1_interface.cpp Use global static variables to store protocol version 2020-10-02 16:47:19 +00:00
idleinhibit_v1_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
idleinhibit_v1_interface_p.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
inputmethod_v1_interface.cpp Implement zwp_input_method_context_v1::grab_keyboard 2021-06-03 19:12:12 +02:00
inputmethod_v1_interface.h Implement zwp_input_method_context_v1::grab_keyboard 2021-06-03 19:12:12 +02:00
keyboard_interface.cpp Remove redundant check 2021-03-26 13:41:04 +02:00
keyboard_interface.h Forward keyboard events via seat 2021-03-26 09:08:12 +00:00
keyboard_interface_p.h Fix management of keymap files 2021-03-26 13:17:13 +02:00
keyboard_shortcuts_inhibit_v1_interface.cpp Fix class names for keyboard shortcuts inhibit 2020-05-29 11:30:10 +02:00
keyboard_shortcuts_inhibit_v1_interface.h Remove @since version tags 2021-03-16 10:08:21 +02:00
keystate_interface.cpp keystates: use the qtwaylandscanner instead of having the boilerplate 2020-10-09 13:17:30 +00:00
keystate_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
layershell_v1_interface.cpp Make layer-surface acknowledged configure serials double-buffered state 2021-07-21 17:26:12 +00:00
layershell_v1_interface.h Implement layer-shell v1 protocol 2020-09-03 13:42:36 +03:00
linuxdmabufv1clientbuffer.cpp Split BufferInterface 2021-07-22 11:41:06 +03:00
linuxdmabufv1clientbuffer.h Split BufferInterface 2021-07-22 11:41:06 +03:00
output_interface.cpp output interface: mark bind and release methods as override 2021-05-20 14:23:20 +02:00
output_interface.h Fix delayed global removal 2021-05-12 10:59:45 +03:00
plasmashell_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
plasmashell_interface.h Add a PlasmaShellSurfaceInterface getter 2021-05-13 09:17:56 +03:00
plasmavirtualdesktop_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
plasmavirtualdesktop_interface.h Remove @since version tags 2021-03-16 10:08:21 +02:00
plasmawindowmanagement_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
plasmawindowmanagement_interface.h GIT_SILENT Add trailing comma to enums 2021-04-29 11:45:00 +02:00
pointer_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
pointer_interface.h Merge notifyPointerPress() and notifyPointerRelease() 2021-03-23 11:20:03 +02:00
pointer_interface_p.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
pointerconstraints_v1_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
pointerconstraints_v1_interface.h Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
pointerconstraints_v1_interface_p.h Port pointer-constraints-v1 to the new design 2020-11-04 06:19:13 +00:00
pointergestures_v1_interface.cpp Rewrite wl_pointer implementation with new approach 2021-03-10 14:05:20 +00:00
pointergestures_v1_interface.h Port pointer-gestures-v1 interface to the new design 2020-11-03 19:49:57 +02:00
pointergestures_v1_interface_p.h Rewrite wl_pointer implementation with new approach 2021-03-10 14:05:20 +00:00
primaryselectiondevice_v1_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
primaryselectiondevice_v1_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
primaryselectiondevicemanager_v1_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
primaryselectiondevicemanager_v1_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
primaryselectionoffer_v1_interface.cpp Introduce API round primary-selection-unstable-v1.xml AKA middle-click paste 2020-06-03 14:45:30 +01:00
primaryselectionoffer_v1_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
primaryselectionsource_v1_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
primaryselectionsource_v1_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
region_interface.cpp Make RegionInterface private 2021-03-15 16:28:30 +00:00
region_interface_p.h Make RegionInterface private 2021-03-15 16:28:30 +00:00
relativepointer_v1_interface.cpp Rewrite wl_pointer implementation with new approach 2021-03-10 14:05:20 +00:00
relativepointer_v1_interface.h Port relative-pointer-v1 interface to the new design 2020-11-03 19:49:54 +02:00
relativepointer_v1_interface_p.h Rewrite wl_pointer implementation with new approach 2021-03-10 14:05:20 +00:00
screencast_v1_interface.cpp Rename screencast wrappers according to unstable protocol naming conventions 2020-09-05 14:45:43 +03:00
screencast_v1_interface.h Remove factory methods in Display 2020-12-14 13:04:59 +00:00
seat_interface.cpp Don't move keyboard focus on button press 2021-06-21 16:56:01 +03:00
seat_interface.h Introduce a new signal when a drag is dropped 2021-06-03 11:17:59 +01:00
seat_interface_p.h GIT_SILENT Add trailing comma to enums 2021-04-29 11:45:00 +02:00
server_decoration_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
server_decoration_interface.h GIT_SILENT Add trailing comma to enums 2021-04-29 11:45:00 +02:00
server_decoration_palette_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
server_decoration_palette_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
shadow_interface.cpp Split BufferInterface 2021-07-22 11:41:06 +03:00
shadow_interface.h Split BufferInterface 2021-07-22 11:41:06 +03:00
shmclientbuffer.cpp Reference shm pool for destroyed buffers 2021-07-22 11:41:08 +03:00
shmclientbuffer.h Split BufferInterface 2021-07-22 11:41:06 +03:00
slide_interface.cpp Fix delayed global removal 2021-05-12 10:59:45 +03:00
slide_interface.h Fix delayed global removal 2021-05-12 10:59:45 +03:00
subcompositor_interface.cpp Remove needless current state copy 2021-07-20 08:08:22 +00:00
subcompositor_interface.h GIT_SILENT Add trailing comma to enums 2021-04-29 11:45:00 +02:00
subsurface_interface_p.h Emit the committed() signal after the state is applied 2021-07-16 13:07:56 +03:00
surface_interface.cpp Search for Xwayland surfaces differently 2021-07-28 14:38:01 +03:00
surface_interface.h Search for Xwayland surfaces differently 2021-07-28 14:38:01 +03:00
surface_interface_p.h Search for Xwayland surfaces differently 2021-07-28 14:38:01 +03:00
surfacerole.cpp Introduce SurfaceRole name property 2020-10-31 18:10:49 +02:00
surfacerole_p.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
tablet_v2_interface.cpp Explicitly destroy inert tablet resources 2021-03-15 16:34:46 +00:00
tablet_v2_interface.h GIT_SILENT Add trailing comma to enums 2021-04-29 11:45:00 +02:00
textinput.cpp textinput: Expose enums to moc 2021-05-21 19:17:17 +02:00
textinput.h textinput: Expose enums to moc 2021-05-21 19:17:17 +02:00
textinput_v2_interface.cpp textinput_v2: Make sendEnter/sendLeave the ones who decide the current surface 2021-05-22 02:23:53 +02:00
textinput_v2_interface.h textinput: Expose enums to moc 2021-05-21 19:17:17 +02:00
textinput_v2_interface_p.h textinput_v2: Make sendEnter/sendLeave the ones who decide the current surface 2021-05-22 02:23:53 +02:00
textinput_v3_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
textinput_v3_interface.h Use common doxygen comment terminator style 2021-03-23 08:14:02 +00:00
textinput_v3_interface_p.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
touch_interface.cpp Port wl_touch wrapper to the new approach 2021-03-10 16:06:24 +02:00
touch_interface.h migrate ifndef to pragma once 2021-03-10 20:16:46 +00:00
touch_interface_p.h Port wl_touch wrapper to the new approach 2021-03-10 16:06:24 +02:00
utils.h Fix delayed global removal 2021-05-12 10:59:45 +03:00
viewporter_interface.cpp Move viewport state into a struct 2021-05-26 21:21:34 +03:00
viewporter_interface.h Remove @since version tags 2021-03-16 10:08:21 +02:00
viewporter_interface_p.h Add support for the wp_viewporter protocol 2020-06-02 15:33:00 +03:00
xdgactivation_v1_interface.cpp xdgactivation: allow sourcing a request's client without a given surface 2021-06-14 17:43:03 +02:00
xdgactivation_v1_interface.h xdgactivation: allow sourcing a request's client without a given surface 2021-06-14 17:43:03 +02:00
xdgdecoration_v1_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
xdgdecoration_v1_interface.h Remove @since version tags 2021-03-16 10:08:21 +02:00
xdgdecoration_v1_interface_p.h xdg-shell: Rewrite wrappers for the xdg-shell protocol 2020-06-01 14:48:51 +03:00
xdgforeign_v2_interface.cpp Use Q_EMIT to make it compile against kf5.82 2021-05-13 11:33:08 +02:00
xdgforeign_v2_interface.h Improve code readability in xdg-foreign wrapper 2021-03-25 07:53:36 +00:00
xdgforeign_v2_interface_p.h Use code generated by qtwaylandscanner to send xdg-exported handle 2021-04-02 10:04:49 +03:00
xdgoutput_v1_interface.cpp Prevent potential QMap detaching 2021-05-05 23:02:01 +03:00
xdgoutput_v1_interface.h Add explicit done to OutputInterface and deprecate zxdg_output_v1.done if version 3 is used. 2021-03-19 10:39:07 -07:00
xdgshell_interface.cpp Make xdg-surface acknowledged configure serials double-buffered state 2021-07-21 17:26:12 +00:00
xdgshell_interface.h GIT_SILENT Add trailing comma to enums 2021-04-29 11:45:00 +02:00
xdgshell_interface_p.h Make xdg-surface acknowledged configure serials double-buffered state 2021-07-21 17:26:12 +00:00