Commit Graph

15 Commits

Author SHA1 Message Date
5a29473080 Prevent child zombie process from tearing down Hyprland IPC
In rare circumstances, we may fork(), e.g., as part of a custom module,
and the child process may fail to exec() and exit. In those cases, the
IPC destructor will be called in the child process.

Prior to this commit, this call would then result in the shared socket
being closed. Prevent this by only closing the socket from the original
process.

Fixes #3975 and #4152.

Signed-off-by: Lukas Fleischer <lfleischer@lfos.de>
2025-08-22 18:58:53 -04:00
2b9601b9a4 added IPC fix and Nix GPS fix 2025-06-22 13:15:18 +01:00
37c6cd42f5 fix freebsd compilation 2025-02-19 21:15:18 +01:00
5b8839ab5c Hyprland IPC improvements
Fixes IPC being blocked at shutdown
2025-02-19 20:45:47 +01:00
fa2e21dfd5 modules/hyprland/backend: move getSocketFolder to class 2024-06-09 10:18:20 -05:00
1b3b45779a modules/hyprland/backend: add getSocketFolder to header 2024-06-07 13:56:49 -05:00
42f4386e2e fix clang-tidy errors in hyprland module 2024-02-25 12:11:22 +01:00
bdd7271da9 Improvements for Hyprland backend
1. Fix warnings reported by clang tidy
2. Use unique lock instead of manully lock/unlock on mutex.
   The RAII style locking makes sure mutex is unlocked when exceptions are thrown
2024-01-08 09:26:16 +08:00
ce076927f3 chore: cpplint fixes hyprland headers 2023-09-02 23:56:04 -05:00
9d741f89e2 fix: lint 2023-07-01 11:12:14 +02:00
33236c222f save 2023-06-28 02:52:01 +03:00
5e9bbe5c76 modules: Revert button to label 2022-11-24 13:08:16 +01:00
8f4f67f69f Do not crash when a monitor is removed 2022-11-09 09:34:19 +01:00
b8322c4b4b button: Add AButton class
The AButton class is designed as full a substitute to ALabel. The
GtkButton attribute 'button_' is initialized with a label. This
label can the be referenced by the subsequent inheritors of AButton
instead of the GtkLabel attribute 'label_' of ALabel.
For convenience a GtkLabel* 'label_' attribute is added to AButton.

If the button cannot be clicked it is disabled, effectively acting
like its label predecessor.

GtkButton seems to catch one-click mouse events regardless of the
flags set on it. Therefore, 'signal_pressed' is connected to a
function creating a fake GdkEventButton* and calling 'handleToggle'
(for details on this possible bug in GTK see:
https://stackoverflow.com/questions/45334911 )

In accordance with other GtkButtons (i.e. the sway/workspace ones)
set_relief(Gtk::RELIEF_NONE) is called on the 'button_' instance.
2022-10-12 10:25:29 +02:00
72f478c195 added backend and hyprland/window 2022-07-01 12:46:28 +02:00