mirror of
https://github.com/R0m1k3/TodoFlow.git
synced 2026-10-21 22:28:07 +02:00
Merge pull request #1 from R0m1k3/claude/amazing-ramanujan-56hE0
Corrige la restauration du widget masqué sans icône de barre des tâches
This commit is contained in:
2 files changed
+32
-15
No files matched your search
@@ -67,6 +67,32 @@ fn get_autostart() -> Result<bool, String> {
|
|||||||
Ok(val.is_ok())
|
Ok(val.is_ok())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --- GESTION DE LA VISIBILITÉ DE LA FENÊTRE ---
|
||||||
|
|
||||||
|
fn toggle_window_visibility(app: &AppHandle) {
|
||||||
|
// Bascule l'affichage du widget depuis l'icône de la barre d'état.
|
||||||
|
// Comme la fenêtre est configurée avec skipTaskbar:true, l'icône du tray est le
|
||||||
|
// seul point de restauration : il doit donc fonctionner dans tous les états.
|
||||||
|
let window = match app.get_window("main") {
|
||||||
|
Some(w) => w,
|
||||||
|
None => return,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Une fenêtre réduite est toujours rapportée comme "visible" par Tauri. On la
|
||||||
|
// considère donc comme masquée afin de la restaurer correctement (et non la re-masquer).
|
||||||
|
let is_minimized = window.is_minimized().unwrap_or(false);
|
||||||
|
let is_visible = window.is_visible().unwrap_or(false);
|
||||||
|
|
||||||
|
if is_visible && !is_minimized {
|
||||||
|
let _ = window.hide();
|
||||||
|
} else {
|
||||||
|
// Restauration robuste : dé-minimiser, ré-afficher, puis ramener au premier plan.
|
||||||
|
let _ = window.unminimize();
|
||||||
|
let _ = window.show();
|
||||||
|
let _ = window.set_focus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// --- CONTEXTE ET INITIALISATION ---
|
// --- CONTEXTE ET INITIALISATION ---
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
@@ -84,26 +110,14 @@ fn main() {
|
|||||||
.on_system_tray_event(|app, event| match event {
|
.on_system_tray_event(|app, event| match event {
|
||||||
SystemTrayEvent::LeftClick { .. } => {
|
SystemTrayEvent::LeftClick { .. } => {
|
||||||
// Un simple clic gauche sur l'icône de la barre des tâches bascule la visibilité
|
// Un simple clic gauche sur l'icône de la barre des tâches bascule la visibilité
|
||||||
let window = app.get_window("main").unwrap();
|
toggle_window_visibility(app);
|
||||||
if window.is_visible().unwrap() {
|
|
||||||
window.hide().unwrap();
|
|
||||||
} else {
|
|
||||||
window.show().unwrap();
|
|
||||||
window.set_focus().unwrap();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
SystemTrayEvent::MenuItemClick { id, .. } => match id.as_str() {
|
SystemTrayEvent::MenuItemClick { id, .. } => match id.as_str() {
|
||||||
"quit" => {
|
"quit" => {
|
||||||
std::process::exit(0);
|
std::process::exit(0);
|
||||||
}
|
}
|
||||||
"toggle" => {
|
"toggle" => {
|
||||||
let window = app.get_window("main").unwrap();
|
toggle_window_visibility(app);
|
||||||
if window.is_visible().unwrap() {
|
|
||||||
window.hide().unwrap();
|
|
||||||
} else {
|
|
||||||
window.show().unwrap();
|
|
||||||
window.set_focus().unwrap();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
},
|
},
|
||||||
|
|||||||
+4
-1
@@ -88,7 +88,10 @@ document.addEventListener("DOMContentLoaded", async () => {
|
|||||||
|
|
||||||
// Événements Tauri pour le contrôle de la fenêtre de bureau
|
// Événements Tauri pour le contrôle de la fenêtre de bureau
|
||||||
if (appWindow) {
|
if (appWindow) {
|
||||||
btnMinimize.addEventListener("click", () => appWindow.minimize());
|
// La fenêtre utilise skipTaskbar:true : elle n'apparaît jamais dans la barre des tâches.
|
||||||
|
// Un minimize() classique la rendrait donc irrécupérable. On masque plutôt vers le
|
||||||
|
// system tray, d'où elle peut toujours être restaurée via l'icône de la barre d'état.
|
||||||
|
btnMinimize.addEventListener("click", () => appWindow.hide());
|
||||||
btnClose.addEventListener("click", () => appWindow.hide()); // Masquer vers le tray au clic sur 'Fermer'
|
btnClose.addEventListener("click", () => appWindow.hide()); // Masquer vers le tray au clic sur 'Fermer'
|
||||||
|
|
||||||
// Récupération de l'état réel du démarrage automatique depuis le registre Windows
|
// Récupération de l'état réel du démarrage automatique depuis le registre Windows
|
||||||
|
|||||||
Reference in new issue
Block a user