diff --git a/applications/services/desktop/scenes/desktop_scene_slideshow.c b/applications/services/desktop/scenes/desktop_scene_slideshow.c index 7599241..f3926d2 100644 --- a/applications/services/desktop/scenes/desktop_scene_slideshow.c +++ b/applications/services/desktop/scenes/desktop_scene_slideshow.c @@ -1,4 +1,5 @@ #include +#include #include "../desktop_i.h" #include "../views/desktop_view_slideshow.h" @@ -14,6 +15,7 @@ void desktop_scene_slideshow_on_enter(void* context) { Desktop* desktop = (Desktop*)context; DesktopSlideshowView* slideshow_view = desktop->slideshow_view; + gui_set_hide_status_bar(desktop->gui, true); desktop_view_slideshow_set_callback(slideshow_view, desktop_scene_slideshow_callback, desktop); view_dispatcher_switch_to_view(desktop->view_dispatcher, DesktopViewIdSlideshow); @@ -46,5 +48,6 @@ bool desktop_scene_slideshow_on_event(void* context, SceneManagerEvent event) { void desktop_scene_slideshow_on_exit(void* context) { Desktop* desktop = context; + gui_set_hide_status_bar(desktop->gui, false); storage_common_remove(desktop->storage, SLIDESHOW_FS_PATH); } diff --git a/applications/services/gui/gui.c b/applications/services/gui/gui.c index 68a2873..6dbd0ad 100644 --- a/applications/services/gui/gui.c +++ b/applications/services/gui/gui.c @@ -260,7 +260,9 @@ static void gui_redraw(Gui* gui) { if(!gui_redraw_window(gui)) { gui_redraw_desktop(gui); } - gui_redraw_status_bar(gui, false); + if(!gui->hide_status_bar) { + gui_redraw_status_bar(gui, false); + } } } @@ -512,6 +514,16 @@ bool gui_is_lockdown(const Gui* gui) { return gui->lockdown && !gui->lockdown_inhibit; } +void gui_set_hide_status_bar(Gui* gui, bool hide) { + furi_check(gui); + + gui_lock(gui); + gui->hide_status_bar = hide; + gui_unlock(gui); + + gui_update(gui); +} + Canvas* gui_direct_draw_acquire(Gui* gui) { furi_check(gui); diff --git a/applications/services/gui/gui.h b/applications/services/gui/gui.h index 7eb19b9..5300913 100644 --- a/applications/services/gui/gui.h +++ b/applications/services/gui/gui.h @@ -127,6 +127,16 @@ void gui_set_lockdown_inhibit(Gui* gui, bool inhibit); */ bool gui_is_lockdown(const Gui* gui); +/** Set hide status bar mode + * + * When enabled, the status bar is not drawn on top of the desktop layer. + * Used by the slideshow to show fullscreen content without the status bar overlay. + * + * @param gui Gui instance + * @param hide bool, true to hide status bar + */ +void gui_set_hide_status_bar(Gui* gui, bool hide); + /** Acquire Direct Draw lock and get Canvas instance * * This method return Canvas instance for use in monopoly mode. Direct draw lock diff --git a/applications/services/gui/gui_i.h b/applications/services/gui/gui_i.h index f146ad1..5c7632d 100644 --- a/applications/services/gui/gui_i.h +++ b/applications/services/gui/gui_i.h @@ -53,6 +53,7 @@ struct Gui { bool lockdown; bool lockdown_inhibit; bool direct_draw; + bool hide_status_bar; ViewPortArray_t layers[GuiLayerMAX]; Canvas* canvas; diff --git a/assets/dolphin/external/L1_Inspiration_128x64/frame_0.png b/assets/dolphin/external/L1_Inspiration_128x64/frame_0.png index a6939cb..781990a 100644 Binary files a/assets/dolphin/external/L1_Inspiration_128x64/frame_0.png and b/assets/dolphin/external/L1_Inspiration_128x64/frame_0.png differ diff --git a/assets/dolphin/internal/L1_Tv_128x64/frame_0.png b/assets/dolphin/internal/L1_Tv_128x64/frame_0.png index a6939cb..781990a 100644 Binary files a/assets/dolphin/internal/L1_Tv_128x64/frame_0.png and b/assets/dolphin/internal/L1_Tv_128x64/frame_0.png differ