From 45c7c711ad6a878ab2650feb22899353f8ac3063 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Sun, 3 Feb 2019 12:31:36 -0500 Subject: [PATCH] You need to wake upYou need to wake upYou need to wake upYou need to wake up YouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUp ouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpY uNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYo NeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYou eedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouN edToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNe dToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNee ToWakeUpYouNeedToWakeUpNeedWAKEUPNeedYouNeedYouWakeUpYouNeed oWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedT WakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedTo akeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToW keUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWa eUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWak UpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWake pYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeUpYouNeedToWakeU [~~~~~~~~~~~~~~~~~~~~~~~~~~WakeUp~~~~~~~~~~~~~~~~~~~~~~~~~~] --- indra/llwindow/llwindow.h | 2 +- indra/llwindow/llwindowheadless.h | 2 +- indra/llwindow/llwindowmesaheadless.h | 2 +- indra/llwindow/llwindowsdl.cpp | 2 +- indra/llwindow/llwindowsdl.h | 2 +- indra/llwindow/llwindowwin32.cpp | 3 ++- indra/llwindow/llwindowwin32.h | 2 +- indra/newview/llstartup.cpp | 4 +++- 8 files changed, 11 insertions(+), 8 deletions(-) diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h index d0cb3802d..cf92c3a51 100644 --- a/indra/llwindow/llwindow.h +++ b/indra/llwindow/llwindow.h @@ -66,7 +66,7 @@ public: }; public: virtual void postInitialized() {} - virtual void show() = 0; + virtual void show(bool focus = true) = 0; virtual void hide() = 0; virtual void close() = 0; virtual BOOL getVisible() = 0; diff --git a/indra/llwindow/llwindowheadless.h b/indra/llwindow/llwindowheadless.h index 491f9afd2..ae3cd90f2 100644 --- a/indra/llwindow/llwindowheadless.h +++ b/indra/llwindow/llwindowheadless.h @@ -32,7 +32,7 @@ class LLWindowHeadless : public LLWindow { public: - /*virtual*/ void show() {}; + /*virtual*/ void show(bool) {}; /*virtual*/ void hide() {}; /*virtual*/ void close() {}; /*virtual*/ BOOL getVisible() {return FALSE;}; diff --git a/indra/llwindow/llwindowmesaheadless.h b/indra/llwindow/llwindowmesaheadless.h index 6c0e872e2..e85c27f87 100644 --- a/indra/llwindow/llwindowmesaheadless.h +++ b/indra/llwindow/llwindowmesaheadless.h @@ -35,7 +35,7 @@ class LLWindowMesaHeadless : public LLWindow { public: - /*virtual*/ void show() {}; + /*virtual*/ void show(bool) {}; /*virtual*/ void hide() {}; /*virtual*/ void close() {}; /*virtual*/ BOOL getVisible() {return FALSE;}; diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index 2ca113f55..3d6919393 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -790,7 +790,7 @@ LLWindowSDL::~LLWindowSDL() } -void LLWindowSDL::show() +void LLWindowSDL::show(bool focus) { // *FIX: What to do with SDL? } diff --git a/indra/llwindow/llwindowsdl.h b/indra/llwindow/llwindowsdl.h index a180be319..9a80856c5 100644 --- a/indra/llwindow/llwindowsdl.h +++ b/indra/llwindow/llwindowsdl.h @@ -49,7 +49,7 @@ class LLWindowSDL : public LLWindow { public: - /*virtual*/ void show(); + /*virtual*/ void show(bool focus); /*virtual*/ void hide(); /*virtual*/ void close(); /*virtual*/ BOOL getVisible(); diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 4a3a043d4..a12e4a1de 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -717,9 +717,10 @@ void LLWindowWin32::postInitialized() mCallbacks->handleDPIScaleChange(this, xDPIScale, yDPIScale); } -void LLWindowWin32::show() +void LLWindowWin32::show(bool take_focus) { ShowWindow(mWindowHandle, SW_SHOW); + if (!take_focus) return; SetForegroundWindow(mWindowHandle); SetFocus(mWindowHandle); } diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h index 4f8693dbe..ca82f7512 100644 --- a/indra/llwindow/llwindowwin32.h +++ b/indra/llwindow/llwindowwin32.h @@ -41,7 +41,7 @@ class LLWindowWin32 : public LLWindow { public: /*virtual*/ void postInitialized(); - /*virtual*/ void show(); + /*virtual*/ void show(bool focus = true); /*virtual*/ void hide(); /*virtual*/ void close(); /*virtual*/ BOOL getVisible(); diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index b58f5cd04..56e690bf7 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -945,8 +945,10 @@ bool idle_startup() // Push our window frontmost // Singu Note: Actually, don't! But flash the window to let the user know + auto& window(*gViewerWindow->getWindow()); + window.show(false); if (gSavedSettings.getBOOL("LiruFlashWhenMinimized")) // No, we're not minimized, but if you flash my bar, I will give you the biggest SIGSEGV ~Liru <3 - gViewerWindow->getWindow()->flashIcon(5.f); + window.flashIcon(5.f); display_startup(); // DEV-16927. The following code removes errant keystrokes that happen while the window is being