Age | Commit message (Collapse) | Author |
|
|
|
This fixes the following. Create these layouts and run move right:
(Initial layout -> expected result -> actual result)
* `H[S[unfocused focused] unfocused]` ->
`H[S[unfocused] focused unfocused]` ->
`H[H[S[unfocused] focused] unfocused]`
* `H[S[unfocused focused] V[unfocused]]` ->
`H[S[unfocused] V[unfocused focused]]` ->
`H[H[S[unfocused] focused] V[unfocused]]`
move_out_of_tabs_stacks was originally made to allow views to move out
of the tabbed/stacked container in the parallel direction, but at some
point this has started working using the regular logic.
|
|
Allow running commands on containers without focusing them
|
|
commands: remove obselete code for sticky windows when switching workspace
|
|
|
|
We deprecated the stuff necessary to make this work.
|
|
Call pango_cairo_context_set_font_options().
|
|
This adds a `con` argument to `execute_command` which allows you to
specify the container to execute the command on. In most cases it leaves
it as `NULL` which makes it use the focused node. We only set it when
executing `for_window` criteria such as when a view maps. This means we
don't send unnecessary IPC focus events, and fixes a crash when the
criteria command is `move scratchpad` (because we can't give focus to a
hidden scratchpad container).
Each of the shell map handlers now check to see if the view has a
workspace. It won't have a workspace if criteria has moved it to the
scratchpad.
|
|
Call pango_cairo_context_set_font_options() before pango_cairo_update_layout() and pango_cairo_show_layout(). By default, Pango "merges" the Cario font options with its own, which doesn't enable full hinting.
|
|
|
|
Render fonts slightly nicer
|
|
and lines with subpixel hinting (if available).
|
|
Fix double iteration of scratchpad containers
|
|
swaybar: explicitly check return value of getdelim
|
|
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
|
|
Fix pango escaping and refactor escape_markup_text
|
|
|
|
Fixes #2674.
The cause of the issue was in get_pango_layout. When we call
pango_parse_markup, `text` is the escaped string, and the unescaped
string is then computed and written to `buf`. We were then passing the
unescaped string to pango_layout_set_markup, but this function needs the
escaped string. `buf` is not needed and has been removed.
The other part of this PR refactors escape_markup_text to remove the
dest_length argument and removes the -1 return value on error. It now
assumes that you've allocated dest to the correct length.
|
|
Reconfigure xwayland views when repositioned
|
|
swaybar: handle hotplugging
|
|
|
|
swaybar: fix parsing errors when json is sent in parts
|
|
stabilityに関する注記を更新
|
|
|
|
|
|
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.
|
|
|
|
Fixes #2673.
|
|
|
|
Fix compilation against wlroots without X11 backend
|
|
|
|
Fix segfault in output_render
|
|
|
|
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.
|
|
Fix segfault when executing command without focus
|
|
ipc: add pid information for views in layout tree
|
|
|
|
|
|
Introduce create_output command (for developer use)
|
|
|
|
config: free strings fields when freeing input config
|
|
|
|
Should help with testing hotplugging.
|
|
|
|
Overhaul swaybar protocol handling (+fixes)
|
|
|
|
|
|
root_for_each_container and root_find_container were using incorrect
logic to determine if a container was hidden in the scratchpad.
Containers will have a NULL parent if they are a direct child of a
workspace. Containers will have a NULL workspace if they are hidden in
the scratchpad.
The incorrect check meant that root_for_each_container would run the
callback on scratchpad containers twice. This meant that executing a
command such as `[class="$something"] scratchpad show` would cause the
command to run twice, resulting in the container being shown and hidden
again which is effectively a no op.
Fixes #2655.
|
|
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.
|