diff --git a/source/ui/notifier.cpp b/source/ui/notifier.cpp index 837ba0f..a5f8ffc 100644 --- a/source/ui/notifier.cpp +++ b/source/ui/notifier.cpp @@ -182,10 +182,16 @@ void Notifier::renderBackground(int x, int y, int width, int height, float alpha return; } + // Obtener viewport ANTES de deshabilitar presentación lógica + // En modo letterbox (F3), SDL crea un viewport con offset para centrar la imagen + SDL_Rect viewport; + SDL_GetRenderViewport(renderer_, &viewport); + // Crear rectángulo para el fondo (en coordenadas físicas) + // Aplicar offset del viewport para que el fondo se pinte dentro del área visible SDL_FRect bg_rect; - bg_rect.x = static_cast(x); - bg_rect.y = static_cast(y); + bg_rect.x = static_cast(x + viewport.x); + bg_rect.y = static_cast(y + viewport.y); bg_rect.w = static_cast(width); bg_rect.h = static_cast(height); @@ -202,7 +208,7 @@ void Notifier::renderBackground(int x, int y, int width, int height, float alpha SDL_RendererLogicalPresentation presentation_mode; SDL_GetRenderLogicalPresentation(renderer_, &logical_w, &logical_h, &presentation_mode); - // Renderizar sin presentación lógica (coordenadas físicas absolutas) + // Renderizar sin presentación lógica (coordenadas físicas absolutas con offset de viewport) SDL_SetRenderLogicalPresentation(renderer_, 0, 0, SDL_LOGICAL_PRESENTATION_DISABLED); SDL_RenderFillRect(renderer_, &bg_rect);