From 82e5b6798cf9d91656971cb9606377dbb9b8d4ff Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Fri, 10 Oct 2025 07:59:28 +0200 Subject: [PATCH] =?UTF-8?q?Refactor:=20Notificaciones=20muestran=20solo=20?= =?UTF-8?q?la=20=C3=BAltima=20(sin=20cola=20FIFO)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cambio de comportamiento: - ANTES: Notificaciones en cola FIFO esperaban turno secuencialmente - AHORA: Solo se muestra la última notificación inmediatamente Implementación: - show() destruye notificación actual con current_notification_.reset() - Vacía cola completa descartando notificaciones pendientes - Activa nueva notificación inmediatamente sin esperar en cola Resultado: - ✅ Usuario pulsa 5 teclas rápido → Solo ve la 5ª notificación - ✅ Feedback inmediato → Nueva reemplaza vieja instantáneamente - ✅ Sin esperas → Siempre información actualizada - ✅ UX mejorada → Respuesta inmediata a última acción del usuario 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- source/ui/notifier.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/source/ui/notifier.cpp b/source/ui/notifier.cpp index dd5cfd7..837ba0f 100644 --- a/source/ui/notifier.cpp +++ b/source/ui/notifier.cpp @@ -42,6 +42,15 @@ void Notifier::show(const std::string& text, Uint64 duration) { duration = NOTIFICATION_DURATION; } + // NUEVO: Limpiar notificación actual y cola (solo mostrar la última) + // Si hay una notificación activa, destruirla inmediatamente + current_notification_.reset(); + + // Vaciar cola completa (descartar notificaciones pendientes) + while (!notification_queue_.empty()) { + notification_queue_.pop(); + } + // Crear nueva notificación Notification notif; notif.text = text; @@ -52,8 +61,8 @@ void Notifier::show(const std::string& text, Uint64 duration) { notif.y_offset = -50.0f; // Comienza 50px arriba (fuera de pantalla) // NOTA: Los colores se obtienen dinámicamente desde ThemeManager en render() - // Añadir a cola - notification_queue_.push(notif); + // Activar inmediatamente como notificación actual (sin esperar en cola) + current_notification_ = std::make_unique(notif); } void Notifier::update(Uint64 current_time) {