Age | Commit message (Collapse) | Author |
|
This commit fixes a segfault in swaybar on FreeBSD that was caused by
using getdelim with EOF as delimiter on an infinite stream. The FreeBSD
implementation handles the "no more data, delimiter not found, and EOF
not reached" scenario as an error, so it can't be used to read the
output of status command. This commit replaces the getline/getdelim
calls with reading all available data from the stream in one go.
|
|
and lines with subpixel hinting (if available).
|
|
This prevents an signed-to-unsigned conversion error on buffer_index if
getdelim fails and returns -1, which caused swaybar to try to search the
header for the array and immediately failing
|
|
|
|
|
|
If the tokener parses incomplete json, it sets its error value to
json_tokener_continue. This means that extra json should be provided,
but the code was providing the entire object again. In the interest of
simplicity, the tokener is reset so that buffer_pos always points to the
start of the current object.
|
|
|
|
This was the source of numerous bugs, from hotplug events not being
received to segfaults because wl_display_roundtrip was making the
bar process unplug events while blocking in an iteration over all
outputs.
|
|
Don't kill and respawn swaybars on hotplug.
|
|
|
|
|
|
This now correctly handles an incoming json infinite array by shifting
most of the heavy listing to the json-c parser, as well as sending
multiple statuses at once. It also removes the struct
i3bar_protocol_state and moves its members into the status_line struct,
allowing the same buffer to be used for both protocols.
|
|
This now uses the getline function to receive the header, replacing
read_line_buffer, which has been deleted since it is otherwise unused.
Furthermore, once the protocol has been determined, the current status
is handled immediately to be shown (though this has not been added for
the i3bar protocol since it has not yet been rewritten to handle this).
|
|
This now uses getline to correctly handle multiple or long statuses. It
also removes the struct text_protocol_state and moves its members into
the status_line struct.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This prevents blocks from being destroyed before their hotspots are destroyed,
in case it is used for a pending click event that fires between the bar
receiving a new status, which destroys the block, and the bar rendering the new
status, which destroys the hotspot; this problem can be easily produced by
scrolling on a block that immediately causes a new status to be sent, with
multiple outputs
|
|
This does the following:
* Adds a baseline argument to get_text_size (the baseline is the
distance from the top of the texture to the baseline).
* Stores the baseline in the container when calculating the title
height.
* Takes the baseline into account when calculating the config's max font
height.
* When rendering, pads the textures according to the baseline so they
line up.
|
|
Same as #2571 but for 1.0.
|
|
|
|
On FreeBSD, snprintf and vsnprintf are visible only if
_XOPEN_SOURCE >= 600.
|
|
As well as ignoring scroll events on status elements when click_events
is enabled.
Previously, using the scroll wheel on a workspace button would switch to
that workspace instead of scrolling through them. Clicks and scrolling
on status elements would always be processed by swaybar, too. So in case
you were using scrolling as volume control on a status item, swaybar
would additionally scroll through your workspaces.
|
|
Send clicks to swaybar blocks as X11 button ids
|
|
|
|
|
|
|
|
|
|
When turning off displays via DPMS, swaybar and swaybg still tried to
render, but did not get a valid buffer, causing them to crash.
|
|
|
|
|
|
|
|
Makes swaybar respect the user's pango_markup configuration in the
workspace buttons and binding mode indicator.
|
|
This reverts commit f2c209c299889ad965ac995049704b1c46176c6d.
|
|
This reverts commit 1670b46bf6e56d37e69ab0fa32c6799e83397020.
|
|
This reverts commit 830c4ef74c00dbe448da46cdbc576178abc5728e.
|
|
Derive a value from it, called `rundir` rather than writing join_paths(libexecdir,
'sway') all over the place.
|
|
|
|
|
|
|
|
Fixes #1855.
|
|
Uses 'visible' instead of 'focused', since we may scroll on a bar which
isn't the focused output.
We can't use "next_on_output" or "prev_on_output" to implement this,
because it only modify the focused output. So scrolling on an unfocused
output will affect the incorrect one.
We just use the "workspace name" command instead.
|
|
They're pointless.
|
|
This prevents very high CPU load when the status command dies,
and poll continuously awoken with POLLHUP.
|
|
We defer the removal of entries until after the poll loop has finished.
Otherwise we may end up adjusting the poll array while we're still
reading from it, causing us to skip events.
|
|
|