ContentDB dialog: React to window info changes immediately (#15248)

This commit is contained in:
grorp 2024-10-09 15:08:15 +02:00 committed by GitHub
parent 6ac4447134
commit 07ff2a5c01
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 24 additions and 1 deletions

@ -496,6 +496,11 @@ local function handle_events(event)
return true
end
if event == "WindowInfoChange" then
ui.update()
return true
end
return false
end

@ -305,12 +305,23 @@ local function handle_submit(this, fields)
end
local function handle_events(event)
if event == "WindowInfoChange" then
ui.update()
return true
end
return false
end
function create_package_dialog(package)
assert(package)
local dlg = dialog_create("package_dialog_" .. package.id,
get_formspec,
handle_submit)
handle_submit,
handle_events)
local data = dlg.data
data.package = package

@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "client/renderingengine.h"
#include "client/shader.h"
#include "client/tile.h"
#include "clientdynamicinfo.h"
#include "config.h"
#include "content/content.h"
#include "content/mods.h"
@ -316,6 +317,7 @@ void GUIEngine::run()
);
const bool initial_window_maximized = !g_settings->getBool("fullscreen") &&
g_settings->getBool("window_maximized");
auto last_window_info = ClientDynamicInfo::getCurrent();
FpsControl fps_control;
f32 dtime = 0.0f;
@ -335,6 +337,11 @@ void GUIEngine::run()
updateTopLeftTextSize();
text_height = g_fontengine->getTextHeight();
}
auto window_info = ClientDynamicInfo::getCurrent();
if (!window_info.equal(last_window_info)) {
m_script->handleMainMenuEvent("WindowInfoChange");
last_window_info = window_info;
}
driver->beginScene(true, true, RenderingEngine::MENU_SKY_COLOR);