diff --git a/Common/File/PathBrowser.h b/Common/File/PathBrowser.h index aa7c7c068f..f6a8e782df 100644 --- a/Common/File/PathBrowser.h +++ b/Common/File/PathBrowser.h @@ -22,6 +22,9 @@ public: ~PathBrowser(); void SetPath(const Path &path); + void Refresh() { + HandlePath(); + } bool IsListingReady(); bool GetListing(std::vector &fileInfo, const char *filter = nullptr, bool *cancel = nullptr); diff --git a/UI/EmuScreen.cpp b/UI/EmuScreen.cpp index 92a573c51c..8608df66cd 100644 --- a/UI/EmuScreen.cpp +++ b/UI/EmuScreen.cpp @@ -1452,8 +1452,9 @@ ScreenRenderFlags EmuScreen::render(ScreenRenderMode mode) { using namespace Draw; DrawContext *draw = screenManager()->getDrawContext(); - if (!draw) + if (!draw) { return flags; // shouldn't really happen but I've seen a suspicious stack trace.. + } bool skipBufferEffects = g_Config.bSkipBufferEffects; @@ -1494,10 +1495,10 @@ ScreenRenderFlags EmuScreen::render(ScreenRenderMode mode) { PSP_BeginHostFrame(); gpu->CopyDisplayToOutput(true); PSP_EndHostFrame(); - draw->SetViewport(viewport); - draw->SetScissorRect(0, 0, g_display.pixel_xres, g_display.pixel_yres); - darken(); } + draw->SetViewport(viewport); + draw->SetScissorRect(0, 0, g_display.pixel_xres, g_display.pixel_yres); + darken(); return flags; } diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp index 6852cf9a8b..ce86f87b48 100644 --- a/UI/MainScreen.cpp +++ b/UI/MainScreen.cpp @@ -801,6 +801,11 @@ void GameBrowser::Refresh() { layoutChoice->AddChoice(ImageID("I_LINES")); layoutChoice->SetSelection(*gridStyle_ ? 0 : 1, false); layoutChoice->OnChoice.Handle(this, &GameBrowser::LayoutChange); + topBar->Add(new Choice(ImageID("I_ROTATE_LEFT"), new LayoutParams(64.0f, 64.0f)))->OnClick.Add([=](UI::EventParams &e) { + path_.Refresh(); + Refresh(); + return UI::EVENT_DONE; + }); topBar->Add(new Choice(ImageID("I_GEAR"), new LayoutParams(64.0f, 64.0f)))->OnClick.Handle(this, &GameBrowser::GridSettingsClick); Add(topBar);