feat(positioner): Allow constrained-movement from js context

pull/2076/head
Jakob Westhoff 8 months ago
parent e2b80c975f
commit 7c83d8a2aa

@ -39,6 +39,19 @@ export async function moveWindow(to: Position): Promise<void> {
})
}
/**
* Moves the `Window` to the given {@link Position} using `WindowExt.move_window_constrained()`
*
* This move operation constrains the window to the screen dimensions in case of
* tray-icon positions.
* @param to The (tray) {@link Position} to move to.
*/
export async function moveWindowConstrained(to: Position): Promise<void> {
await invoke('plugin:positioner|move_window_constrained', {
position: to
})
}
export async function handleIconState(event: TrayIconEvent): Promise<void> {
await invoke('plugin:positioner|set_tray_icon_state', {
position: event.rect.position,

@ -61,6 +61,13 @@ async fn move_window<R: Runtime>(window: tauri::Window<R>, position: Position) -
window.move_window(position)
}
#[cfg(feature = "tray-icon")]
#[tauri::command]
async fn move_window_constrained<R: Runtime>(window: tauri::Window<R>, position: Position) -> Result<()> {
window.move_window_constrained(position)
}
#[cfg(feature = "tray-icon")]
#[tauri::command]
fn set_tray_icon_state<R: Runtime>(
@ -80,6 +87,8 @@ pub fn init<R: Runtime>() -> TauriPlugin<R> {
let plugin = plugin::Builder::new("positioner").invoke_handler(tauri::generate_handler![
move_window,
#[cfg(feature = "tray-icon")]
move_window_constrained,
#[cfg(feature = "tray-icon")]
set_tray_icon_state
]);

Loading…
Cancel
Save