summaryrefslogtreecommitdiff
path: root/src/managers/eventLoop/EventLoopManager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* misc: constify the remaining for loops (#7534)Tom Englund2024-08-261-5/+5
| | | now we roll loops at blazing constified speed.
* eventloop: don't dispatch in enterLoopVaxry2024-08-101-1/+0
| | | | ref #6842, BSD blocks in udev on no event apparently
* internal: introduce new types to avoid unsigned int rollover and signed int ↵Tom Englund2024-08-081-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
* internal: some minor fd/socket cleanups and make logging thread safe (#7123)Tom Englund2024-07-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bezier: dont loop on float values Using a floating-point loop variable with a fixed increment can cause precision errors over time due to the nature of floating-point arithmetic. and cause undesired effects. ex iteration 1 = 0.10000000149011611938 iteration 2 = 0.20000000298023223877 eventually.. iteration 8 = 0.80000001192092895508 iteration 9 = 0.89999997615814208984 * hyprctl: close sockets on destruction store socketpath and close the fd and unlink the socket path on exit. * eventloopmgr: close the timerfd close the timerfd on exit. * debug: make logging thread safe instead of opening and closing the logfile on each write open it on init and close it on compositor exit. also add a mutex so accidently using logging from a thread like the watchdog or similiar doesnt cause issues. * xwl: clean up fd logic check if the fd is actually opened before closing, and close the pipesource FD on exit.
* core: Properly shutdown wl display (#7018)Ikalco2024-07-241-0/+6
| | | | | | | * correctly destroy wayland globals * properly shutdown and cleanup hyprland * appease the nitpick gods and some comments
* Core: Move to aquamarine (#6608)Vaxry2024-07-211-0/+15
| | | | | | | | | | | | | | Moves Hyprland from wlroots to aquamarine for the backend. --------- Signed-off-by: Vaxry <vaxry@vaxry.net> Co-authored-by: Mihai Fufezan <mihai@fufexan.net> Co-authored-by: Jan Beich <jbeich@FreeBSD.org> Co-authored-by: vaxerski <vaxerski@users.noreply.github.com> Co-authored-by: UjinT34 <41110182+UjinT34@users.noreply.github.com> Co-authored-by: Tom Englund <tomenglund26@gmail.com> Co-authored-by: Ikalco <73481042+ikalco@users.noreply.github.com> Co-authored-by: diniamo <diniamo53@gmail.com>
* pointer: update geometry after unplug eventsVaxry2024-07-051-9/+29
| | | | | | fixes #6700 fixes #6740
* core: fix a few asan reported issues and a coredump on exit (#6285)Tom Englund2024-06-031-1/+6
| | | | | | | | | | | | | | | | | | * xwayland: add destructor to CXWM and free resource the wl_event_resource was running upon destruction of the compositor causing a null pointer segfault in onX11Event so ensure the event is removed upon destruction, also free the memory allocated by xcb_errors_context_new and finally call xcb_disconnect on the connection to free the fd and its memory. * hyprctl: dont leak the fd on destruction add a destructor and properly free the fd on destruction * eventloop: add destructor and free event source properly free the wl_event_source upon destruction.
* eventloop: don't call lost timersVaxry2024-05-071-1/+3
|
* internal: new shared_ptr and weak_ptr implementation (#5883)Vaxry2024-05-051-2/+2
| | | | | | | | | | | moves std::shared_ptrs to a new implementation Advantages: - you can dereference a weak_ptr directly. This will obviously segfault on a nullptr deref if it's expired. - this is useful to avoid the .lock() hell where we are 100% sure the pointer _should_ be valid. (and if it isn't, it should throw.) - weak_ptrs are still valid while the SP is being destroyed. - reasoning: while an object (e.g. CWindow) is being destroyed, its `weak_ptr self` should be accessible (the sp is still alive, and so is CWindow), but it's not because by stl it's already expired (to prevent resurrection) - this impl solves it differently. w_p is expired, but can still be dereferenced and used. Creating `s_p`s is not possible anymore, though. - this is useful in destructors and callbacks.
* cmake: Some small cmake cleanups (#5572)Yaroslav2024-04-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | * remove unnecessary include * cmake: use pkg_get_variable We can find wayland-scanner executable and wayland-protocols dir by taking advantage of this function, so no need to use find_program or manually call pkgconf executable. * cmake: remove explicit rdynamic option CMAKE_ENABLE_EXPORTS=ON already implies rdynamic so it's redundant to set the latter explicitly. Also, CMAKE_ENABLE_EXPORTS is superseded by CMAKE_EXECUTABLE_ENABLE_EXPORTS in cmake 3.27. * cmake: make xcb-errors dep optional xcb-errors is being used in wlroots, where it's optional. So make it optional in hyprland as well
* eventloop: move timers to an event loop fdVaxry2024-04-071-113/+56
| | | | fixes #5481
* core: Event loop rework (#5466)Vaxry2024-04-071-0/+140
* Event loop rework * revert missed