Desktop version gui scaling restored

This commit is contained in:
Yousef Khadadeh 2026-05-17 19:14:03 +03:00
parent 40688176d9
commit c4005da3c9
8 changed files with 18 additions and 5 deletions

View file

@ -117,10 +117,7 @@ float GUIHolder::final_gui_scale() {
}
void GUIHolder::calculate_final_gui_scale() {
finalCalculatedGuiScale = final_gui_scale_not_fit();
//Vector2f maxWindowSizeBeforeForcedFit = final_gui_scale_not_fit() * Vector2f{700.0f, 700.0f};
//Vector2f fitRatio = {main.window.size.x() / maxWindowSizeBeforeForcedFit.x(), main.window.size.y() / maxWindowSizeBeforeForcedFit.y()};
//finalCalculatedGuiScale = final_gui_scale_not_fit() * std::min(std::min(fitRatio.x(), fitRatio.y()), 1.0f);
finalCalculatedGuiScale = main.calculate_gui_scale();
}
float GUIHolder::final_gui_scale_not_fit() {

View file

@ -55,9 +55,10 @@ class GUIHolder {
std::optional<InputManager::TextBoxStartInfo> get_text_box_start_info();
float final_gui_scale();
float final_gui_scale_not_fit();
private:
void calculate_final_gui_scale();
float final_gui_scale_not_fit();
float finalCalculatedGuiScale;

View file

@ -557,6 +557,10 @@ void MainProgram::run_new_screen_func() {
}
}
float MainProgram::calculate_gui_scale() {
return screen->calculate_gui_scale();
}
void MainProgram::set_screen(std::function<std::unique_ptr<Screen>(std::unique_ptr<Screen>)> screenFunc) {
newScreenFunc = screenFunc;
}

View file

@ -201,6 +201,8 @@ class MainProgram {
std::shared_ptr<FileDownloader::DownloadData> versionFile;
} updateCheckerData;
float calculate_gui_scale();
private:
std::unordered_set<World*> tabsToClose;
void close_set_to_close_tabs();

View file

@ -94,3 +94,9 @@ void DesktopDrawingProgramScreen::on_tab_close() {
else
main.switch_to_tab(0);
}
float DesktopDrawingProgramScreen::calculate_gui_scale() {
Vector2f maxWindowSizeBeforeForcedFit = main.g.final_gui_scale_not_fit() * Vector2f{700.0f, 700.0f};
Vector2f fitRatio = {main.window.size.x() / maxWindowSizeBeforeForcedFit.x(), main.window.size.y() / maxWindowSizeBeforeForcedFit.y()};
return main.g.final_gui_scale_not_fit() * std::min(std::min(fitRatio.x(), fitRatio.y()), 1.0f);
}

View file

@ -30,6 +30,7 @@ class DesktopDrawingProgramScreen : public DrawingProgramScreen {
virtual void input_text_key_callback(const InputManager::KeyCallbackArgs& key) override;
virtual void open_file_selector(const std::string& filePickerName, const std::vector<ExtensionFilter>& extensionFilters, OpenFileSelectorCallback postSelectionFunc, const std::string& fileName = "", bool isSaving = false) override;
virtual void on_tab_close() override;
virtual float calculate_gui_scale() override;
private:
Toolbar toolbar;

View file

@ -85,6 +85,7 @@ void Screen::input_window_scale_callback(const InputManager::WindowScaleCallback
void Screen::input_app_about_to_go_to_background_callback() {}
void Screen::input_app_about_to_go_to_foreground_callback() {}
void Screen::on_tab_close() {}
float Screen::calculate_gui_scale() { return main.g.final_gui_scale_not_fit(); }
std::optional<InputManager::TextBoxStartInfo> Screen::get_text_box_start_info() { return std::nullopt; }
Screen::~Screen() {}

View file

@ -66,6 +66,7 @@ class Screen {
virtual void input_window_scale_callback(const InputManager::WindowScaleCallbackArgs& w);
virtual void input_app_about_to_go_to_background_callback();
virtual void input_app_about_to_go_to_foreground_callback();
virtual float calculate_gui_scale();
virtual void on_tab_close();
virtual std::optional<InputManager::TextBoxStartInfo> get_text_box_start_info();