diff --git a/README.md b/README.md
index 8452dcb6..086dc006 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,9 @@
-
+
+
+
-
+---
-
-
-https://discord.gg/qsSx397rkh
-
-
-
-
Sway is an incredible window manager, and certainly one of the most well established wayland window managers. However, it is restricted to only include the functionality that existed in i3. This fork ditches the simple wlr_renderer, and replaces it with our fx_renderer, capable of rendering with fancy GLES2 effects. This, along with a couple of minor changes, expands sway's featureset to include the following:
+ **Blur**
@@ -19,13 +14,15 @@ Sway is an incredible window manager, and certainly one of the most well establi
+ **Scratchpad treated as minimize**: Allows docks, or panels with a taskbar, to correctly interpret minimize / unminimize requests ([thanks to LCBCrion](https://github.com/swaywm/sway/issues/6457))
+ **nixify the repo**: Allows nixos users to easily contribute to and test this project
-
-
-
-
+
+
+
+
[SwayFX is also available on the Fedora copr](https://copr.fedorainfracloud.org/coprs/swayfx/swayfx/)
+[Join our Discord](https://discord.gg/qsSx397rkh)
+
## New Configuration Options
+ Window blur:
diff --git a/assets/swayfx_mascot.png b/assets/swayfx_legacy_mascot_1066x600.png
similarity index 100%
rename from assets/swayfx_mascot.png
rename to assets/swayfx_legacy_mascot_1066x600.png
diff --git a/assets/swayfx_mascot.jpg b/assets/swayfx_mascot.jpg
new file mode 100644
index 00000000..da90fb5b
Binary files /dev/null and b/assets/swayfx_mascot.jpg differ
diff --git a/assets/swayfx_mascot_1366x768.png b/assets/swayfx_mascot_1366x768.png
new file mode 100644
index 00000000..778d3bcf
Binary files /dev/null and b/assets/swayfx_mascot_1366x768.png differ
diff --git a/assets/swayfx_mascot_1920x1080.png b/assets/swayfx_mascot_1920x1080.png
new file mode 100644
index 00000000..25df92c9
Binary files /dev/null and b/assets/swayfx_mascot_1920x1080.png differ
diff --git a/assets/swayfx_mascot_3840x2160.png b/assets/swayfx_mascot_3840x2160.png
new file mode 100644
index 00000000..9e5192f8
Binary files /dev/null and b/assets/swayfx_mascot_3840x2160.png differ
diff --git a/assets/swayfx_mascot_4096x4096.png b/assets/swayfx_mascot_4096x4096.png
new file mode 100644
index 00000000..3cf5355a
Binary files /dev/null and b/assets/swayfx_mascot_4096x4096.png differ
diff --git a/assets/swayfx_screenshot.jpg b/assets/swayfx_screenshot.jpg
index 016641cd..7e904898 100644
Binary files a/assets/swayfx_screenshot.jpg and b/assets/swayfx_screenshot.jpg differ
diff --git a/sway/desktop/render.c b/sway/desktop/render.c
index edc80288..afaf4ede 100644
--- a/sway/desktop/render.c
+++ b/sway/desktop/render.c
@@ -359,7 +359,9 @@ static void render_surface_iterator(struct sway_output *output,
}
if (has_alpha) {
- bool should_optimize_blur = view ? !container_is_floating(view->container) || config->blur_xray : false;
+ bool should_optimize_blur = view ?
+ !container_is_floating_or_child(view->container) || config->blur_xray
+ : false;
render_blur(should_optimize_blur, output, output_damage, &dst_box, &opaque_region,
deco_data.corner_radius, deco_data.has_titlebar);
}
@@ -734,7 +736,7 @@ static void render_saved_view(struct sway_view *view, struct sway_output *output
pixman_region32_init(&opaque_region);
pixman_region32_union_rect(&opaque_region, &opaque_region, 0, 0, 0, 0);
- bool should_optimize_blur = !container_is_floating(view->container) || config->blur_xray;
+ bool should_optimize_blur = !container_is_floating_or_child(view->container) || config->blur_xray;
render_blur(should_optimize_blur, output, damage, &dst_box, &opaque_region,
deco_data.corner_radius, deco_data.has_titlebar);
diff --git a/sway/tree/root.c b/sway/tree/root.c
index 2c1b96b8..9df6f002 100644
--- a/sway/tree/root.c
+++ b/sway/tree/root.c
@@ -58,12 +58,16 @@ void root_destroy(struct sway_root *root) {
/* Set minimized state from scratchpad container `show` state */
static void root_scratchpad_set_minimize(struct sway_container *con, bool minimize) {
if (con->view) {
- struct wlr_foreign_toplevel_handle_v1 *foreign_toplevel = con->view->foreign_toplevel;
-
+#if HAVE_XWAYLAND
if (wlr_surface_is_xwayland_surface(con->view->surface)) {
- struct wlr_xwayland_surface *xsurface = wlr_xwayland_surface_from_wlr_surface(con->view->surface);
+ struct wlr_xwayland_surface *xsurface
+ = wlr_xwayland_surface_from_wlr_surface(con->view->surface);
wlr_xwayland_surface_set_minimized(xsurface, minimize);
- } else if (foreign_toplevel) {
+ return;
+ }
+#endif
+ struct wlr_foreign_toplevel_handle_v1 *foreign_toplevel = NULL;
+ if ((foreign_toplevel = con->view->foreign_toplevel)) {
wlr_foreign_toplevel_handle_v1_set_minimized(foreign_toplevel, minimize);
}
}