diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index 2caac90523..29d2860edf 100755 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -1276,20 +1276,23 @@ void LLWindowSDL::x11_set_urgent(BOOL urgent) void LLWindowSDL::flashIcon(F32 seconds) { + if (getMinimized()) // Moved this here from llviewermessage.cpp + { #if !LL_X11 - llinfos << "Stub LLWindowSDL::flashIcon(" << seconds << ")" << llendl; + llinfos << "Stub LLWindowSDL::flashIcon(" << seconds << ")" << llendl; #else - llinfos << "X11 LLWindowSDL::flashIcon(" << seconds << ")" << llendl; + llinfos << "X11 LLWindowSDL::flashIcon(" << seconds << ")" << llendl; - F32 remaining_time = mFlashTimer.getRemainingTimeF32(); - if (remaining_time < seconds) - remaining_time = seconds; - mFlashTimer.reset(); - mFlashTimer.setTimerExpirySec(remaining_time); + F32 remaining_time = mFlashTimer.getRemainingTimeF32(); + if (remaining_time < seconds) + remaining_time = seconds; + mFlashTimer.reset(); + mFlashTimer.setTimerExpirySec(remaining_time); - x11_set_urgent(TRUE); - mFlashing = TRUE; + x11_set_urgent(TRUE); + mFlashing = TRUE; #endif // LL_X11 + } } diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 8bc8d94394..d301487511 100755 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -2837,14 +2837,17 @@ BOOL LLWindowWin32::getClientRectInScreenSpace( RECT* rectp ) void LLWindowWin32::flashIcon(F32 seconds) { - FLASHWINFO flash_info; + if (getMinimized()) // Moved this here from llviewermessage.cpp + { + FLASHWINFO flash_info; - flash_info.cbSize = sizeof(FLASHWINFO); - flash_info.hwnd = mWindowHandle; - flash_info.dwFlags = FLASHW_TRAY; - flash_info.uCount = UINT(seconds / ICON_FLASH_TIME); - flash_info.dwTimeout = DWORD(1000.f * ICON_FLASH_TIME); // milliseconds - FlashWindowEx(&flash_info); + flash_info.cbSize = sizeof(FLASHWINFO); + flash_info.hwnd = mWindowHandle; + flash_info.dwFlags = FLASHW_TRAY; + flash_info.uCount = UINT(seconds / ICON_FLASH_TIME); + flash_info.dwTimeout = DWORD(1000.f * ICON_FLASH_TIME); // milliseconds + FlashWindowEx(&flash_info); + } } F32 LLWindowWin32::getGamma() diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 4646b4245d..6a74b5d3c2 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -3916,7 +3916,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) } LLWindow* viewer_window = gViewerWindow->getWindow(); - if (viewer_window && viewer_window->getMinimized()) + // Make osx dashboard icon bounce when window isn't in focus + //if (viewer_window && viewer_window->getMinimized()) + if (viewer_window) { viewer_window->flashIcon(5.f); }