Skip to content

Commit

Permalink
Change skin font reload logic
Browse files Browse the repository at this point in the history
  • Loading branch information
CodingJellyfish committed Sep 10, 2024
1 parent fa59810 commit 5a0b15a
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 6 deletions.
13 changes: 8 additions & 5 deletions src/states_screens/options/options_screen_ui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -460,14 +460,14 @@ void OptionsScreenUI::eventCallback(Widget* widget, const std::string& name, con
m_active_base_skin = m_base_skin_selector->getStringValue();
loadCurrentSkinVariants();
UserConfigParams::m_skin_file = getCurrentSpinnerSkin();
onSkinChange();
onSkinChange(false);
m_reload_option->m_focus_name = "base_skinchoice";
m_reload_option->m_focus_right = m_base_skin_selector->isButtonSelected(true/*right*/);
}
else if (name == "variant_skinchoice")
{
UserConfigParams::m_skin_file = getCurrentSpinnerSkin();
onSkinChange();
onSkinChange(true);
m_reload_option->m_focus_name = "variant_skinchoice";
m_reload_option->m_focus_right = m_variant_skin_selector->isButtonSelected(true/*right*/);
}
Expand Down Expand Up @@ -648,14 +648,17 @@ void OptionsScreenUI::reloadGUIEngine()
} // reloadGUIEngine

// -----------------------------------------------------------------------------
void OptionsScreenUI::onSkinChange()
void OptionsScreenUI::onSkinChange(bool is_variant)
{
bool prev_font = GUIEngine::getSkin()->hasFont();
bool change_font = GUIEngine::getSkin()->hasFont();
irr_driver->unsetMaxTextureSize();
GUIEngine::reloadSkin();
// Reload GUIEngine will clear widgets and set max texture Size so we don't do that here
m_reload_option = std::unique_ptr<ReloadOption>(new ReloadOption);
m_reload_option->m_reload_font = prev_font != GUIEngine::getSkin()->hasFont();
// Check either old or new skin use custom_font
change_font |= GUIEngine::getSkin()->hasFont();
// Assume skin variants use the same font set
m_reload_option->m_reload_font = change_font && !is_variant;
m_reload_option->m_reload_skin = true;
} // onSkinChange

Expand Down
2 changes: 1 addition & 1 deletion src/states_screens/options/options_screen_ui.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ class OptionsScreenUI : public GUIEngine::Screen, public GUIEngine::ScreenSingle
int getBaseID(SkinID skin);
int getVariantID(SkinID skin);
std::string getCurrentSpinnerSkin();
void onSkinChange();
void onSkinChange(bool is_variant);
public:
friend class GUIEngine::ScreenSingleton<OptionsScreenUI>;

Expand Down

0 comments on commit 5a0b15a

Please sign in to comment.