@@ -110,6 +110,7 @@ where
110110 . with_exclusive_zone ( settings. layer_settings . exclusive_zone )
111111 . with_margin ( settings. layer_settings . margin )
112112 . with_keyboard_interacivity ( settings. layer_settings . keyboard_interactivity )
113+ . with_blur_option ( settings. layer_settings . blur_option )
113114 . with_connection ( settings. with_connection )
114115 . build ( )
115116 . expect ( "Cannot create layershell" ) ;
@@ -681,7 +682,7 @@ where
681682 action : LayerShellCustomAction ,
682683 ) {
683684 let layer_shell_window;
684- macro_rules! ref_layer_shell_window {
685+ macro_rules! ref_mut_layer_shell_window {
685686 ( $ev: ident, $iced_id: ident, $layer_shell_id: ident, $layer_shell_window: ident) => {
686687 if $iced_id. is_none( ) {
687688 // Make application also works
@@ -696,8 +697,8 @@ where
696697 return ;
697698 }
698699 }
699- if let Some ( ls_window) =
700- $layer_shell_id . and_then( |layer_shell_id| $ev. get_unit_with_id ( layer_shell_id) )
700+ if let Some ( ls_window) = $layer_shell_id
701+ . and_then( |layer_shell_id| $ev. get_mut_unit_with_id ( layer_shell_id) )
701702 {
702703 layer_shell_window = ls_window;
703704 } else {
@@ -716,35 +717,39 @@ where
716717 }
717718 match action {
718719 LayerShellCustomAction :: AnchorChange ( anchor) => {
719- ref_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
720+ ref_mut_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
720721 layer_shell_window. set_anchor ( anchor) ;
721722 }
723+ LayerShellCustomAction :: BlurOptionChange ( option) => {
724+ ref_mut_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
725+ layer_shell_window. set_blur_option ( option) ;
726+ }
722727 LayerShellCustomAction :: AnchorSizeChange ( anchor, size) => {
723- ref_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
728+ ref_mut_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
724729 layer_shell_window. set_anchor_with_size ( anchor, size) ;
725730 }
726731 LayerShellCustomAction :: LayerChange ( layer) => {
727- ref_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
732+ ref_mut_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
728733 layer_shell_window. set_layer ( layer) ;
729734 }
730735 LayerShellCustomAction :: MarginChange ( margin) => {
731- ref_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
736+ ref_mut_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
732737 layer_shell_window. set_margin ( margin) ;
733738 }
734739 LayerShellCustomAction :: SizeChange ( ( width, height) ) => {
735- ref_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
740+ ref_mut_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
736741 layer_shell_window. set_size ( ( width, height) ) ;
737742 }
738743 LayerShellCustomAction :: ExclusiveZoneChange ( zone_size) => {
739- ref_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
744+ ref_mut_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
740745 layer_shell_window. set_exclusive_zone ( zone_size) ;
741746 }
742747 LayerShellCustomAction :: KeyboardInteractivityChange ( keyboard_interactivity) => {
743- ref_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
748+ ref_mut_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
744749 layer_shell_window. set_keyboard_interactivity ( keyboard_interactivity) ;
745750 }
746751 LayerShellCustomAction :: SetInputRegion ( set_region) => {
747- ref_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
752+ ref_mut_layer_shell_window ! ( ev, iced_id, layer_shell_id, layer_shell_window) ;
748753 let set_region = set_region. 0 ;
749754 let Some ( region) = & self . wl_input_region else {
750755 tracing:: warn!(
0 commit comments