summaryrefslogtreecommitdiff
path: root/src/protocols
Commit message (Collapse)AuthorAgeFilesLines
...
* xdg-shell: don't report invalid min/max sizes on unsetVaxry2024-11-191-0/+4
| | | | fixes #8522
* constraints: don't warp pointer position on release (#8491)johannes hanika2024-11-181-1/+1
| | | | | | | | this was annoying for nuklear properties/ui slider elements that grab the pointer via GLFW_CURSOR_DISABLE to allow more range and finer control. upon mouse release, the pointer is reset to the middle of the window without this patch, making long mouse movements necessary to go back to the original position for readjustments. fwiw the new behaviour is consistent with x11 and weston.
* windows/xdg: minor cleanup of min/max size calculationsVaxry2024-11-172-0/+11
| | | | fixes #8495
* pointer: add drm dumb buffers for cursors (#8399)Vaxry2024-11-142-7/+21
| | | | | --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* screencopy: fix build with legacyrendererVaxry2024-11-051-1/+1
| | | | fixes #8355
* renderer: improve api around new framebuffer changesVaxry2024-11-022-2/+2
| | | | ref #8325
* internal: more profiling less calls and local copies (#8300)Tom Englund2024-10-301-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * compositor: reduce amount of window box copies mousemoveunified can call this very frequently, the cbox copying actually shows up as an impact in such cases, move it down in the scope and only do it when necessery. * core: constify and reference frequent calls profiling shows these as frequent called functions try to reduce the amount of copies with references and const the variables. * pointermgr: remove not used local copy, const ref remove unneded local copies and const ref cursorsize. * inputmgr: reduce amount of calls to vectortowindow the amount of calls to g_pCompositor->vectorToWindowUnified fast ramps up in cpu usage with enough windows existing and moving the mouse, move the PWINDOWIDEAL up and reuse it if its already the same. * protocol: compositor remove unused local copy remove unused local copy of accumulateCurrentBufferDamage and const previousBuffer. * renderer: reduce scope of variables and refactor move a few variables down in their scopes to reduce the amount of calls and copies when not needed, also add one more for loop in renderWorkspaceWindows and store the windows in a vector with weakpointers that should be rendered, this adds a loop but reduces the amount of repeated calls to shouldRenderWindow and also makes the rest of the loops go over way smaller vector when many windows exist.
* seat: avoid sending pointless 'keymap' and 'repeat_info' events (#8276)staticssleever6682024-10-282-6/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | #### Describe your PR, what does it fix/add? Fix lag spikes when pressing more than 6 keys at the same time. #### Is there anything you want to mention? (unchecked code, possible bugs, found problems, breaking compatibility, etc.) Debugging process: <details> This is triggered by typing some applications, like CopyQ or XWayland. Typing in Firefox doesn't lead to lag, however it itself does lag handling these events. Profiling CopyQ shows that paths leading to `QtWaylandClient::QWaylandInputDevice::Keyboard::keyboard` take over 80% of processing time of an otherwise idle program. Looking at output of 'wev' even when it's not focused shows same events received over and over again. ``` [14: wl_keyboard] repeat_info: rate: 25 keys/sec; delay: 300 ms [14: wl_keyboard] keymap: format: 1 (xkb v1), size: 64754 ``` Looking at what passes through CInputManager::onKeyboardKey() -> CSeatManager::setKeyboard() shows Hyprland 'switching' between endpoints of the same keyboard, one of them being named like the other but with '-1' suffix. </details> Tested changing layouts in Fcitx5 and with following config. ``` input:kb_layout = us,cz input:kb_variant = ,qwerty input:kb_options = grp:alt_shift_toggle ``` Also tested changing 'input:repeat_delay' while running. Curiously, now these events appear in the output of 'wev' only once. Changing layouts still seems to work fine though. #### Is it ready for merging, or does it need work? Ready for merging.
* internal: few more marginal optimisations from profiling (#8271)Tom Englund2024-10-282-2/+3
| | | | | | | | | | | | | | | | | * deco: reduce local temporars and function calls profiling shows this is a high used function, reduce the amount of function calls and local temporar copies and also check if we even need to add extents at all in the loop. * popup: optimize bfhelper in popups pass nodes as const reference and reserve the size of the children node vector help reduce the reallocations. * procotol: make compositor bfhelper use const ref use const ref for nodes and reserve second nodes vector size to reduce amount of reallocation needed.
* core: move internal structures to monitor pointers (#8266)Vaxry2024-10-273-7/+7
|
* internal: cleanup CMonitor usage and fix a few ref hogsVaxry2024-10-2618-59/+57
| | | | ref #8221
* security-context: avoid UB in C macro (#8229)Tom Englund2024-10-252-7/+17
| | | | | | | to safely use wl_container_of with a class the class has to be no virtual functions, no inheritance, and uniform access control (e.g all public) work around this by putting this into a destroywrapper struct.
* internal: Remove some unused lambda captures (#8218)Honkazel2024-10-242-3/+3
|
* internal: Move CMonitor to SP (#8178)Vaxry2024-10-1920-73/+67
| | | | | * move monitors to sp * XD
* foreign-toplevel-wlr: don't send updates to X11 OR windowsVaxry2024-10-192-1/+26
|
* foreign-toplevel: don't send updates to X11 OR windowsVaxry2024-10-192-5/+25
|
* output: send enter events on late wl_output bindsVaxry2024-10-163-0/+29
| | | | fixes #6560
* drm-lease: fix crashes and implementation (#8116)Ikalco2024-10-142-9/+22
|
* drm-syncobj: fix crash on missing timelinesVaxry2024-10-121-0/+3
| | | | fixes #8092
* drm-timeline: Add check for conflicting acquire and release points (#8083)Edgars Cīrulis2024-10-121-2/+7
| | | Signed-off-by: Edgars Cirulis <edgarsciruliss@gmail.com>
* gammactrl: guard pMonitor in setGammaVaxry2024-10-091-0/+7
|
* output: update state even if no owner exists (#8044)trianta2024-10-091-1/+1
|
* output/xdg-output: avoid sending events to released globalsVaxry2024-10-093-2/+9
| | | | ref #6835
* protocols: Add support for hyprland-ctm-control-v1 (#8023)Vaxry2024-10-082-0/+130
| | | | | | | | | | | * initial ctm support * flake.lock: update * Meson: bump required versions and add ctm proto --------- Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
* screencopy: fix screencopy frames not being cleaned up (#8017)Ikalco2024-10-084-14/+23
| | | | | --------- Co-authored-by: Vaxry <vaxry@vaxry.net>
* security-context: close client fds after disconnectVaxry2024-10-062-5/+7
|
* security-context: implement protocolVaxry2024-10-065-1/+303
| | | | fixes #7318
* single-pixel: set buffer size to 1,1Vaxry2024-10-051-0/+2
|
* xdg-output: minor cleanupsVaxry2024-10-052-21/+17
|
* wayland/output: send geometry in updateStateVaxry2024-09-301-2/+3
|
* wlr-output-management: accept 0 refresh ratesVaxry2024-09-301-1/+6
| | | | fixes #7879
* protocol: fix missing includeTrianta2024-09-301-0/+1
|
* single-pixel-buffer: new protocol implVaxry2024-09-302-0/+204
| | | | fixes #6624
* core: Fix Musl builds (#7934)bivsk2024-09-281-2/+2
| | | | Musl does not include the internal type `__time_t`. Use `time_t` instead.
* wlr-output-configuration: Improve output configuration (#7571)Vaxry2024-09-262-61/+123
|
* internal: nuke wlsignal and relatedVaxry2024-09-242-5/+0
| | | | old semi-wrappers for wl_signal, they are no longer used
* shm: send a static list of shm formatsVaxry2024-09-201-5/+2
| | | | fixes #7733
* dmabuffer: attempt importing failed dmabufs as implicitVaxry2024-09-201-2/+9
| | | | | | | | don't ask me why, vulkan doesn't like this. funny note, broken on wlroots :P fixes #7037
* gammactrl: fix potential crash on monitor removed (#7828)André Silva2024-09-171-1/+1
|
* data-device: conform to reported source actionsvaxerski2024-09-174-4/+25
| | | | fixes #7815
* data-device: don't send default action of moveVaxry2024-09-141-3/+1
| | | | gtk doesn't like it?
* data-device: send clock time in motion eventsVaxry2024-09-141-1/+4
| | | | remove hack
* textinput: handle IME resetting (#7731)Sungyoon Cho2024-09-104-6/+22
|
* textinput: fix ime activation in some edge cases (#7660)Sungyoon Cho2024-09-051-7/+6
| | | | | * textinput: clear ti3 state when focused surface gets destroyed * textinput: send enter to newly created ti in focus
* Revert "syncobj: wait for deadline instead of available"vaxerski2024-09-031-3/+3
| | | | | | This reverts commit cf6a1716ae719f9c59b1d175ca84a79015fab8e1. Fixes #7628
* core: fix crash on monitor removed with gammaControl (#7601)Ikalco2024-08-312-8/+8
| | | | | * fix crash on monitor removed with gammaControl * Update GammaControl.cpp
* data-device: Fix selection mismatch when wlr resets primary selection (#7598)TheMical2024-08-311-1/+1
|
* syncobj: wait for deadline instead of availableVaxry2024-08-311-3/+3
| | | | avoids slow apps from lagging the desktop
* presentation-feedback: minor fixupsVaxry2024-08-304-10/+14
|
* xdg-dialog: implement new protocolVaxry2024-08-304-2/+169
|