forked from mirrors/principia
Allow resizing the window, add "autosave screensize" setting to control whether window sizing should be saved
This commit is contained in:
parent
39c5dd2b6d
commit
7956e8a50f
5 changed files with 18 additions and 8 deletions
|
|
@ -643,7 +643,7 @@ tproject_set_args(int argc, char **argv)
|
|||
void
|
||||
tproject_window_size_changed(void)
|
||||
{
|
||||
if (!settings["window_maximized"]->v.b) {
|
||||
if (!settings["window_maximized"]->v.b && settings["autosave_screensize"]->v.b) {
|
||||
settings["window_width"]->v.i = _tms.window_width;
|
||||
settings["window_height"]->v.i = _tms.window_height;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,6 +70,9 @@ _settings::init()
|
|||
this->add("window_height", S_INT32, _tms.window_height);
|
||||
this->add("window_maximized", S_BOOL, 0);
|
||||
|
||||
// False for now to allow for resetting the screensize if resizing somehow breaks it.
|
||||
this->add("autosave_screensize",S_BOOL, false);
|
||||
|
||||
#if defined(TMS_BACKEND_IOS)
|
||||
this->add("shadow_quality", S_UINT8, is_shitty ? 0 : 1);
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -3528,6 +3528,11 @@ struct table_setting_row settings_interface_rows[] = {
|
|||
"A restart is required for this change to take effect",
|
||||
"uiscale",
|
||||
setting_row_type::create_hscale(0.25, 2.0, 0.05),
|
||||
},{
|
||||
"Autosave screen size",
|
||||
"Save the screen size when resizing the window.",
|
||||
"autosave_screensize",
|
||||
setting_row_type::create_checkbox()
|
||||
}, {
|
||||
"Display object ID",
|
||||
"Display ID of object on selection (bottom-left corner).",
|
||||
|
|
|
|||
|
|
@ -208,7 +208,6 @@ main(int argc, char **argv)
|
|||
switch (ev.window.event) {
|
||||
case SDL_WINDOWEVENT_RESIZED:
|
||||
{
|
||||
#ifdef DEBUG
|
||||
tms_infof("Window %d resized to %dx%d",
|
||||
ev.window.windowID, ev.window.data1,
|
||||
ev.window.data2);
|
||||
|
|
@ -226,7 +225,6 @@ main(int argc, char **argv)
|
|||
SDL_SetWindowSize(_window, _tms.window_width, _tms.window_height);
|
||||
|
||||
tproject_window_size_changed();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -537,8 +535,15 @@ tbackend_init_surface()
|
|||
_tms.yppcm = 107.f/2.54f * 1.5f;
|
||||
#endif
|
||||
|
||||
uint32_t flags = 0;
|
||||
|
||||
flags |= SDL_WINDOW_OPENGL;
|
||||
flags |= SDL_WINDOW_SHOWN;
|
||||
flags |= SDL_WINDOW_RESIZABLE;
|
||||
|
||||
tms_progressf("Creating window... ");
|
||||
_window = SDL_CreateWindow("Principia", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, _tms.window_width, _tms.window_height, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
|
||||
_window = SDL_CreateWindow("Principia", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, _tms.window_width, _tms.window_height, flags);
|
||||
|
||||
if (_window == NULL) {
|
||||
tms_progressf("ERROR: %s\n", SDL_GetError());
|
||||
exit(1);
|
||||
|
|
|
|||
|
|
@ -307,7 +307,6 @@ WinMain(HINSTANCE hi, HINSTANCE hp, LPSTR cl, int cs)
|
|||
break;
|
||||
case SDL_WINDOWEVENT_RESIZED:
|
||||
{
|
||||
#ifdef DEBUG
|
||||
tms_infof("Window %d resized to %dx%d",
|
||||
ev.window.windowID, ev.window.data1,
|
||||
ev.window.data2);
|
||||
|
|
@ -323,7 +322,6 @@ WinMain(HINSTANCE hi, HINSTANCE hp, LPSTR cl, int cs)
|
|||
SDL_SetWindowSize(_window, _tms.window_width, _tms.window_height);
|
||||
|
||||
tproject_window_size_changed();
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
case SDL_WINDOWEVENT_MINIMIZED:
|
||||
|
|
@ -523,9 +521,8 @@ tbackend_init_surface()
|
|||
|
||||
flags |= SDL_WINDOW_OPENGL;
|
||||
flags |= SDL_WINDOW_SHOWN;
|
||||
#ifdef DEBUG
|
||||
flags |= SDL_WINDOW_RESIZABLE;
|
||||
#endif
|
||||
|
||||
#ifdef RECORDING
|
||||
flags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue