UI: Save Temp Window Sizes & Positions

Allow temporary windows (like File Browser, Preferences, Render,
Drivers, Info) to open at their last positions and sizes.

Pull Request: https://projects.blender.org/blender/blender/pulls/104727
This commit is contained in:
Harley Acheson
2025-09-05 00:05:50 +02:00
committed by Harley Acheson
parent ccd8926717
commit 91997ea89f
18 changed files with 184 additions and 196 deletions

View File

@@ -178,6 +178,10 @@ typedef enum {
* Setting cursors via #GHOST_SetCursorGenerator is supported.
*/
GHOST_kCapabilityCursorGenerator = (1 << 11),
/**
* Support accurately placing windows on multiple monitors.
*/
GHOST_kCapabilityMultiMonitorPlacement = (1 << 12),
} GHOST_TCapabilityFlag;
@@ -191,7 +195,7 @@ typedef enum {
GHOST_kCapabilityClipboardImage | GHOST_kCapabilityDesktopSample | GHOST_kCapabilityInputIME | \
GHOST_kCapabilityTrackpadPhysicalDirection | GHOST_kCapabilityWindowDecorationStyles | \
GHOST_kCapabilityKeyboardHyperKey | GHOST_kCapabilityCursorRGBA | \
GHOST_kCapabilityCursorGenerator)
GHOST_kCapabilityCursorGenerator | GHOST_kCapabilityMultiMonitorPlacement)
/* Xtilt and Ytilt represent how much the pen is tilted away from
* vertically upright in either the X or Y direction, with X and Y the

View File

@@ -76,7 +76,9 @@ class GHOST_SystemHeadless : public GHOST_System {
/* Wrap. */
GHOST_kCapabilityCursorRGBA |
/* Wrap. */
GHOST_kCapabilityCursorGenerator)
GHOST_kCapabilityCursorGenerator |
/* Wrap. */
GHOST_kCapabilityMultiMonitorPlacement)
);
}

View File

@@ -801,6 +801,8 @@ GHOST_TCapabilityFlag GHOST_SystemSDL::getCapabilities() const
GHOST_kCapabilityInputIME |
/* No support for window decoration styles. */
GHOST_kCapabilityWindowDecorationStyles |
/* No support for precisely placing windows on multiple monitors. */
GHOST_kCapabilityMultiMonitorPlacement |
/* No support for a Hyper modifier key. */
GHOST_kCapabilityKeyboardHyperKey |
/* No support yet for RGBA mouse cursors. */

View File

@@ -9074,6 +9074,8 @@ GHOST_TCapabilityFlag GHOST_SystemWayland::getCapabilities() const
~(
/* WAYLAND doesn't support accessing the window position. */
GHOST_kCapabilityWindowPosition |
/* WAYLAND cannot precisely place windows among multiple monitors. */
GHOST_kCapabilityMultiMonitorPlacement |
/* WAYLAND doesn't support setting the cursor position directly,
* this is an intentional choice, forcing us to use a software cursor in this case. */
GHOST_kCapabilityCursorWarp |