Skip to content

Commit 8392fd4

Browse files
committed
WindowModes: Add W_hidden support to winGraphicsWindow
1 parent 785f11c commit 8392fd4

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

panda/src/windisplay/winGraphicsWindow.cxx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,16 @@ set_properties_now(WindowProperties &properties) {
351351
windisplay_cat.warning()
352352
<< "Switching to windowed mode failed!\n";
353353
}
354+
} else if (properties.get_window_mode() != _properties.get_mouse_mode()) {
355+
if (properties.get_window_mode() == WindowProperties::W_hidden) {
356+
ShowWindow(_hWnd, SW_HIDE);
357+
_properties.set_window_mode(properties.get_window_mode());
358+
properties.clear_window_mode();
359+
} else if (!_properties.get_minimized()) {
360+
ShowWindow(_hWnd, SW_SHOWNORMAL);
361+
_properties.set_window_mode(properties.get_window_mode());
362+
properties.clear_window_mode();
363+
}
354364
}
355365
}
356366

@@ -451,8 +461,9 @@ open_window() {
451461
if (_cursor == 0) {
452462
_cursor = LoadCursor(NULL, IDC_ARROW);
453463
}
454-
bool want_foreground = (!_properties.has_foreground() || _properties.get_foreground());
455-
bool want_minimized = (_properties.has_minimized() && _properties.get_minimized()) && !want_foreground;
464+
bool want_hidden = (_properties.has_window_mode() && _properties.get_window_mode() == WindowProperties::W_hidden);
465+
bool want_foreground = (!_properties.has_foreground() || _properties.get_foreground()) && !want_hidden;
466+
bool want_minimized = (_properties.has_minimized() && _properties.get_minimized()) && !want_foreground && !want_hidden;
456467

457468
HWND old_foreground_window = GetForegroundWindow();
458469

@@ -476,6 +487,10 @@ open_window() {
476487
SWP_NOMOVE | SWP_NOSENDCHANGING | SWP_NOSIZE);
477488

478489
// need to do twice to override any minimized flags in StartProcessInfo
490+
if (want_hidden) {
491+
ShowWindow(_hWnd, SW_HIDE);
492+
ShowWindow(_hWnd, SW_HIDE);
493+
}
479494
if (want_minimized) {
480495
ShowWindow(_hWnd, SW_MINIMIZE);
481496
ShowWindow(_hWnd, SW_MINIMIZE);

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy