diff options
| author | Erik Kundiman <erik@megapahit.org> | 2026-09-04 22:57:47 +0800 |
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2026-09-04 22:57:47 +0800 |
| commit | 0400b6693648c58f901c2b492a78e332815bcaa2 (patch) | |
| tree | f974dcd56677c0c6d28d4a4d8fdc2564b86e8845 | |
| parent | 87d8ac40c6fe53ed75e48f9d50e0f0cde2627e40 (diff) | |
| parent | 9818c3e0077dcf262b121370ef191b56c224d51a (diff) | |
Merge tag 'Second_Life_Release#9818c3e0-26.4' into 26.4
| -rw-r--r-- | indra/llwindow/llwindow.h | 5 | ||||
| -rw-r--r-- | indra/llwindow/llwindowmacosx.h | 4 | ||||
| -rw-r--r-- | indra/llwindow/llwindowwin32.h | 4 | ||||
| -rw-r--r-- | indra/newview/llviewerwindow.cpp | 4 |
4 files changed, 15 insertions, 2 deletions
diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h index 327323b018..3f06bf1a50 100644 --- a/indra/llwindow/llwindow.h +++ b/indra/llwindow/llwindow.h @@ -78,7 +78,12 @@ public: virtual void restore() = 0; bool getFullscreen() { return mFullscreen; }; virtual bool getPosition(LLCoordScreen *position) = 0; + + // Returns the platform-defined window size in physical (backing) pixels. + // On macOS: backing content view size (excludes title bar). + // On Windows: outer window frame size (includes title bar and borders). virtual bool getSize(LLCoordScreen *size) = 0; + virtual bool getSize(LLCoordWindow *size) = 0; virtual bool setPosition(LLCoordScreen position) = 0; bool setSize(LLCoordScreen size); diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h index cc6490bb62..a9475c84cc 100644 --- a/indra/llwindow/llwindowmacosx.h +++ b/indra/llwindow/llwindowmacosx.h @@ -50,7 +50,11 @@ public: void restore() override; bool getFullscreen(); bool getPosition(LLCoordScreen *position) override; + + // Content view size in backing pixels (excludes title bar). + // Note: on Windows, getSize(LLCoordScreen) returns the outer window frame size (includes title bar and borders). bool getSize(LLCoordScreen *size) override; + bool getSize(LLCoordWindow *size) override; bool setPosition(LLCoordScreen position) override; bool setSizeImpl(LLCoordScreen size) override; diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h index 0b104c6da8..9ccd0a3ee2 100644 --- a/indra/llwindow/llwindowwin32.h +++ b/indra/llwindow/llwindowwin32.h @@ -62,7 +62,11 @@ public: void restore() override; bool getFullscreen(); bool getPosition(LLCoordScreen *position) override; + + // Outer window frame size in pixels (includes title bar and borders). + // Note OS Specific behavior: On macOS excludes title bar. bool getSize(LLCoordScreen *size) override; + bool getSize(LLCoordWindow *size) override; bool setPosition(LLCoordScreen position) override; bool setSizeImpl(LLCoordScreen size) override; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 0ae7d3fa0c..37d9f73864 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -6104,7 +6104,6 @@ void LLViewerWindow::checkSettings() mStatesDirty = false; } - // We want to update the resolution AFTER the states getting refreshed not before. if (mResDirty) { LLCoordWindow size; @@ -6112,7 +6111,8 @@ void LLViewerWindow::checkSettings() mWindowRectRaw.set(0, size.mY, size.mX, 0); mWindowRectScaled.set(0, ll_round((F32)size.mY / mDisplayScale.mV[VY]), ll_round((F32)size.mX / mDisplayScale.mV[VX]), 0); - LLCoordScreen window_size; + // Deferred resolution update after states have been refreshed. + LLCoordWindow window_size; if (mWindow->getSize(&window_size)) { reshape(window_size.mX, window_size.mY); |
