aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.de.md2
-rw-r--r--README.el.md2
-rw-r--r--README.fr.md2
-rw-r--r--README.it.md2
-rw-r--r--README.ja.md2
-rw-r--r--README.md2
-rw-r--r--README.pt.md2
-rw-r--r--README.ru.md2
-rw-r--r--README.uk.md2
-rw-r--r--completions/bash/sway46
-rw-r--r--completions/bash/swayidle48
-rw-r--r--completions/bash/swaylock66
-rw-r--r--completions/bash/swaymsg57
-rw-r--r--completions/zsh/_sway2
-rw-r--r--completions/zsh/_swaygrab23
-rw-r--r--include/sway/input/keyboard.h3
-rw-r--r--include/sway/tree/container.h2
-rw-r--r--include/swaygrab/json.h10
-rw-r--r--include/util.h1
-rw-r--r--meson.build14
-rw-r--r--meson_options.txt1
-rw-r--r--security.d/00-defaults.in6
-rw-r--r--sway/desktop/output.c6
-rw-r--r--sway/desktop/xwayland.c12
-rw-r--r--sway/input/keyboard.c40
-rw-r--r--sway/sway.1.scd2
-rw-r--r--sway/tree/container.c6
-rw-r--r--swayidle/swayidle.1.scd2
28 files changed, 293 insertions, 72 deletions
diff --git a/README.de.md b/README.de.md
index 206a1040..a872e888 100644
--- a/README.de.md
+++ b/README.de.md
@@ -64,8 +64,6 @@ Abhängigkeiten:
* cairo
* gdk-pixbuf2 *
* pam **
-* imagemagick (erforderlich für Bildaufnahme mit swaygrab)
-* ffmpeg (erforderlich für Videoaufnahme swaygrab)
* [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (erforderlich für man pages)
_\*Nur erforderlich für swaybar, swaybg, und swaylock_
diff --git a/README.el.md b/README.el.md
index 5c70beff..6887fe8e 100644
--- a/README.el.md
+++ b/README.el.md
@@ -57,8 +57,6 @@ To username μου στο Freenode είναι kon14 και θα με βρείτ
* cairo
* gdk-pixbuf2 *
* pam **
-* imagemagick (αναγκαίο για καταγραφή εικόνας μέσω του swaygrab)
-* ffmpeg (αναγκαίο για καταγραφή video μέσω του swaygrab)
* [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (required for man pages)
_\*Απαιτείται μόνο για swaybar, swaybg, and swaylock_
diff --git a/README.fr.md b/README.fr.md
index 0d2573f9..6ea4d14c 100644
--- a/README.fr.md
+++ b/README.fr.md
@@ -59,8 +59,6 @@ Installez les dépendances :
* cairo
* gdk-pixbuf2 *
* pam **
-* imagemagick (requis pour la capture d'image avec swaygrab)
-* ffmpeg (requis pour la capture vidéo avec swaygrab)
* [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (requis pour les pages man)
_\*Uniquement requis pour swaybar, swaybg, and swaylock_
diff --git a/README.it.md b/README.it.md
index 0d81ea54..3b1b1ebc 100644
--- a/README.it.md
+++ b/README.it.md
@@ -60,8 +60,6 @@ Installa queste dipendenze:
* cairo
* gdk-pixbuf2 *
* pam **
-* imagemagick (richiesto per catturare immagini con swaygrab)
-* ffmpeg (rrichiesto per catturare video con swaygrab)
* [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (rrichiesto per man pages)
_\*Richiesto solo per swaybar, swaybg, e swaylock_
diff --git a/README.ja.md b/README.ja.md
index 476d7472..7b437966 100644
--- a/README.ja.md
+++ b/README.ja.md
@@ -50,8 +50,6 @@ Swayは沢山のディストリビューションで提供されています。"
* cairo
* gdk-pixbuf2 *
* pam **
-* imagemagick (swaygrabでスクリーンショットを撮るのに必要です)
-* ffmpeg (swaygrabで画面を録画するのに必要です)
* [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (manで必要です)
_\*swaybar,swaybg,swaylockでのみ必要です_
diff --git a/README.md b/README.md
index 49140fb8..ce753265 100644
--- a/README.md
+++ b/README.md
@@ -58,8 +58,6 @@ Install dependencies:
* gdk-pixbuf2 *
* pam **
* dbus >= 1.10 ***
-* imagemagick (required for image capture with swaygrab)
-* ffmpeg (required for video capture with swaygrab)
* [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (required for man pages)
_\*Only required for swaybar, swaybg, and swaylock_
diff --git a/README.pt.md b/README.pt.md
index d1ef245f..9089c8c6 100644
--- a/README.pt.md
+++ b/README.pt.md
@@ -66,8 +66,6 @@ Antes de iniciar a compilação, instale as dependências:
* cairo
* gdk-pixbuf2 *
* pam **
-* imagemagick (capturar imagem com o swaygrab)
-* ffmpeg (capturar vídeo com o swaygrab)
* [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (man pages)
_\*Dependência apenas de swaybar, swaybg, e swaylock_
diff --git a/README.ru.md b/README.ru.md
index 3b3de19a..68675db3 100644
--- a/README.ru.md
+++ b/README.ru.md
@@ -62,8 +62,6 @@ Sway доступен во многих дистрибутивах и наход
* gdk-pixbuf2 *
* pam **
* dbus >= 1.10 ***
-* imagemagick (требуется для захвата изображений через swaygrab)
-* ffmpeg (требуется для захвата видео через swaygrab)
* [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (required for man pages)
_\*Требуется только для swaybar, swaybg и swaylock_
diff --git a/README.uk.md b/README.uk.md
index 55698487..c31a3ea9 100644
--- a/README.uk.md
+++ b/README.uk.md
@@ -66,8 +66,6 @@ Sway доступний у багатьох дистрибутивах Linux (а
* cairo
* gdk-pixbuf2 *
* pam **
-* imagemagick (для захоплення зображень за допомогою swaygrab)
-* ffmpeg (для захоплення відео за допомогою swaygrab)
* [scdoc](https://git.sr.ht/~sircmpwn/scdoc) (required for man pages)
_\*Лише для swaybar, swaybg та swaylock_
diff --git a/completions/bash/sway b/completions/bash/sway
new file mode 100644
index 00000000..edd752cd
--- /dev/null
+++ b/completions/bash/sway
@@ -0,0 +1,46 @@
+# sway(1) completion
+
+_sway()
+{
+ local cur prev
+ _get_comp_words_by_ref cur prev
+
+ short=(
+ -h
+ -c
+ -C
+ -d
+ -v
+ -V
+ )
+
+ long=(
+ --help
+ --config
+ --validate
+ --debug
+ --version
+ --verbose
+ --get-socketpath
+ )
+
+ case $prev in
+ -c|--config)
+ _filedir
+ return
+ ;;
+ esac
+
+ if [[ $cur == --* ]]; then
+ COMPREPLY=($(compgen -W "${long[*]}" -- "$cur"))
+ elif [[ $cur == -* ]]; then
+ COMPREPLY=($(compgen -W "${short[*]}" -- "$cur"))
+ COMPREPLY+=($(compgen -W "${long[*]}" -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W "${short[*]}" -- "$cur"))
+ COMPREPLY+=($(compgen -W "${long[*]}" -- "$cur"))
+ COMPREPLY+=($(compgen -c -- "$cur"))
+ fi
+
+} &&
+complete -F _sway sway
diff --git a/completions/bash/swayidle b/completions/bash/swayidle
new file mode 100644
index 00000000..a0cdc8b2
--- /dev/null
+++ b/completions/bash/swayidle
@@ -0,0 +1,48 @@
+# swaymsg(1) completion
+
+_swayidle()
+{
+ local cur prev
+ _get_comp_words_by_ref -n : cur prev
+ local prev2=${COMP_WORDS[COMP_CWORD-2]}
+ local prev3=${COMP_WORDS[COMP_CWORD-3]}
+
+ events=(
+ 'timeout'
+ 'before-sleep'
+ )
+
+ short=(
+ -h
+ -d
+ )
+
+ if [ "$prev" = timeout ]; then
+ # timeout <timeout>
+ return
+ elif [ "$prev2" = timeout ]; then
+ # timeout <timeout> <timeout command>
+ COMPREPLY=($(compgen -c -- "$cur"))
+ return
+ elif [ "$prev3" = timeout ]; then
+ # timeout <timeout> <timeout command> [resume <resume command>]
+ COMPREPLY=(resume)
+ # optional argument; no return here as user may skip 'resume'
+ fi
+
+ case "$prev" in
+ resume)
+ COMPREPLY=($(compgen -c -- "$cur"))
+ return
+ ;;
+ before-sleep)
+ COMPREPLY=($(compgen -c -- "$cur"))
+ return
+ ;;
+ esac
+
+ COMPREPLY+=($(compgen -W "${events[*]}" -- "$cur"))
+ COMPREPLY+=($(compgen -W "${short[*]}" -- "$cur"))
+
+} &&
+complete -F _swayidle swayidle
diff --git a/completions/bash/swaylock b/completions/bash/swaylock
new file mode 100644
index 00000000..33925480
--- /dev/null
+++ b/completions/bash/swaylock
@@ -0,0 +1,66 @@
+# swaylock(1) completion
+
+_swaylock()
+{
+ local cur prev
+ _get_comp_words_by_ref -n : cur prev
+
+ short=(
+ -h
+ -c
+ -s
+ -t
+ -v
+ -i
+ -u
+ -f
+ )
+
+ long=(
+ --help
+ --color
+ --scaling
+ --tiling
+ --version
+ --image
+ --no-unlock-indicator
+ --daemonize
+ )
+
+ scaling=(
+ 'stretch'
+ 'fill'
+ 'fit'
+ 'center'
+ 'tile'
+ )
+
+ case $prev in
+ -c|--color)
+ return
+ ;;
+ --scaling)
+ COMPREPLY=($(compgen -W "${scaling[*]}" -- "$cur"))
+ return
+ ;;
+ -i|--image)
+ if grep -q : <<< "$cur"; then
+ output="${cur%%:*}:"
+ cur="${cur#*:}"
+ else
+ output=
+ fi
+ COMPREPLY=($(compgen -f -- "$cur"))
+ return
+ ;;
+ esac
+
+ if [[ $cur == --* ]]; then
+ COMPREPLY=($(compgen -W "${long[*]}" -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W "${short[*]}" -- "$cur"))
+ COMPREPLY+=($(compgen -W "${long[*]}" -- "$cur"))
+ fi
+
+} &&
+complete -F _swaylock swaylock
diff --git a/completions/bash/swaymsg b/completions/bash/swaymsg
new file mode 100644
index 00000000..8ec90b6f
--- /dev/null
+++ b/completions/bash/swaymsg
@@ -0,0 +1,57 @@
+# swaymsg(1) completion
+
+_swaymsg()
+{
+ local cur prev
+ _get_comp_words_by_ref cur prev
+
+ types=(
+ 'get_workspaces'
+ 'get_seats'
+ 'get_inputs'
+ 'get_outputs'
+ 'get_tree'
+ 'get_marks'
+ 'get_bar_config'
+ 'get_version'
+ 'get_clipboard'
+ )
+
+ short=(
+ -h
+ -q
+ -r
+ -s
+ -t
+ -v
+ )
+
+ long=(
+ --help
+ --quiet
+ --raw
+ --socket
+ --type
+ --verbose
+ )
+
+ case $prev in
+ -s|--socket)
+ _filedir
+ return
+ ;;
+ -t|--type)
+ COMPREPLY=($(compgen -W "${types[*]}" -- "$cur"))
+ return
+ ;;
+ esac
+
+ if [[ $cur == --* ]]; then
+ COMPREPLY=($(compgen -W "${long[*]}" -- "$cur"))
+ else
+ COMPREPLY=($(compgen -W "${short[*]}" -- "$cur"))
+ COMPREPLY+=($(compgen -W "${long[*]}" -- "$cur"))
+ fi
+
+} &&
+complete -F _swaymsg swaymsg
diff --git a/completions/zsh/_sway b/completions/zsh/_sway
index bab90fbf..05112002 100644
--- a/completions/zsh/_sway
+++ b/completions/zsh/_sway
@@ -18,5 +18,5 @@ _arguments -s \
'(-c --config)'{-c,--config}'[Specify a config file]:files:_files' \
'(-C --validate)'{-C,--validate}'[Check validity of the config file, then exit]' \
'(-d --debug)'{-d,--debug}'[Enables full logging, including debug information]' \
- '(-v --verbose)'{-v,--verbose}'[Enables more verbose logging]' \
+ '(-V --verbose)'{-V,--verbose}'[Enables more verbose logging]' \
'(--get-socketpath)'--get-socketpath'[Gets the IPC socket path and prints it, then exits]'
diff --git a/completions/zsh/_swaygrab b/completions/zsh/_swaygrab
deleted file mode 100644
index 0f9846f4..00000000
--- a/completions/zsh/_swaygrab
+++ /dev/null
@@ -1,23 +0,0 @@
-#compdef swaygrab
-#-----------------
-# Description
-# -----------
-#
-# Completion script for swaygrab in sway wm (http://swaywm.org)
-#
-# -----------------------------------------------------
-# Author
-# ------
-#
-# * Seth Barberee <seth.barberee@gmail.com>
-#
-# ------------------------------------------
-
-_arguments -s \
- '(-h --help)'{-h,--help}'[Shows help message]' \
- '(-c --capture)'{-c,--capture}'[Captures multiple frames as video and passes them to ffmpeg]' \
- '(-o --output)'{-o,--output}'[Use the specified output. If not specified then current focused output will be used]' \
- '(-v --version)'{-v,--version}'[Print the version (of swaymsg) and quit]' \
- '(-s --socket)'{-s,--socket}'[Use the specified socket path.]:files:_files' \
- '(-r --rate)'{-r,--rate}'[Specify a framerate (in fps). Used in combination with -c. Default is 30 and must be an integer]' \
- '(--raw)--raw[Instead of ImageMagick or ffmpeg, dump raw rgba data to stdout]'
diff --git a/include/sway/input/keyboard.h b/include/sway/input/keyboard.h
index 6713398e..6d28454c 100644
--- a/include/sway/input/keyboard.h
+++ b/include/sway/input/keyboard.h
@@ -38,6 +38,9 @@ struct sway_keyboard {
struct sway_shortcut_state state_keysyms_raw;
struct sway_shortcut_state state_keycodes;
struct sway_binding *held_binding;
+
+ struct wl_event_source *key_repeat_source;
+ struct sway_binding *repeat_binding;
};
struct sway_keyboard *sway_keyboard_create(struct sway_seat *seat,
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index d91b3bf1..d4a42a71 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -270,6 +270,8 @@ int container_count_descendants_of_type(struct sway_container *con,
void container_create_notify(struct sway_container *container);
+void container_update_textures_recursive(struct sway_container *con);
+
void container_damage_whole(struct sway_container *container);
bool container_reap_empty(struct sway_container *con);
diff --git a/include/swaygrab/json.h b/include/swaygrab/json.h
deleted file mode 100644
index c1093ef1..00000000
--- a/include/swaygrab/json.h
+++ /dev/null
@@ -1,10 +0,0 @@
-#include <json-c/json.h>
-#include "wlc/wlc.h"
-
-void init_json_tree(int socketfd);
-void free_json_tree();
-char *get_focused_output();
-char *create_payload(const char *output, struct wlc_geometry *g);
-struct wlc_geometry *get_container_geometry(json_object *container);
-json_object *get_focused_container();
-json_object *get_output_container(const char *output);
diff --git a/include/util.h b/include/util.h
index bda941ce..9277fa6e 100644
--- a/include/util.h
+++ b/include/util.h
@@ -2,6 +2,7 @@
#define _SWAY_UTIL_H
#include <stdint.h>
+#include <stdbool.h>
#include <unistd.h>
#include <sys/types.h>
#include <xkbcommon/xkbcommon.h>
diff --git a/meson.build b/meson.build
index 06299618..05d334d2 100644
--- a/meson.build
+++ b/meson.build
@@ -12,6 +12,7 @@ project(
add_project_arguments('-Wno-unused-parameter', language: 'c')
add_project_arguments('-Wno-unused-function', language: 'c')
add_project_arguments('-Wno-unused-result', language: 'c')
+add_project_arguments('-DWLR_USE_UNSTABLE', language: 'c')
cc = meson.get_compiler('c')
@@ -182,7 +183,6 @@ endif
if (get_option('zsh_completions'))
zsh_files = files(
'completions/zsh/_sway',
- 'completions/zsh/_swaygrab',
'completions/zsh/_swaylock',
'completions/zsh/_swaymsg',
)
@@ -190,3 +190,15 @@ if (get_option('zsh_completions'))
install_data(zsh_files, install_dir: zsh_install_dir)
endif
+
+if (get_option('bash_completions'))
+ bash_files = files(
+ 'completions/bash/sway',
+ 'completions/bash/swayidle',
+ 'completions/bash/swaylock',
+ 'completions/bash/swaymsg',
+ )
+ bash_install_dir = datadir + '/bash-completion/completions'
+
+ install_data(bash_files, install_dir: bash_install_dir)
+endif
diff --git a/meson_options.txt b/meson_options.txt
index 6c7f241d..7a23c206 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,4 +1,5 @@
option('sway_version', type : 'string', description: 'The version string reported in `sway --version`.')
option('default_wallpaper', type: 'boolean', value: true, description: 'Install the default wallpaper.')
option('zsh_completions', type: 'boolean', value: true, description: 'Install zsh shell completions.')
+option('bash_completions', type: 'boolean', value: true, description: 'Install bash shell completions.')
option('enable-xwayland', type: 'boolean', value: true, description: 'Enable support for X11 applications')
diff --git a/security.d/00-defaults.in b/security.d/00-defaults.in
index e4626477..be7b9d06 100644
--- a/security.d/00-defaults.in
+++ b/security.d/00-defaults.in
@@ -12,7 +12,6 @@
permit * fullscreen keyboard mouse
permit @prefix@/bin/swaylock lock
permit @prefix@/bin/swaybg background
-permit @prefix@/bin/swaygrab screenshot
permit @prefix@/bin/swaybar panel
# Configures enabled IPC features for specific programs
@@ -36,11 +35,6 @@ ipc @prefix@/bin/swaybar {
}
}
-ipc @prefix@/bin/swaygrab {
- outputs enabled
- tree enabled
-}
-
ipc @prefix@/bin/swaylock {
outputs enabled
}
diff --git a/sway/desktop/output.c b/sway/desktop/output.c
index d9ccb00d..6b2eb0c2 100644
--- a/sway/desktop/output.c
+++ b/sway/desktop/output.c
@@ -522,14 +522,10 @@ static void handle_transform(struct wl_listener *listener, void *data) {
transaction_commit_dirty();
}
-static void handle_scale_iterator(struct sway_container *view, void *data) {
- view_update_marks_textures(view->sway_view);
-}
-
static void handle_scale(struct wl_listener *listener, void *data) {
struct sway_output *output = wl_container_of(listener, output, scale);
arrange_layers(output);
- container_descendants(output->swayc, C_VIEW, handle_scale_iterator, NULL);
+ container_update_textures_recursive(output->swayc);
arrange_windows(output->swayc);
transaction_commit_dirty();
}
diff --git a/sway/desktop/xwayland.c b/sway/desktop/xwayland.c
index 390ca580..398446f8 100644
--- a/sway/desktop/xwayland.c
+++ b/sway/desktop/xwayland.c
@@ -69,11 +69,13 @@ static void unmanaged_handle_map(struct wl_listener *listener, void *data) {
surface->ly = xsurface->y;
desktop_damage_surface(xsurface->surface, surface->lx, surface->ly, true);
- struct sway_seat *seat = input_manager_current_seat(input_manager);
- struct wlr_xwayland *xwayland =
- seat->input->server->xwayland.wlr_xwayland;
- wlr_xwayland_set_seat(xwayland, seat->wlr_seat);
- seat_set_focus_surface(seat, xsurface->surface, false);
+ if (wlr_xwayland_or_surface_wants_focus(xsurface)) {
+ struct sway_seat *seat = input_manager_current_seat(input_manager);
+ struct wlr_xwayland *xwayland =
+ seat->input->server->xwayland.wlr_xwayland;
+ wlr_xwayland_set_seat(xwayland, seat->wlr_seat);
+ seat_set_focus_surface(seat, xsurface->surface, false);
+ }
}
static void unmanaged_handle_unmap(struct wl_listener *listener, void *data) {
diff --git a/sway/input/keyboard.c b/sway/input/keyboard.c
index 8dc8239c..160ef10b 100644
--- a/sway/input/keyboard.c
+++ b/sway/input/keyboard.c
@@ -264,6 +264,7 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
}
// Identify and execute active pressed binding
+ struct sway_binding *next_repeat_binding = NULL;
if (event->state == WLR_KEY_PRESSED) {
struct sway_binding *binding_pressed = NULL;
get_active_binding(&keyboard->state_keycodes,
@@ -279,6 +280,21 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
if (binding_pressed) {
seat_execute_command(seat, binding_pressed);
handled = true;
+ next_repeat_binding = binding_pressed;
+ }
+ }
+
+ // Set up (or clear) keyboard repeat for a pressed binding
+ if (next_repeat_binding && wlr_device->keyboard->repeat_info.delay > 0) {
+ keyboard->repeat_binding = next_repeat_binding;
+ if (wl_event_source_timer_update(keyboard->key_repeat_source,
+ wlr_device->keyboard->repeat_info.delay) < 0) {
+ wlr_log(WLR_DEBUG, "failed to set key repeat timer");
+ }
+ } else if (keyboard->repeat_binding) {
+ keyboard->repeat_binding = NULL;
+ if (wl_event_source_timer_update(keyboard->key_repeat_source, 0) < 0) {
+ wlr_log(WLR_DEBUG, "failed to disarm key repeat timer");
}
}
@@ -303,6 +319,26 @@ static void handle_keyboard_key(struct wl_listener *listener, void *data) {
transaction_commit_dirty();
}
+static int handle_keyboard_repeat(void *data) {
+ struct sway_keyboard *keyboard = (struct sway_keyboard *)data;
+ struct wlr_keyboard *wlr_device =
+ keyboard->seat_device->input_device->wlr_device->keyboard;
+ if (keyboard->repeat_binding) {
+ if (wlr_device->repeat_info.rate > 0) {
+ // We queue the next event first, as the command might cancel it
+ if (wl_event_source_timer_update(keyboard->key_repeat_source,
+ 1000 / wlr_device->repeat_info.rate) < 0) {
+ wlr_log(WLR_DEBUG, "failed to update key repeat timer");
+ }
+ }
+
+ seat_execute_command(keyboard->seat_device->sway_seat,
+ keyboard->repeat_binding);
+ transaction_commit_dirty();
+ }
+ return 0;
+}
+
static void handle_keyboard_modifiers(struct wl_listener *listener,
void *data) {
struct sway_keyboard *keyboard =
@@ -328,6 +364,9 @@ struct sway_keyboard *sway_keyboard_create(struct sway_seat *seat,
wl_list_init(&keyboard->keyboard_key.link);
wl_list_init(&keyboard->keyboard_modifiers.link);
+ keyboard->key_repeat_source = wl_event_loop_add_timer(server.wl_event_loop,
+ handle_keyboard_repeat, keyboard);
+
return keyboard;
}
@@ -441,5 +480,6 @@ void sway_keyboard_destroy(struct sway_keyboard *keyboard) {
}
wl_list_remove(&keyboard->keyboard_key.link);
wl_list_remove(&keyboard->keyboard_modifiers.link);
+ wl_event_source_remove(keyboard->key_repeat_source);
free(keyboard);
}
diff --git a/sway/sway.1.scd b/sway/sway.1.scd
index 5b770cce..0c2ee974 100644
--- a/sway/sway.1.scd
+++ b/sway/sway.1.scd
@@ -92,4 +92,4 @@ source contributors. For more information about sway development, see
# SEE ALSO
-*sway*(5) *swaymsg*(1) *swaygrab*(1) *sway-input*(5) *sway-bar*(5)
+*sway*(5) *swaymsg*(1) *sway-input*(5) *sway-bar*(5)
diff --git a/sway/tree/container.c b/sway/tree/container.c
index b7442002..4e85021d 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -67,7 +67,7 @@ void container_create_notify(struct sway_container *container) {
}
}
-static void container_update_textures_recursive(struct sway_container *con) {
+void container_update_textures_recursive(struct sway_container *con) {
if (con->type == C_CONTAINER || con->type == C_VIEW) {
container_update_title_textures(con);
}
@@ -79,6 +79,10 @@ static void container_update_textures_recursive(struct sway_container *con) {
struct sway_container *child = con->children->items[i];
container_update_textures_recursive(child);
}
+
+ if (con->type == C_WORKSPACE) {
+ container_update_textures_recursive(con->sway_workspace->floating);
+ }
}
}
diff --git a/swayidle/swayidle.1.scd b/swayidle/swayidle.1.scd
index 5cd4a7fd..7c1b138a 100644
--- a/swayidle/swayidle.1.scd
+++ b/swayidle/swayidle.1.scd
@@ -58,4 +58,4 @@ https://github.com/swaywm/sway.
# SEE ALSO
-*sway*(5) *swaymsg*(1) *swaygrab*(1) *sway-input*(5) *sway-bar*(5)
+*sway*(5) *swaymsg*(1) *sway-input*(5) *sway-bar*(5)