fix has_origin assertion
This commit is contained in:
parent
eabae807bd
commit
152ad1a173
|
|
@ -583,18 +583,25 @@ set_properties_now(WindowProperties &properties) {
|
|||
} else {
|
||||
reshape_props.set_size(_properties.get_x_size(), _properties.get_y_size());
|
||||
}
|
||||
|
||||
if (properties.has_origin() && !is_fullscreen()) {
|
||||
reshape_props.set_origin(properties.get_x_origin(), properties.get_y_origin());
|
||||
} else {
|
||||
} else if (_properties.has_origin()) {
|
||||
reshape_props.set_origin(_properties.get_x_origin(), _properties.get_y_origin());
|
||||
}
|
||||
|
||||
bool has_origin = reshape_props.has_origin();
|
||||
int x_origin = 0, y_origin = 0;
|
||||
if (has_origin) {
|
||||
x_origin = reshape_props.get_x_origin();
|
||||
y_origin = reshape_props.get_y_origin();
|
||||
}
|
||||
|
||||
if (reshape_props.get_x_size() != _properties.get_x_size() ||
|
||||
reshape_props.get_y_size() != _properties.get_y_size() ||
|
||||
reshape_props.get_x_origin() != _properties.get_x_origin() ||
|
||||
reshape_props.get_y_origin() != _properties.get_y_origin()) {
|
||||
if (do_reshape_request(reshape_props.get_x_origin(),
|
||||
reshape_props.get_y_origin(),
|
||||
(has_origin && (x_origin != _properties.get_x_origin() ||
|
||||
y_origin != _properties.get_y_origin()))) {
|
||||
if (do_reshape_request(x_origin, y_origin, has_origin,
|
||||
reshape_props.get_x_size(),
|
||||
reshape_props.get_y_size())) {
|
||||
system_changed_size(reshape_props.get_x_size(),
|
||||
|
|
@ -660,7 +667,8 @@ reset_window(bool swapchain) {
|
|||
// or false if there was a problem.
|
||||
////////////////////////////////////////////////////////////////////
|
||||
bool GraphicsWindow::
|
||||
do_reshape_request(int x_origin, int y_origin, int x_size, int y_size) {
|
||||
do_reshape_request(int x_origin, int y_origin, bool has_origin,
|
||||
int x_size, int y_size) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ protected:
|
|||
virtual bool open_window();
|
||||
virtual void reset_window(bool swapchain);
|
||||
|
||||
virtual bool do_reshape_request(int x_origin, int y_origin,
|
||||
virtual bool do_reshape_request(int x_origin, int y_origin, bool has_origin,
|
||||
int x_size, int y_size);
|
||||
|
||||
// It is an error to call any of the following methods from any
|
||||
|
|
|
|||
|
|
@ -546,10 +546,13 @@ fullscreen_restored(WindowProperties &) {
|
|||
// or false if there was a problem.
|
||||
////////////////////////////////////////////////////////////////////
|
||||
bool WinGraphicsWindow::
|
||||
do_reshape_request(int x_origin, int y_origin, int x_size, int y_size) {
|
||||
windisplay_cat.info()
|
||||
<< "Got reshape request (" << x_origin << ", " << y_origin
|
||||
<< ", " << x_size << ", " << y_size << ")\n";
|
||||
do_reshape_request(int x_origin, int y_origin, bool has_origin,
|
||||
int x_size, int y_size) {
|
||||
if (windisplay_cat.is_debug()) {
|
||||
windisplay_cat.debug()
|
||||
<< "Got reshape request (" << x_origin << ", " << y_origin
|
||||
<< ", " << has_origin << ", " << x_size << ", " << y_size << ")\n";
|
||||
}
|
||||
if (!is_fullscreen()) {
|
||||
// Compute the appropriate size and placement for the window,
|
||||
// including decorations.
|
||||
|
|
@ -558,9 +561,18 @@ do_reshape_request(int x_origin, int y_origin, int x_size, int y_size) {
|
|||
x_origin + x_size, y_origin + y_size);
|
||||
WINDOWINFO wi;
|
||||
GetWindowInfo(_hWnd, &wi);
|
||||
AdjustWindowRectEx(&view_rect, wi.dwStyle, false, wi.dwExStyle);
|
||||
AdjustWindowRectEx(&view_rect, wi.dwStyle, FALSE, wi.dwExStyle);
|
||||
|
||||
SetWindowPos(_hWnd, NULL, view_rect.left, view_rect.top,
|
||||
if (_properties.has_origin()) {
|
||||
x_origin = view_rect.left;
|
||||
y_origin = view_rect.top;
|
||||
|
||||
} else {
|
||||
x_origin = CW_USEDEFAULT;
|
||||
y_origin = CW_USEDEFAULT;
|
||||
}
|
||||
|
||||
SetWindowPos(_hWnd, NULL, x_origin, y_origin,
|
||||
view_rect.right - view_rect.left,
|
||||
view_rect.bottom - view_rect.top,
|
||||
SWP_NOZORDER | SWP_NOMOVE | SWP_NOSENDCHANGING);
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ protected:
|
|||
virtual void fullscreen_minimized(WindowProperties &properties);
|
||||
virtual void fullscreen_restored(WindowProperties &properties);
|
||||
|
||||
virtual bool do_reshape_request(int x_origin, int y_origin,
|
||||
virtual bool do_reshape_request(int x_origin, int y_origin, bool has_origin,
|
||||
int x_size, int y_size);
|
||||
|
||||
virtual void handle_reshape();
|
||||
|
|
|
|||
Loading…
Reference in New Issue