#Help with code to effectively full screen the app.

5 messages · Page 1 of 1 (latest)

rare nebula
#

My intended purpose for it is to full screen upon pressing F11, but in this case it doesn't work really well (taskbar still there, not fully fullscreen). Anyway to solve this?

Code in action:

import React, { useEffect } from "react";
import { toastSuccess } from "../../../../utils/toast";
import { getCurrentWebviewWindow } from "@tauri-apps/api/webviewWindow";
import { currentMonitor } from "@tauri-apps/api/window";
import { PhysicalSize } from "@tauri-apps/api/dpi";

export default function GlobalShortcut() {
  useEffect(() => {
    const handleShortcut = async (event) => {
      if (event.key === "F11") {
        event.preventDefault();

        try {
          const webview = getCurrentWebviewWindow();
          const monitor = await currentMonitor();
          const isFullscreen = await webview.isFullscreen();
          await webview.setFullscreen(!isFullscreen);

          const { width, height } = monitor.size;

          const newSize = isFullscreen
            ? new PhysicalSize(1600, 900)
            : new PhysicalSize(width, height);

          await webview.setSize(newSize);
          await webview.center();

          toastSuccess(`Toggled fullscreen: ${isFullscreen ? "Disabled" : "Enabled"}`, 1000);
        } catch (error) {
          console.error("Failed to toggle fullscreen:", error);
        }
      }
    };

    window.addEventListener("keydown", handleShortcut);

    return () => {
      window.removeEventListener("keydown", handleShortcut);
    };
  }, []);

  return <div></div>;
}
fair karma
#

javascript

import { invoke } from '@tauri-apps/api/core';
export async function toggle_fullscreen() {
    try {
        console.log('triggerinng...');
        await invoke('toggle_fullscreen');
        console.log('ok...');
    } catch (error) {
        console.error('Failed to trigger:', error);
    }
}
...
toggle_fullscreen()
#

rust:


#[tauri::command]
fn toggle_fullscreen(app_handle: AppHandle) {
    let window = app_handle.get_webview_window("main").unwrap();
    let is_fullscreen = window.is_fullscreen().unwrap();
    if is_fullscreen {
        let _ = window.set_fullscreen(false);
    } else {
        let _ = window.set_fullscreen(true);
    }
}
#
        .invoke_handler(tauri::generate_handler![
            toggle_fullscreen,
        ])
        .run(tauri::generate_context!())