From 0ff7c6531a3084a6c7dd2e5a1f3502dd8a741ccd Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Fri, 26 Sep 2025 21:39:50 -0400 Subject: [PATCH] Media/Themes/Umami: Desaturate min/max/close buttons on window blur --- Media/Themes/Umami/Theme.HC | 9 ++++++--- Media/Themes/Umami/Window/min_max_close_blur.png | Bin 0 -> 591 bytes 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 Media/Themes/Umami/Window/min_max_close_blur.png diff --git a/Media/Themes/Umami/Theme.HC b/Media/Themes/Umami/Theme.HC index c9abb76..3b98721 100644 --- a/Media/Themes/Umami/Theme.HC +++ b/Media/Themes/Umami/Theme.HC @@ -1,5 +1,7 @@ Context2D* umami_min_max_close = @image_file_to_context2d("M:/Media/Themes/Umami/Window/min_max_close.png"); +Context2D* umami_min_max_close_blur = + @image_file_to_context2d("M:/Media/Themes/Umami/Window/min_max_close_blur.png"); Context2D* umami_min_max_close_pressed = Image.FileToContext2D( "M:/Media/Themes/Umami/Window/min_max_close_pressed.png"); Context2D* umami_title_bar_button = NewContext2D(16, 14); @@ -1687,6 +1689,7 @@ U0 @umami_window_repaint(Window* win, I64 event) win->repainting = TRUE; Context2D* ctx = win->render_ctx; + Context2D* this_min_max_close = @t(win == Compositor.active_win, umami_min_max_close, umami_min_max_close_blur); Context2D tmpctx; win->render_ctx->width = win->width; @@ -1773,7 +1776,7 @@ U0 @umami_window_repaint(Window* win, I64 event) if (!Mouse.left && win->callback.close) win->callback.close(win); } else - CopyRect2D(umami_title_bar_button, -32, -1, umami_min_max_close); + CopyRect2D(umami_title_bar_button, -32, -1, this_min_max_close); MemCpy(&tmpctx, umami_title_bar_button, sizeof(Context2D)); tmpctx.opacity = win->opacity; win->render_ctx->blot(window_button_x, 5, &tmpctx); @@ -1795,7 +1798,7 @@ U0 @umami_window_repaint(Window* win, I64 event) } else - CopyRect2D(umami_title_bar_button, -16, -1, umami_min_max_close); + CopyRect2D(umami_title_bar_button, -16, -1, this_min_max_close); MemCpy(&tmpctx, umami_title_bar_button, sizeof(Context2D)); tmpctx.opacity = win->opacity; win->render_ctx->blot(window_button_x, 5, &tmpctx); @@ -1815,7 +1818,7 @@ U0 @umami_window_repaint(Window* win, I64 event) if (!Mouse.left && win->callback.minimize) win->callback.minimize(win); } else - CopyRect2D(umami_title_bar_button, 0, -1, umami_min_max_close); + CopyRect2D(umami_title_bar_button, 0, -1, this_min_max_close); MemCpy(&tmpctx, umami_title_bar_button, sizeof(Context2D)); tmpctx.opacity = win->opacity; win->render_ctx->blot(window_button_x, 5, &tmpctx); diff --git a/Media/Themes/Umami/Window/min_max_close_blur.png b/Media/Themes/Umami/Window/min_max_close_blur.png new file mode 100644 index 0000000000000000000000000000000000000000..9646c784716c6a865353451d810d65fa4052d24e GIT binary patch literal 591 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{U=UzoW?*1g)bOy0fq}6u)7d$|)7e>}peR2r zGbfdSL1SX=L~9RbM-kWac~?4AmKZGPI4YL4R6#3gWgthBQwNvlmI8ZEo)q)bc}>1v z2g5dexcoyqXU*2F8$?+S@^?&KI(1R+iBl?#EQb5i_{#6qp4rX(DKXCc?zBXMwTp!N z-KMx0E&UOnaoAtnmL>G=*5yeXEoWVOE<4F0zx~LXXSMZV7d&=bd2ku5yzM8rBs8IB zZwB{0)pUtI%n+$owT;OM}L@{NOU-9w&B`=U$c^%Y}md? zE=z5gvtpCt4xJlkrhmC*eYCA{%hoLlB@3o&Y(69G?6}ya&&IXwMB>5+Lh4>iI`=Ps z)F0@i?9V6LD#RVTCNl|U)PCFZz3xN);qTL)*UDDj`)>GS-h)f4 zesi}Qd}Q3WcGtCXhK0Nq`&VV(;)}^~`o4IrRhH`~#v(Q5{N(~ZPS1Hubi#{Q-z_fU z?@pbuyKQf+#0jU2r6=#b?cMqJcJS%rL94h{|t4Gm|` zoT;p={Qv)d@)^FV3=9m6B|(0{3=Yq3q%kls#Cf_nhDcmaPB_4NNkM^gZkk6SBeQbJ zEDlb0M+JsU>lW%cwCFIJSPCvtHc>HQab-GD#NxT5t!-DrRE8`@?*nI!U0^hp)??hv uypDPL>W*&-n+zo+7GCD@vS2tDz|L??E;9T^