kwin/src/wayland
David Edmundson 7292af3d04 Use floating geometry throughout
With fractional scaling integer based logical geometry may not match
device pixels. Once we have a floating point base we can fix that. This
also is
important for our X11 scale override, with a scale of 2 we could
get logical sizes with halves.

We already have all input being floating point, this doubles down on it
for all remaining geometry.

- Outputs remain integer to ensure that any screen on the right remains
aligned.
 - Placement also remains integer based for now.
- Repainting is untouched as we always expand outwards
 			   (QRectF::toAdjustedRect().
 - Decoration is untouched for now
 - Rules are integer in the config, but floating in the adjusting/API
This should also be fine.

At some point we'll add a method to snap to the device pixel
grid. Effectively `round(value * dpr)  / dpr` though right now things
mostly work.

This also gets rid of a lot of hacks for QRect right and bottom which
are very
confusing.

Parts to watch out in the port are:
 QRectF::contains now includes edges
QRectF::right and bottom are now sane so previous hacks have to be
removed
 QRectF(QPoint, QPoint) behaves differently for the same reason
 QRectF::center too

In test results some adjusted values which are the result of
QRect.center because using QRectF's center should behave the same to the
user.
2022-07-14 10:04:46 +01:00
..
autotests wayland: Introduce IdleDetector 2022-06-29 20:27:50 +03:00
protocols Implement layer-shell v1 protocol 2020-09-03 13:42:36 +03:00
tests Support new AppletPopup window type 2022-05-27 21:49:37 +00:00
tools Simplify cross-compilation of qtwaylandscanner_kde 2022-05-10 16:34:49 +00:00
utils Add helpers to read the executable path for a given PID 2021-12-17 06:54:53 +00:00
abstract_data_source.cpp Run clang-format 2021-08-29 07:11:06 +02:00
abstract_data_source.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
abstract_drop_handler.cpp Introduce AbstractDropHandler 2021-09-09 09:04:05 +00:00
abstract_drop_handler.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
appmenu_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
appmenu_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
blur_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
blur_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
clientbuffer.cpp Run clang-format 2021-08-29 07:11:06 +02:00
clientbuffer.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
clientbuffer_p.h Run clang-format 2021-08-29 07:11:06 +02:00
clientbufferintegration.cpp Run clang-format 2021-08-29 07:11:06 +02:00
clientbufferintegration.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
clientconnection.cpp Emit scaleOverride changed signal 2022-07-05 17:00:38 +00:00
clientconnection.h Introduce client level scale overrides 2022-06-07 08:33:55 +01:00
CMakeLists.txt Use the properly named screencast Wayland protocol file 2022-05-06 19:12:06 +00:00
compositor_interface.cpp Implement wl_surface_offset() 2022-04-19 12:31:55 +00:00
compositor_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
contrast_interface.cpp Implement set_frost in contrast protocol 2021-09-02 22:41:52 +00:00
contrast_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
datacontroldevice_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
datacontroldevice_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
datacontroldevicemanager_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
datacontroldevicemanager_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
datacontroloffer_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
datacontroloffer_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
datacontrolsource_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
datacontrolsource_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
datadevice_interface.cpp wayland: Fix drag-and-drop issues in Firefox 2022-05-19 07:00:43 +00:00
datadevice_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
datadevice_interface_p.h Run .clang-format 2022-04-19 13:14:26 +03:00
datadevicemanager_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
datadevicemanager_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
dataoffer_interface.cpp wayland: Fix drag-and-drop issues in Firefox 2022-05-19 07:00:43 +00:00
dataoffer_interface.h wayland: Fix drag-and-drop issues in Firefox 2022-05-19 07:00:43 +00:00
datasource_interface.cpp Make data source objects "parentless" 2022-01-25 09:59:59 +02:00
datasource_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
DESIGN.md Move DESIGN.md to toplevel directory 2021-03-22 21:30:43 +02:00
display.cpp Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
display.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
display_p.h Implement kde-output-device-v2 and kde-output-management-v2 2021-09-01 12:20:21 +02:00
dpms_interface.cpp wayland/outputinterface: use the same enums as core KWin 2022-05-17 19:05:15 +00:00
dpms_interface.h wayland/outputinterface: use the same enums as core KWin 2022-05-17 19:05:15 +00:00
dpms_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
drm_fourcc.h Run clang-format 2021-08-29 07:11:06 +02:00
drmclientbuffer.cpp Restore correct type check for wl_drm client buffers 2021-11-10 13:54:56 +02:00
drmclientbuffer.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
drmleasedevice_v1_interface.cpp wayland/drmlease: correct DrmLeaseDeviceV1Interface::setDrmMaster 2022-07-13 12:27:54 +00:00
drmleasedevice_v1_interface.h wayland/drmlease: split up DrmLeaseV1Interface::deny 2022-07-13 12:27:54 +00:00
drmleasedevice_v1_interface_p.h Run .clang-format 2022-04-19 13:14:26 +03:00
fakeinput_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
fakeinput_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
filtered_display.cpp Run clang-format 2021-08-29 07:11:06 +02:00
filtered_display.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
idle_interface.cpp wayland: Introduce IdleDetector 2022-06-29 20:27:50 +03:00
idle_interface.h wayland: Introduce IdleDetector 2022-06-29 20:27:50 +03:00
idle_interface_p.h wayland: Introduce IdleDetector 2022-06-29 20:27:50 +03:00
idleinhibit_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
idleinhibit_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
idleinhibit_v1_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
inputmethod_v1_interface.cpp Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
inputmethod_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
keyboard_interface.cpp Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
keyboard_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
keyboard_interface_p.h Run .clang-format 2022-04-19 13:14:26 +03:00
keyboard_shortcuts_inhibit_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
keyboard_shortcuts_inhibit_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
keystate_interface.cpp wayland: Simplify keystate protocol implementation 2022-05-23 07:06:29 +00:00
keystate_interface.h wayland: Simplify keystate protocol implementation 2022-05-23 07:06:29 +00:00
layershell_v1_interface.cpp Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
layershell_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
linuxdmabufv1clientbuffer.cpp wayland: Use shared DmaBufAttributes type 2022-06-13 10:22:29 +00:00
linuxdmabufv1clientbuffer.h wayland: Use shared DmaBufAttributes type 2022-06-13 10:22:29 +00:00
linuxdmabufv1clientbuffer_p.h wayland: Use shared DmaBufAttributes type 2022-06-13 10:22:29 +00:00
output_interface.cpp Introduce client level scale overrides 2022-06-07 08:33:55 +01:00
output_interface.h Introduce client level scale overrides 2022-06-07 08:33:55 +01:00
outputchangeset_v2.cpp outputchangeset: set default values for vrr policy and rgb range 2022-03-11 03:51:18 +01:00
outputchangeset_v2.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
outputchangeset_v2_p.h output protocols: add rgb range setting 2021-09-01 20:54:14 +00:00
outputconfiguration_v2_interface.cpp outputconfigurationinterface: don't crash if mode is invalid 2022-04-29 17:38:08 +00:00
outputconfiguration_v2_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
outputdevice_v2_interface.cpp Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
outputdevice_v2_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
outputmanagement_v2_interface.cpp Run .clang-format 2022-04-19 13:14:26 +03:00
outputmanagement_v2_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
plasmashell_interface.cpp Support new AppletPopup window type 2022-05-27 21:49:37 +00:00
plasmashell_interface.h Support new AppletPopup window type 2022-05-27 21:49:37 +00:00
plasmavirtualdesktop_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
plasmavirtualdesktop_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
plasmawindowmanagement_interface.cpp port many Qt shared pointers to standard smart pointers 2022-06-04 16:57:29 +00:00
plasmawindowmanagement_interface.h port many Qt shared pointers to standard smart pointers 2022-06-04 16:57:29 +00:00
pointer_interface.cpp Introduce client level scale overrides 2022-06-07 08:33:55 +01:00
pointer_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
pointer_interface_p.h Implement pointer hold gestures interface 2021-10-25 08:13:05 +00:00
pointerconstraints_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
pointerconstraints_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
pointerconstraints_v1_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
pointergestures_v1_interface.cpp Remove redundant ifs 2021-10-25 08:13:05 +00:00
pointergestures_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
pointergestures_v1_interface_p.h Implement pointer hold gestures interface 2021-10-25 08:13:05 +00:00
primaryoutput_v1_interface.cpp Add destructor for primary output global 2022-05-06 11:37:54 +00:00
primaryoutput_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
primaryselectiondevice_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
primaryselectiondevice_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
primaryselectiondevicemanager_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
primaryselectiondevicemanager_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
primaryselectionoffer_v1_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
primaryselectionoffer_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
primaryselectionsource_v1_interface.cpp Make data source objects "parentless" 2022-01-25 09:59:59 +02:00
primaryselectionsource_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
region_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
region_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
relativepointer_v1_interface.cpp Introduce client level scale overrides 2022-06-07 08:33:55 +01:00
relativepointer_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
relativepointer_v1_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
screencast_v1_interface.cpp screencast: Support screencast of regions 2022-03-15 16:09:45 +01:00
screencast_v1_interface.h Remove extra ';' 2022-06-23 06:56:25 +02:00
seat_interface.cpp Introduce client level scale overrides 2022-06-07 08:33:55 +01:00
seat_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
seat_interface_p.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
server_decoration_interface.cpp Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
server_decoration_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
server_decoration_palette_interface.cpp Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
server_decoration_palette_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
shadow_interface.cpp Run .clang-format 2022-04-19 13:14:26 +03:00
shadow_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
shmclientbuffer.cpp Run .clang-format 2022-04-19 13:14:26 +03:00
shmclientbuffer.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
slide_interface.cpp Fix ownership of SlideInterface 2021-10-31 12:40:23 +02:00
slide_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
subcompositor_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
subcompositor_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
subsurface_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
surface_interface.cpp Use floating geometry throughout 2022-07-14 10:04:46 +01:00
surface_interface.h Use floating geometry throughout 2022-07-14 10:04:46 +01:00
surface_interface_p.h Use floating geometry throughout 2022-07-14 10:04:46 +01:00
surfacerole.cpp Run clang-format 2021-08-29 07:11:06 +02:00
surfacerole_p.h Run clang-format 2021-08-29 07:11:06 +02:00
tablet_v2_interface.cpp tablet: Leave the surface we were previously on, not the one we are going to 2022-06-28 03:39:31 +02:00
tablet_v2_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
textinput.cpp textinput: Expose enums to moc 2021-05-21 19:17:17 +02:00
textinput.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
textinput_v2_interface.cpp Fix testTextInputV3Interface 2022-01-04 11:24:45 -08:00
textinput_v2_interface.h Remove extra ';' 2022-06-23 06:56:25 +02:00
textinput_v2_interface_p.h Implemnt preedit_styling for text input v2. 2021-12-19 04:09:48 -08:00
textinput_v3_interface.cpp Always send a done after commit for text input v3. 2022-06-11 20:24:35 +00:00
textinput_v3_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
textinput_v3_interface_p.h Always send a done after commit for text input v3. 2022-06-11 20:24:35 +00:00
touch_interface.cpp Introduce client level scale overrides 2022-06-07 08:33:55 +01:00
touch_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
touch_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
utils.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
viewporter_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
viewporter_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
viewporter_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
xdgactivation_v1_interface.cpp Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
xdgactivation_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
xdgdecoration_v1_interface.cpp Introduce fake None xdg-decoration mode 2021-12-08 21:31:16 +02:00
xdgdecoration_v1_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
xdgdecoration_v1_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
xdgforeign_v2_interface.cpp Run clang-format 2021-08-29 07:11:06 +02:00
xdgforeign_v2_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
xdgforeign_v2_interface_p.h Run clang-format 2021-08-29 07:11:06 +02:00
xdgoutput_v1_interface.cpp XdgOutput: Ensure we update the output size when the overrideScale changes 2022-07-06 12:57:30 +00:00
xdgoutput_v1_interface.h XdgOutput: Ensure we update the output size when the overrideScale changes 2022-07-06 12:57:30 +00:00
xdgshell_interface.cpp Map XdgSurface to XdgWMBase instances properly 2022-07-08 11:57:57 +00:00
xdgshell_interface.h Integrate kwaylandserver 2022-04-22 12:27:33 +03:00
xdgshell_interface_p.h Map XdgSurface to XdgWMBase instances properly 2022-07-08 11:57:57 +00:00