| Commit message (Collapse) | Author | Age |
|\
| |
| | |
Fix segfaults on output destruction
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This fixes two causes of segfaulting when an output is destroyed.
The first occurred when an output was never enabled. The issue was that
the destroy signal was never initialized so when it was emitted, sway
segfaulted. This was fixed by moving the initialization into
`output_create` since all outputs, regardless of whether they have ever
been enabled, will be destroyed at some point.
The second occurred when the cursor was on an output that was being
destroyed. The sway output would have already been removed, but if there
are other outputs, a cursor rebase would still occur. Since the
wlr_output still existed and the sway output was destroyed, the cursor
could be over nothing, resulting in a segfault when trying to get the
sway output, which was destroyed.
|
|\ \
| |/
|/| |
cursor: allow scrolling tabs/stack on title border
|
|/
|
|
|
|
| |
This allows tabbed and stacked containers to be scrolled through when
the cursor is over the border of the title bar. The borders around the
other three edges of the contents should not be affected by this change.
|
| |
|
|\
| |
| | |
Simplify FreeBSD build
|
|/
|
|
|
|
|
|
|
|
|
|
| |
evdev-proto is installed by a dependency, so some files have been missed:
In file included from ../sway/input/cursor.c:3:
/usr/local/include/libevdev-1.0/libevdev/libevdev.h:30:10: fatal error: 'linux/input.h' file not found
#include <linux/input.h>
^~~~~~~~~~~~~~~
../swaybar/i3bar.c:3:10: fatal error: 'linux/input-event-codes.h' file not found
#include <linux/input-event-codes.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|\
| |
| | |
reload: apply seat cfgs after reading entire cfg
|
| |
| |
| |
| |
| |
| |
| | |
Wait until all seat configs have been read before applying them on
reload. This prevents unnecessary attachment/detachment of input
devices and therefore creation/destruction of seat devices as
individual lines are read.
|
|\ \
| | |
| | | |
cmd_bind: pass the seat to execute_command
|
| |/
| |
| |
| |
| |
| |
| |
| |
| | |
`seat_execute_command` was incorrectly setting
`config->handler_context.seat` before calling `execute_command`. Since
`execute_command` was being called with a `NULL` seat argument,
`execute_command` was setting `config->handler_context.seat` to the
default seat. This resulted in all bindings being executed on the
default seat and causing undesired behavior for devices on other seats.
|
|\ \
| | |
| | | |
swaybar: handle SNI signals better
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
This fixes a crash caused by callbacks not matching the right sender,
and frees old values later, before they are re-assigned.
|
| | |
| | |
| | |
| | |
| | | |
Also added a comment to make more obvious the reason for comparing
sni->status[0] == 'N'
|
|\ \ \
| | | |
| | | | |
cmd_swap: use handler context seat
|
| | |/
| |/|
| | |
| | | |
Use the handler context seat instead of the default seat
|
|\ \ \
| |/ /
|/| | |
keyboard: update repeat timer before execution
|
|/ /
| |
| |
| |
| |
| | |
Since the keyboard can be destroyed by executing a binding (reloading
with a different seat attachment config), update the repeat timer before
executing the binding.
|
|\ \
| |/
|/| |
cursor: allow mapping to all outputs
|
| |
| |
| |
| | |
Running `input "<input>" map_to_output *` resets the mapping to all outputs
|
|\ \
| | |
| | | |
Rewrite strip_whitespace and remove readline.c
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
All occurrences of read_line have been replaced by getline.
peek_line has been absorbed into detect_brace.
|
| | | |
|
|\ \ \
| | | |
| | | | |
seat_cmd_cursor: work on seat name provided
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of simulating events on the current seat, this makes it so
seat_cmd_cursor respects the seat name provided by `seat <name> cursor
<args>`. It also adds support for simulating events on all seats when
the wildcard is given.
This also defers the command when reading the config, which allows the
user to set the initial position of the cursor when the command is
included in the config file.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Unhide the cursor if container warping is enabled.
Also set the image_surface to NULL during view_unmap, otherwise the cursor will
try to access the surface which is currently being unmapped.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The view_unmap function contained an open coded version of
seat_consider_warp_to_focus, replace it with a call to the function.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
The unhide and timeout retrieval functions are needed in a later commit. No
functional changes.
|
|\ \ \ \
| | | | |
| | | | | |
swayidle: Fix sleep inhibitor not being acquired
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Fixes #3377.
The sleep lock file descriptor was immediately closed after it was
acquired due to the dbus message being freed. Now the fd is duplicated
before the message is freed so the inhibitor stays active.
|
|\ \ \ \
| | | | |
| | | | | |
Unbreak build on 32bit platforms
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
../sway/desktop/transaction.c:367:17: error: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat]
transaction, transaction->num_waiting);
^~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/wlr/util/log.h:56:72: note: expanded from macro 'wlr_log'
_wlr_log(verb, "[%s:%d] " fmt, _wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__)
^~~~~~~~~~~
../sway/desktop/transaction.c:477:5: error: format specifies type 'long' but the argument has type 'unsigned int' [-Werror,-Wformat]
transaction->num_configures - transaction->num_waiting + 1,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/wlr/util/log.h:56:72: note: expanded from macro 'wlr_log'
_wlr_log(verb, "[%s:%d] " fmt, _wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__)
^~~~~~~~~~~
../sway/desktop/transaction.c:478:5: error: format specifies type 'long' but the argument has type 'size_t' (aka 'unsigned int') [-Werror,-Wformat]
transaction->num_configures, ms,
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/wlr/util/log.h:56:72: note: expanded from macro 'wlr_log'
_wlr_log(verb, "[%s:%d] " fmt, _wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__)
^~~~~~~~~~~
|
|\ \ \ \
| | | | |
| | | | | |
swaylock: Fix caps lock not updating immediately
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Partially fixes #2788. This change makes it so the lock screen is
redrawn whenever the caps lock modifier state changes, rather
on relying on the keypress event. This didn't work because
caps lock is disabled when the key is released, not pressed,
so the caps lock indicator does not go away until the next
keypress event.
|
| | | | | |
|
| |_|_|/
|/| | | |
|
| | | | |
|
| | | |
| | | |
| | | | |
Some more clarifications because it seems scale questions are recurring.
|
| | | | |
|
| | | | |
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Implements `tiling_drag_threshold <threshold>` to prevent accidental
dragging of tiling containers. If a container (and all of its
descendants) are unfocused and the tile bar is pressed, a threshold
will be used before actually starting the drag. Once the threshold has
been exceeded, the cursor will change to the grab icon and the operation
will switch from `OP_MOVE_TILING_THRESHOLD` to `OP_MOVE_TILING`.
|
| |/
|/|
| |
| |
| |
| |
| | |
See issue #3359 for reproduction details. When a fullscreen view is
unmapped and there's a preceding transaction waiting, there may be
neither a saved buffer or a surface to render. This change matches
the equivalent code in render_view.
|
| | |
|
|\ \
| | |
| | | |
Swaybar tray
|