summaryrefslogtreecommitdiff
path: root/src/protocols
Commit message (Collapse)AuthorAgeFilesLines
...
* data-device: send dndFinished when dnd offer is destroyed while unfinishedVaxry2024-08-284-1/+16
| | | | | | | | fixes #7496 see https://invent.kde.org/plasma/kwin/-/commit/711c5bb43f2823766d5189dc8d567c8f4cec253c see https://bugs.kde.org/show_bug.cgi\?id\=482142
* misc: constify the remaining for loops (#7534)Tom Englund2024-08-2632-138/+138
| | | now we roll loops at blazing constified speed.
* core: make most for loops use const references (#7527)Tom Englund2024-08-266-15/+15
| | | | why not let the compiler optimise things for us at hyprspeeds when we can.
* build: fix 32bit builds (#7510)Tom Englund2024-08-261-1/+5
| | | | | | | ensure the correct type is passed to std::clamp and std::max int64_t is different on 64bit compared to 32bit, also in presentationtime tv_sec is __time_t and on 32bit its a 32bit type so right shift count >= width of type. so only bit shift on 64bit. and avoid potential nullptr deref in the for loops, check for .end() before *it <= endID.
* sessionLock: fix misc:allow_session_lock_restore (#7511)Maximilian Seidler2024-08-261-7/+0
| | | | | | | | | | * Revert "sessionLock: fix the check for locking a locked session (#6843)" This reverts commit 9ff83f4aa97269bf26381a84501d0b19f1926961. * sessionLock: remove early check for session beeing locked It is checked in the `onNewSessionLock` handler, which also respects the `misc:allow_session_lock_restore` option.
* screencopy: fixup 10-bit sharing via shm on nvidiavaxerski2024-08-232-2/+2
|
* output: dont cast enum out of range (#7448)Tom Englund2024-08-211-1/+1
| | | | avoid casting non typed enum out of range, looks like WL_OUTPUT_MODE_CURRENT was the intention here.
* screencopy: fix 10b format r/b flipvaxerski2024-08-181-0/+4
|
* protocol: fix logm template checksvaxerski2024-08-181-1/+1
|
* screencopy: nuke unused stuffvaxerski2024-08-181-11/+0
|
* linux-dmabuf: allow on split-node systemsvaxerski2024-08-181-2/+1
| | | | ref #7364
* shm: align size to stride (#7383)Tom Englund2024-08-181-1/+1
| | | calculate the size to the stride we got to better align it.
* protocols: refactor protocol logging to a macro (#7324)Tom Englund2024-08-1545-104/+42
| | | | | | this avoids the usage of the unique_ptr PROTO::protocol before it has been constructed incase one wants to log something inside the constructor itself, move the logging to macros and print file:linenumber on ERR,CRIT,WARN and classname on the rest of the levels.
* gamma-control: fix crash on monitor disconnect (#7353)Maximilian Seidler2024-08-151-1/+1
|
* protocols: avoid crashing in drmlease (#7290)Tom Englund2024-08-121-5/+4
| | | | | | | instead of potentially causing wonky behaviour from destructing in the constructor add the unique_ptr reset to doLater and dont use the not done constructed protolog in the constructor, call Debug::log directly. see issue #7240
* internal: introduce new types to avoid unsigned int rollover and signed int ↵Tom Englund2024-08-082-2/+2
| | | | | | | | | | | | | | | | | | | | overflow (#7216) * framebuffer: avoid gluint overflow GLuint was being initialized to -1 and rolling over to unsigned int max, its defined behaviour but very unnecessery. add a bool and use it for checking if allocated or not. * opengl: avoid gluint rollover -1 rolls over to unsigned int max, use 0xFF instead. * core: big uint64_t to int type conversion there were a few uint64_t to int implicit conversions overflowing int and causing UB, make all monitor/workspaces/windows use the new typedefs. also fix the various related 64 to 32 implicit conversions going around found with -Wshorten-64-to-32
* wayland/compositor: introduce client commit eventsVaxry2024-08-073-3/+6
|
* drm-syncobj: fixup fd leak with timelinesVaxry2024-08-072-0/+6
|
* xdg-shell: make xdg-positioner flip target greatest available space (#7209)outfoxxed2024-08-071-31/+62
| | | | | When both flip directions use more space than is available, pick the direction that has more space available instead of just the opposite of what was initially requested.
* wayland/compositor: drop pending buffer ref if synchronousVaxry2024-08-061-1/+3
| | | | fixes https://github.com/hyprwm/hyprpicker/issues/85
* renderer: Explicit sync fixes (#7151)Vaxry2024-08-068-67/+61
| | | | | Enables explicit sync by default for most platforms `misc:no_direct_scanout` -> `render:direct_scanout`
* wayland/surface: fixup self-owning surface rolesVaxry2024-08-037-31/+61
| | | | fixes #7133
* xdg-shell: fixup unassigned wl surfaces to xdg surfacesVaxry2024-08-011-2/+3
| | | | fixes #7133
* layershell: don't throw misaligned error on exclusive edge 0Vaxry2024-08-011-1/+1
| | | | ref #7108
* pointer: fix buffer crash (#7131)Tom Englund2024-08-011-3/+3
| | | | current buffer->buffer can turn out to be null actually check for its existence or use the lastbuffer when calling updateCursorShm()
* core/surface/buffer: Buffer lock/release fixes (#7110)Vaxry2024-07-3117-83/+232
|
* internal: refactor fullscreen states (#7104)MightyPlaza2024-07-311-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor fullscreen modified: src/Compositor.cpp modified: src/Compositor.hpp modified: src/config/ConfigManager.cpp modified: src/config/ConfigManager.hpp modified: src/debug/HyprCtl.cpp modified: src/desktop/LayerSurface.cpp modified: src/desktop/Window.cpp modified: src/desktop/Window.hpp modified: src/desktop/Workspace.cpp modified: src/desktop/Workspace.hpp modified: src/events/Windows.cpp modified: src/helpers/Monitor.cpp modified: src/layout/DwindleLayout.cpp modified: src/layout/DwindleLayout.hpp modified: src/layout/IHyprLayout.cpp modified: src/layout/IHyprLayout.hpp modified: src/layout/MasterLayout.cpp modified: src/layout/MasterLayout.hpp modified: src/managers/KeybindManager.cpp modified: src/managers/KeybindManager.hpp modified: src/managers/input/IdleInhibitor.cpp modified: src/managers/input/InputManager.cpp modified: src/managers/input/Swipe.cpp modified: src/protocols/ForeignToplevelWlr.cpp modified: src/render/Renderer.cpp modified: src/render/decorations/CHyprGroupBarDecoration.cpp * clean up modified: src/config/ConfigManager.cpp modified: src/debug/HyprCtl.cpp modified: src/desktop/Window.hpp modified: src/desktop/Workspace.cpp modified: src/events/Windows.cpp modified: src/managers/KeybindManager.cpp modified: src/managers/input/Swipe.cpp * fix mapWindow fullscreen modified: src/events/Windows.cpp * fix typo modified: src/desktop/Workspace.cpp * add fullscreenstate modified: src/config/ConfigManager.cpp modified: src/events/Windows.cpp * change syncFullscreen to lower modified: src/config/ConfigManager.hpp * initialize fs state modified: src/desktop/Window.hpp
* protocols: Move globalshortcuts impl (#7102)Ikalco2024-07-302-132/+62
| | | | | | | * move global shortcuts to hyprwayland-scanner * remove wayland-scanner from deps * fix the thing
* core/surface: fixup a few pointer handling edge casesVaxry2024-07-292-2/+9
|
* core: add a destructor to CHyprOpenglImpl and avoid wl_container_of ↵Tom Englund2024-07-294-12/+30
| | | | | | | | | | | | | | | undefined behaviour (#7101) * protocols: avoid undefined behaviour in C macro 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. * opengl: clean memory on destruction add a destructor and free the allocated memory and close the fd
* protocols: move text-input-v1 to hyprwayland-scanner (#7096)Ikalco2024-07-293-221/+125
| | | | | * move text-input-v1 to hyprwayland-scanner * vro
* virtualptr: allow binding to outputVaxry2024-07-292-11/+22
|
* xdg-shell: fix xdg-positioner y-flip (#7094)outfoxxed2024-07-291-1/+1
|
* surface: emit unmap before unmapping and releasing the buffersvaxerski2024-07-284-4/+4
|
* core: emit unmap event after unmap in surface destroyvaxerski2024-07-281-1/+3
|
* core/surface: drop map/unmap events in member funcsvaxerski2024-07-282-4/+2
| | | | causes loops
* xdg-shell: completely rewrite xdg-positioner (#7067)outfoxxed2024-07-272-109/+97
| | | This implementation actually works.
* layer-shell: properly map and unmap surface and propagate unmap eventsvaxerski2024-07-272-0/+3
|
* input: refocus last window on keyboard unfocusable surfacesvaxerski2024-07-271-4/+4
| | | | fixes #4460
* wayland/compositor: fixup double buffer releasesvaxerski2024-07-274-14/+11
| | | | fixes #7043
* protocols: move screencopy and toplevel export to hyprwayland-scanner (#7065)Ikalco2024-07-274-750/+644
| | | | | * move screencopy and toplevel export to hyprwayland-scanner * oops
* wayland/compositor: release buffers on unmapVaxry2024-07-251-0/+11
| | | | | | | | XWayland does not use the regular commit(null) method to unmap, which results in buffers never being released. release the buffers if present and un-released in the unmap() handler ref #6584
* core: Properly shutdown wl display (#7018)Ikalco2024-07-2410-45/+82
| | | | | | | * correctly destroy wayland globals * properly shutdown and cleanup hyprland * appease the nitpick gods and some comments
* shortcutsInhibit: fix crashVaxry2024-07-241-1/+1
|
* keybinds: add bindp and noshortcutsinhibit (#7017)MightyPlaza2024-07-241-0/+3
|
* layer-shell: validate exclusiveEdge and don't set it as top by default (#7006)Ikalco2024-07-232-3/+11
| | | | | * validate exclusiveEdge and don't set it as top by default * make sure exclusive edge anchor is within bounds
* renderer/layer-shell: use explicitly set exclusiveEdge (#6984)Sam Lakerveld2024-07-221-0/+2
|
* debug: get rid of useless 1s in logs (#6969)Ikalco2024-07-223-5/+5
| | | | | * get rid of 1s in logs lol * replace WLR with AQ in logs
* wl_seat: avoid sending events to objects without capsVaxry2024-07-221-0/+69
| | | | ref #6835
* wayland/output: avoid sending events to dead outputsVaxry2024-07-222-4/+7
| | | | ref #6835