display.remove_window(*this);
- if(options.fullscreen)
+ if(options.fullscreen && visible)
display.restore_mode();
delete priv;
void Window::reconfigure(const WindowOptions &opts)
{
bool fullscreen_changed = (opts.fullscreen!=options.fullscreen);
- resizing = (opts.width!=options.width || opts.height!=options.height);
-
- options = opts;
- platform_reconfigure(fullscreen_changed);
+ if(opts.width!=options.width || opts.height!=options.height)
+ resizing = true;
if(visible)
{
- if(options.fullscreen)
- display.set_mode(VideoMode(options.width, options.height));
+ if(opts.fullscreen)
+ display.set_mode(VideoMode(opts.width, opts.height));
else if(fullscreen_changed)
display.restore_mode();
}
+
+ options = opts;
+ platform_reconfigure(fullscreen_changed);
}
void Window::set_keyboard_autorepeat(bool r)
if(options.fullscreen)
{
- display.set_mode(VideoMode(options.width, options.height));
+ display.set_mode(VideoMode(options.width, options.height), true);
warp_pointer(options.width/2, options.height/2);
}
}