@@ -1155,6 +1155,7 @@ pub enum WindowMessage {
11551155 SetCursorPosition ( Position ) ,
11561156 SetIgnoreCursorEvents ( bool ) ,
11571157 SetProgressBar ( ProgressBarState ) ,
1158+ SetTitleBarStyle ( tauri_utils:: TitleBarStyle ) ,
11581159 DragWindow ,
11591160 ResizeDragWindow ( tauri_runtime:: ResizeDirection ) ,
11601161 RequestRedraw ,
@@ -1948,6 +1949,13 @@ impl<T: UserEvent> WindowDispatch<T> for WryWindowDispatcher<T> {
19481949 ) ,
19491950 )
19501951 }
1952+
1953+ fn set_title_bar_style ( & self , style : tauri_utils:: TitleBarStyle ) -> Result < ( ) > {
1954+ send_user_message (
1955+ & self . context ,
1956+ Message :: Window ( self . window_id , WindowMessage :: SetTitleBarStyle ( style) ) ,
1957+ )
1958+ }
19511959}
19521960
19531961#[ derive( Clone ) ]
@@ -2872,6 +2880,23 @@ fn handle_user_message<T: UserEvent>(
28722880 WindowMessage :: SetProgressBar ( progress_state) => {
28732881 window. set_progress_bar ( ProgressBarStateWrapper :: from ( progress_state) . 0 ) ;
28742882 }
2883+ WindowMessage :: SetTitleBarStyle ( _style) => {
2884+ #[ cfg( target_os = "macos" ) ]
2885+ match _style {
2886+ TitleBarStyle :: Visible => {
2887+ window. set_titlebar_transparent ( false ) ;
2888+ window. set_fullsize_content_view ( true ) ;
2889+ }
2890+ TitleBarStyle :: Transparent => {
2891+ window. set_titlebar_transparent ( true ) ;
2892+ window. set_fullsize_content_view ( false ) ;
2893+ }
2894+ TitleBarStyle :: Overlay => {
2895+ window. set_titlebar_transparent ( true ) ;
2896+ window. set_fullsize_content_view ( true ) ;
2897+ }
2898+ } ;
2899+ }
28752900 }
28762901 }
28772902 }
0 commit comments