Commit graph

468 commits

Author SHA1 Message Date
outfoxxed
b0cc49218d
protocols: simulate mouse movement after activating a toplevel (#10429) 2025-05-16 23:38:45 +02:00
Tom Englund
5ceb0ec15d
core: drop the legacy renderer (#10408)
* core: drop the legacy renderer

the legacy renderer is broken and barely used, drop it.

* Nix: drop support for legacyRenderer

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2025-05-15 10:13:24 +01:00
Tom Englund
0dfcba9825
DMABuffer: reserve vector and avoid UB (#10317)
actually reserve the vector instead of initializing it with the
m_attrs.fd.size() adding 4 invalid fd entries, and later emplace_back
the valid ones.

sync_merge_data name is defined as char name[32] a fixed size array, and
c++ technically doesnt allow assigning string literals directly to array
fields in aggregate initializers, it may compile but is technically
undefined behaviour or ill formed. zero initalise it and use
std::ranges::copy_n instead.
2025-05-07 18:15:27 +02:00
davc0n
e5df8cdc62
xwayland: refactor class member vars (#10312)
* xwayland: refactor class member vars

* xwayland: fix pure wayland build
2025-05-07 15:21:44 +02:00
davc0n
997fefbc11
render: refactor class member vars (#10292)
* render: refactor class member vars

* render: fix clang format
2025-05-05 23:44:49 +02:00
davc0n
9cd5b25745
protocols: refactor class member vars (u-z) (#10282)
* protocols: refactor class member vars (u-z)

* protocols: fix clang format
2025-05-04 23:39:00 +02:00
davc0n
2626f89ea6
protocols: refactor class member vars (n-t) (#10273) 2025-05-04 19:21:36 +02:00
davc0n
adbae0f74d
protocols: refactor class member vars (a-m) (#10265) 2025-05-04 00:13:29 +02:00
davc0n
46ac115bd1
protocols: refactor class member vars (types) (#10261) 2025-05-03 18:54:50 +02:00
davc0n
d9cad5e1b6
protocols: refactor class member vars (core) (#10259) 2025-05-03 16:02:49 +02:00
davc0n
ce821294e2
managers: refactor class member vars (#10242) 2025-05-02 17:07:20 +02:00
davc0n
5b3e489108
inputs: refactor class member vars (#10230) 2025-05-01 23:57:11 +02:00
davc0n
50e1bec85f
helpers: refactor class member vars (#10218) 2025-04-30 23:45:20 +02:00
Ikalco
2ee5118d7a
render: properly release rendered buffers (#9807)
* cleanup eglSync

* properly release buffers in renderer

* add renderingDoneCallback and use it in screencopy

* use static constructor for CEGLSync
2025-04-30 18:35:25 +02:00
Vaxry
5d005f11fa
xdg-bell: fix wrong resource cast 2025-04-30 14:07:23 +01:00
Vaxry
4506871310
xdg-bell: avoid crashes on null toplevel 2025-04-30 00:10:07 +01:00
Vaxry
6483f4ec22
screencopy: don't render cursor when frame doesn't want it 2025-04-29 22:02:55 +01:00
UjinT34
49974d5e34
cm: Use precomputed primaries conversion (#9814) 2025-04-29 21:29:40 +02:00
Vaxry
94bc132084
xdg-bell/xdg-tag: fix moved resource usage 2025-04-29 19:49:13 +01:00
davc0n
e9c3fcbb64
devices: refactor class member vars (#10206) 2025-04-29 19:51:07 +02:00
Vaxry
23ecce0e7a
protocols: add support for xdg-system-bell-v1 2025-04-29 18:32:21 +01:00
davc0n
2118440488
windows: refactor class member vars (#10168) 2025-04-28 22:25:22 +02:00
Vaxry
c505eb55ff
screencopy: support hw cursors while sharing with cursor 2025-04-28 20:18:02 +01:00
davc0n
02d7badd15
workspaces: refactor class member vars (#10167) 2025-04-25 02:37:12 +02:00
WhySoBad
a9549dbca0
protocols: add Hyprland toplevel mapping implementation (#9775) 2025-04-24 18:10:57 +02:00
davc0n
241a4935a2
compositor: refactor class member vars (#10141) 2025-04-22 15:23:29 +02:00
Vaxry
a4f7d7c594
protocols: add xdg_toplevel_tag_v1 support
Adds a new windowrule to target windows by xdgTag, xdgtag:
2025-04-21 22:30:27 +01:00
davc0n
4d14bcb02f
config: Refactor class member vars (#10124)
* Refactor config classes vars

* Fix clang format errors
2025-04-20 20:39:33 +02:00
Bruno Krügel
f48ee7a3d1
protocols: ensure PointerConstraints activation occurs only after attched to InputManager (#10096) 2025-04-19 01:16:30 +02:00
fazzi
51afc2c291
ctm: enable fade animation on nvidia driver versions 575 and above (#10095)
* ctm: enable fade animation on nvidia driver versions 575 and above

* format if statement without braces; handle potential throw when checking for nvidia version file
2025-04-18 21:44:54 +02:00
Lee Bousfield
3fa6320a39
desktop: Damage subsurface when position changes (#10094) 2025-04-16 17:49:01 +02:00
Vaxry
877fb5b93a time: move to stl's clocks and move timer 2025-04-16 01:37:48 +01:00
Ikalco
0e521788bc
core: wait for dmabuf readiness (#9806)
* add doOnReadable to event loop manager

* move syncTimeline addWaiter to doOnReadable

* wait on dmabuf buffers to be readable

* don't over synchronize in scanout, also give present feedback on same buffer commit
2025-04-16 01:02:31 +02:00
MightyPlaza
ffd6cf65e4
windowrules: allow incrementing window props (#9566) 2025-04-16 01:00:40 +02:00
Ikalco
2da4f427ea
compositor/surface: fix surface opaque and input regions not being updated (#10055) 2025-04-12 18:58:29 +02:00
Lee Bousfield
0399e64274
screencopy: Handle explicit sync failure (#10050) 2025-04-12 16:38:46 +02:00
Ikalco
0dc531c4a7
core: fix crash in data device on shutdown (#9997) 2025-04-09 18:08:42 +02:00
Vaxry
260d8e1f71
Permission Manager: add permission management for screencopy (#9930) 2025-04-08 19:39:53 +02:00
Ikalco
da86db43d4
core: refactor and improve surface commit (#9805)
* make CHLBufferReference not a SP anymore

* copy over release and acquire points in CHLBufferReference

* use CHLBufferReference in screencopy and toplevel export

TODO: use CHLBufferReference in direct scanout properly
      the only problem is the scanout buffer release timing,
      specifically the onBackendRelease mechanism

* cleanup SSurfaceState and surface pending commit tracking

* move surface code from DRMSyncobj, and move acquire to SSurfaceState

* use queue for comitted pending surface states like proto says

"The content update is placed in a queue until it becomes active." - wl_surface::commit

* drop, not release, prev buffer if 2nd buffer wl_surface.attach is sent

"A wl_buffer that has been attached and then replaced by another attach instead of committed will not receive a release event, and is not used by the compositor." - wl_surface::attach
2025-04-07 21:03:27 +02:00
nyx
9b3925009a
DataDevice: position icon at cursor hotspot (#9895)
* DataDevice: position icon at cursor hotspot

ref: https://wayland.app/protocols/wayland#wl_data_device:request:start_drag
2025-04-06 23:24:14 +02:00
Maximilian Seidler
5e8bb71785
ctm: fix crash when finishing ctm progress with a destroyed monitor (#9835) 2025-04-03 16:40:59 +02:00
Vaxry
79b526a041 socket2: add minimized event for foreign-wlr
ref #995
2025-03-30 22:38:30 +01:00
Lee Bousfield
86c279d7d0
protocols: Don't update hdr metadata if image description is unchanged (#9776) 2025-03-30 01:25:27 +01:00
Lee Bousfield
10035a85cc
core: Don't damage the entire surface every frame (#9763)
* core: Don't damage the entire surface every frame

* core: Damage buffer on dims or transform change

* core: Use guards for scale and tr equality checks
2025-03-28 17:00:39 +01:00
Vaxry
c93140a5f1 surfacestate: reset buffer bit before applying to current
fixes #9759
2025-03-28 12:32:07 +00:00
Tom Englund
9ea76428b6
internal: fix minor ubsan errors (#9743)
* opengl: check if g_pHyprOpengl exist

on compositor destruction we can hit a race where a CEGLSync destructs
and tries to call eglDestroySyncKHR on a null g_pHyprOpengl.

/src/render/OpenGL.cpp:3019:32: runtime error: member access within null pointer of type 'struct CHyprOpenGLImpl'
     #0 0x555565eed979 in CEGLSync::~CEGLSync() /src/render/OpenGL.cpp:3019
     #1 0x555565f6271e in std::default_delete<CEGLSync>::operator()(CEGLSync*)
     const /usr/lib/gcc/x86_64-pc-linux-gnu/14/include/g++-v14/bits/unique_ptr.h:93

* xdgshell: dont apply state on empty states

setsize can be called before a state has been added to pending,
resulting in calling ApplyState with a empty state.

/src/protocols/XDGShell.cpp:323:11: runtime error: null pointer passed as argument 2, which is declared to never be null
     #0 0x5555659bf67e in CXDGToplevelResource::applyState() /src/protocols/XDGShell.cpp:323
     #1 0x5555659bcedc in CXDGToplevelResource::setSize(Hyprutils::Math::Vector2D const&) /src/protocols/XDGShell.cpp:  256
     #2 0x555563eed0ef in Events::listener_commitWindow(void*, void*) /src/events/Windows.cpp:841
2025-03-26 18:22:44 +01:00
Vaxry
0cd04bd666 surfacestate: track and apply updated state
fixes #9729
2025-03-26 17:22:21 +00:00
Vaxry
aec69131cd seat: avoid sending null surfaces in leave/enter events
ref #9699
2025-03-24 14:10:47 +00:00
entailz
aa1bd647b1
core/Compositor.hpp: fix non-relative Texture import (#9703) 2025-03-23 14:49:10 +02:00
Lee Bousfield
fdb7ca6c8f
core/compositor: Fix dropping cursor buffer data early (#9700) 2025-03-22 23:06:02 +01:00