@ -107,13 +107,20 @@ impl<R: Runtime> WindowExt for Window<R> {
} ,
#[ cfg(feature = " system-tray " ) ]
TrayLeft = > {
if let Some ( ( tray_x , tray_y ) ) = tray_position {
PhysicalPosition {
x : tray_x ,
y : tray_y - window_size . height ,
}
if let ( Some ( ( tray_x , tray_y ) ) , Some ( ( _ , _tray_height ) ) ) =
( tray_position , tray_size )
{
let y = tray_y - window_size . height ;
// Choose y value based on the target OS
#[ cfg(target_os = " windows " ) ]
let y = if y < 0 { tray_y + _tray_height } else { y } ;
#[ cfg(target_os = " macos " ) ]
let y = if y < 0 { tray_y } else { y } ;
PhysicalPosition { x : tray_x , y }
} else {
panic! ( "tray position not set" ) ;
panic! ( " T ray position not set") ;
}
}
#[ cfg(feature = " system-tray " ) ]
@ -129,11 +136,20 @@ impl<R: Runtime> WindowExt for Window<R> {
}
#[ cfg(feature = " system-tray " ) ]
TrayRight = > {
if let ( Some ( ( tray_x , tray_y ) ) , Some ( ( tray_width , _ ) ) ) = ( tray_position , tray_size )
if let ( Some ( ( tray_x , tray_y ) ) , Some ( ( tray_width , _tray_height ) ) ) =
( tray_position , tray_size )
{
let y = tray_y - window_size . height ;
// Choose y value based on the target OS
#[ cfg(target_os = " windows " ) ]
let y = if y < 0 { tray_y + _tray_height } else { y } ;
#[ cfg(target_os = " macos " ) ]
let y = if y < 0 { tray_y } else { y } ;
PhysicalPosition {
x : tray_x + tray_width ,
y : tray_y - window_size . height ,
y ,
}
} else {
panic! ( "Tray position not set" ) ;
@ -153,12 +169,19 @@ impl<R: Runtime> WindowExt for Window<R> {
}
#[ cfg(feature = " system-tray " ) ]
TrayCenter = > {
if let ( Some ( ( tray_x , tray_y ) ) , Some ( ( tray_width , _ ) ) ) = ( tray_position , tray_size )
if let ( Some ( ( tray_x , tray_y ) ) , Some ( ( tray_width , _tray_height ) ) ) =
( tray_position , tray_size )
{
PhysicalPosition {
x : tray_x + ( tray_width / 2 ) - ( window_size . width / 2 ) ,
y : tray_y - window_size . height ,
}
let x = tray_x + tray_width / 2 - window_size . width / 2 ;
let y = tray_y - window_size . height ;
// Choose y value based on the target OS
#[ cfg(target_os = " windows " ) ]
let y = if y < 0 { tray_y + _tray_height } else { y } ;
#[ cfg(target_os = " macos " ) ]
let y = if y < 0 { tray_y } else { y } ;
PhysicalPosition { x , y }
} else {
panic! ( "Tray position not set" ) ;
}