Age | Commit message (Collapse) | Author |
|
See discussion in https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4555
|
|
`gcc-14` added a new `-Walloc-size` warning that makes sure that size of
an individual element matches size of a pointed type:
https://gcc.gnu.org/PR71219
`sway` triggers it on `calloc()` calls where member size is used as
`1` (instead of member count):
swaynag/config.c:169:65: error: allocation of insufficient size '1'
for type 'struct swaynag_button' with size '48' [-Werror=alloc-size]
169 | struct swaynag_button *button = calloc(sizeof(struct swaynag_button), 1);
|
|
|
|
Same as 92244c87dbb8 ("swaybar: handle wayland-cursor failures")
but for swaynag.
Closes: https://github.com/swaywm/sway/issues/7671
|
|
"left_ptr" is the legacy XCursor name. "default" is the cursor
spec name.
|
|
And fix the fallout of the swaynag_destroy having evolved without
being tested:
* wl_display_disconnect was called too early
* `button_close` and `swaynag.details.button_details` needed to be
heap allocated, since they are added to swaynag.buttons, and all
entries of swaynag.buttons are freed in swaynag_destroy
* To keep things simpler, disconnect the lifetime of the 'Toggle details'
button text config setting from the button itself.
|
|
It's too easy to have this go out of sync with font_description.
|
|
The font description was only set if provided on the CLI. It was
left NULL for the defaults and when reading from the config file.
Closes: https://github.com/swaywm/sway/issues/7186
|
|
|
|
|
|
Avoids parsing the configured font each time text is rendered.
|
|
When swaynag_parse_options encounters '--dismiss-button' (or its
shorthand '-s'), it sets the text of the first button in the
swaynag.buttons list, which is expected to exist and to be the dismiss
button, to the one passed by the user.
Commit 4780afb68b4ee2cdf0e4925f40cf885819f8a74a ("swaynag: statically
allocate button_close, and move declaration") moved the list
initialization to after swaynag_parse_options is called which made that
code fail.
For example, the command 'swaynag --dismiss-button Dismiss' crashes and
'swaynag --message Message --button Yes "" --dismiss-button Dismiss'
shows the wrong buttons.
Move it back to before swaynag_parse_options is called.
|
|
|
|
|
|
read_from_stdin not only read from stdin, but trimming trailing
newlines, so rename it to reflect this.
|
|
|
|
Instead, we just use `status` for all failures.
|
|
Global variables are initialized to 0.
|
|
Every swaynag has a close button, so it doesn't make sense to
allocate it dynamically. The declaration is moved later to when
it is actually needed.
|
|
They are used together, so it doesn't make sense to allocate them
separately.
|
|
|
|
Replace them with snprintf, which ensures buffer overflows won't
happen.
|
|
An address of a variable can never be NULL, so checking it doesn't make
sense; and `destroy_buffer()` can operate on already destroyed buffers
anyway.
Fixes #6780
|
|
We can just get the output name from wl_output directly, now that
wl_output version 4 exists.
|
|
sway#6504 simplified rendering code by setting scaling at cairo, but
that also changed button position records into ones without scale
multiplication, breaking button events. This fixes it by not multiplying
scale on events handling as well.
|
|
This avoids using the pango_ prefix, reserved for functions coming
from the Pango library.
|
|
Use `cairo_scale` to set the scale factor, removing redundant
multiplications by `output->scale`.
|
|
Uses --layer/-y set to overlay|top|bottom|background
|
|
|
|
For full context, read
https://gitlab.freedesktop.org/cairo/cairo/-/issues/479
TL;DR, cairo’s pc file adds `/cairo` to CFLAGS.
So namespace cairo shouldn’t be used.
|
|
This stops assuming the POSIX shell command is located in /bin.
|
|
Only wl_pointer.motion was used to update pointer position, which would
cause issues if the pointer was not moved prior to wl_pointer.button.
This also fixes touch input through wl_pointer emulation, which fires
wl_pointer.button immediately after wl_pointer.enter.
Closes: https://github.com/swaywm/sway/issues/5991
|
|
|
|
|
|
|
|
Adds a new config option for details background for swaynag
issue/#5673
|
|
|
|
|
|
In case `wl_display_roundtrip` returns an error after registering for
events, print a more user-friendly error message and exit.
Previously, if the build did not have assertions enabled, this would
likely result in a segfault. With assertions enabled, it's not user
friendly to terminate with internal implementation information.
|
|
I don't love -z / -Z, but I figure this patch is far from being
accepted for other reasons too.
|
|
fixes loop when sway closes the socket in the middle of querying outputs,
see #5138.
|
|
swaynag_destroy is called on all cleanup cases and needs the lists to be valid,
just init them early
|
|
This also adds cleanup for all seat resources
|
|
This is the first in a series of commits to refactor the color handling
in sway. This changes parse_color to return whether it was success and
no longer uses 0xFFFFFFFF as the fallback color. This also verifies that
the string actually contains a valid hexadecimal number along with
the length checks.
In the process of altering the calls to parse_color, I also took the
opportunity to heavily refactor swaybar's ipc_parse_colors function.
This allowed for several lines of duplicated code to be removed.
|
|
|
|
Note: since strtoul() has no real error return code (both 0 and
ULONG_MAX may be returned on both success and failure), set errno=0
before calling strtoul().
|
|
If the XCURSOR_THEME and/or XCURSOR_SIZE environment variables are
set, use the theme and size they define.
If they're not set, use the same defaults as before (system default
theme, size=24).
|
|
The new upstream is https://github.com/swaywm/swaybg
This commit also refactors our use of gdk-pixbuf a bit, since the only
remaining reverse dependency is swaybar tray support.
|
|
This revamps the type configs for swaynag. All sizing attributes for
swaynag are now `ssize_t` instead of `uint32_t` to allow for a default
value of `-1`, which allows for `0` to be a valid value. Additionally,
the initialization of the type configs has been changed from a simple
calloc to use a new function `swaynag_type_new`. `swaynag_type_new`
calloc's the memory, checks for an allocation failure, sets the name,
and all sizes to -1. The layering order has also been changed to
default, general config, type config, and as highest priority command
line arguments. Finally, `swaynag_type_merge` has been modified to
handle the layering and sizing changes.
|
|
This spawns swaynag as a wayland client similar to how swaybar and
swaybg are already done
|