From 83a7a342ea83441c7fdcea1ac30cc61b2ab11546 Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Tue, 15 Jun 2010 17:21:27 -0700 Subject: removing fullscreen functionality reviewed by richard cc#212 --- indra/newview/app_settings/settings.xml | 37 +--- indra/newview/llappviewer.cpp | 12 +- indra/newview/llchatbar.cpp | 1 - indra/newview/llfloaterhardwaresettings.cpp | 7 +- indra/newview/llfloaterpreference.cpp | 19 +- indra/newview/llnearbychatbar.cpp | 1 - indra/newview/llstartup.cpp | 6 - indra/newview/llstartup.h | 3 - indra/newview/lltoolbar.cpp | 27 +-- indra/newview/lltoolgrab.cpp | 22 --- indra/newview/llviewermenu.cpp | 12 -- indra/newview/llviewerwindow.cpp | 282 +++------------------------- indra/newview/llviewerwindow.h | 18 +- 13 files changed, 51 insertions(+), 396 deletions(-) (limited to 'indra') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 4506ee6e0c..682189fcea 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -3578,17 +3578,6 @@ Value 0 - FullScreen - - Comment - Run SL in fullscreen mode - Persist - 1 - Type - Boolean - Value - 0 - FullScreenAspectRatio Comment @@ -3598,7 +3587,7 @@ Type F32 Value - 1.33329999447 + 3 FullScreenAutoDetectAspectRatio @@ -3609,29 +3598,7 @@ Type Boolean Value - 1 - - FullScreenHeight - - Comment - Fullscreen resolution in height - Persist - 1 - Type - S32 - Value - 768 - - FullScreenWidth - - Comment - Fullscreen resolution in width - Persist - 1 - Type - S32 - Value - 1024 + 0 GesturesMarketplaceURL diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index f4004d5664..475f664917 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2366,16 +2366,9 @@ bool LLAppViewer::initWindow() LLNotificationsUI::LLNotificationManager::getInstance(); - if (gSavedSettings.getBOOL("FullScreen")) - { - // request to go full screen... which will be delayed until login - gViewerWindow->toggleFullscreen(FALSE); - } - if (gSavedSettings.getBOOL("WindowMaximized")) { gViewerWindow->mWindow->maximize(); - gViewerWindow->getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio")); } if (!gNoRender) @@ -2449,11 +2442,10 @@ void LLAppViewer::cleanupSavedSettings() } } - // save window position if not fullscreen + // save window position if not maximized // as we don't track it in callbacks - BOOL fullscreen = gViewerWindow->mWindow->getFullscreen(); BOOL maximized = gViewerWindow->mWindow->getMaximized(); - if (!fullscreen && !maximized) + if (!maximized) { LLCoordScreen window_pos; diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp index 67d5d21b2a..cd279fa10a 100644 --- a/indra/newview/llchatbar.cpp +++ b/indra/newview/llchatbar.cpp @@ -149,7 +149,6 @@ BOOL LLChatBar::handleKeyHere( KEY key, MASK mask ) { BOOL handled = FALSE; - // ALT-RETURN is reserved for windowed/fullscreen toggle if( KEY_RETURN == key ) { if (mask == MASK_CONTROL) diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp index b2564eb2b6..480e4ce3a4 100644 --- a/indra/newview/llfloaterhardwaresettings.cpp +++ b/indra/newview/llfloaterhardwaresettings.cpp @@ -143,10 +143,9 @@ void LLFloaterHardwareSettings::apply() LLWindow* window = gViewerWindow->getWindow(); LLCoordScreen size; window->getSize(&size); - gViewerWindow->changeDisplaySettings(window->getFullscreen(), - size, - gSavedSettings.getBOOL("DisableVerticalSync"), - logged_in); + gViewerWindow->changeDisplaySettings(size, + gSavedSettings.getBOOL("DisableVerticalSync"), + logged_in); } else if (old_anisotropic != LLImageGL::sGlobalUseAnisotropic) { diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 2299cd719c..88339c55e8 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -466,7 +466,7 @@ void LLFloaterPreference::apply() } } - applyResolution(); + //applyResolution(); } void LLFloaterPreference::cancel() @@ -1216,21 +1216,8 @@ void LLFloaterPreference::updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_b void LLFloaterPreference::applyResolution() { gGL.flush(); - - // Screen resolution - S32 num_resolutions; - LLWindow::LLWindowResolution* supported_resolutions = - gViewerWindow->getWindow()->getSupportedResolutions(num_resolutions); - S32 resIndex = getChild("fullscreen combo")->getCurrentIndex(); - if (resIndex == -1) - { - // use highest resolution if nothing selected - resIndex = num_resolutions - 1; - } - gSavedSettings.setS32("FullScreenWidth", supported_resolutions[resIndex].mWidth); - gSavedSettings.setS32("FullScreenHeight", supported_resolutions[resIndex].mHeight); - - gViewerWindow->requestResolutionUpdate(gSavedSettings.getBOOL("FullScreen")); + + gViewerWindow->requestResolutionUpdate(); send_agent_update(TRUE); diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index 46f531fdd9..a300e15edd 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -433,7 +433,6 @@ BOOL LLNearbyChatBar::handleKeyHere( KEY key, MASK mask ) { BOOL handled = FALSE; - // ALT-RETURN is reserved for windowed/fullscreen toggle if( KEY_RETURN == key && mask == MASK_CONTROL) { // shout diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 9bfcceab2f..dbfb0ec4ab 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -2638,12 +2638,6 @@ void reset_login() //--------------------------------------------------------------------------- - -bool LLStartUp::canGoFullscreen() -{ - return gStartupState >= STATE_WORLD_INIT; -} - // Initialize all plug-ins except the web browser (which was initialized // early, before the login screen). JC void LLStartUp::multimediaInit() diff --git a/indra/newview/llstartup.h b/indra/newview/llstartup.h index e1e108ca6a..b2868378bc 100644 --- a/indra/newview/llstartup.h +++ b/indra/newview/llstartup.h @@ -81,9 +81,6 @@ extern LLPointer gStartTexture; class LLStartUp { public: - static bool canGoFullscreen(); - // returns true if we are far enough along in startup to allow - // going full screen // Always use this to set gStartupState so changes are logged static void setStartupState( EStartupState state ); diff --git a/indra/newview/lltoolbar.cpp b/indra/newview/lltoolbar.cpp index 404eab9249..d45915499a 100644 --- a/indra/newview/lltoolbar.cpp +++ b/indra/newview/lltoolbar.cpp @@ -212,23 +212,16 @@ void LLToolBar::layoutButtons() // this function may be called before postBuild(), in which case mResizeHandle won't have been set up yet. if(mResizeHandle != NULL) { - if(!gViewerWindow->getWindow()->getFullscreen()) - { - // Only when running in windowed mode on the Mac, leave room for a resize widget on the right edge of the bar. - width -= RESIZE_HANDLE_WIDTH; - - LLRect r; - r.mLeft = width - pad; - r.mBottom = 0; - r.mRight = r.mLeft + RESIZE_HANDLE_WIDTH; - r.mTop = r.mBottom + RESIZE_HANDLE_HEIGHT; - mResizeHandle->setRect(r); - mResizeHandle->setVisible(TRUE); - } - else - { - mResizeHandle->setVisible(FALSE); - } + // Only when running in windowed mode on the Mac, leave room for a resize widget on the right edge of the bar. + width -= RESIZE_HANDLE_WIDTH; + + LLRect r; + r.mLeft = width - pad; + r.mBottom = 0; + r.mRight = r.mLeft + RESIZE_HANDLE_WIDTH; + r.mTop = r.mBottom + RESIZE_HANDLE_HEIGHT; + mResizeHandle->setRect(r); + mResizeHandle->setVisible(TRUE); } #endif // LL_DARWIN } diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp index cae5e93545..9bd08287f3 100644 --- a/indra/newview/lltoolgrab.cpp +++ b/indra/newview/lltoolgrab.cpp @@ -886,28 +886,6 @@ void LLToolGrab::handleHoverNonPhysical(S32 x, S32 y, MASK mask) // Not dragging. Just showing affordances void LLToolGrab::handleHoverInactive(S32 x, S32 y, MASK mask) { - const F32 ROTATE_ANGLE_PER_SECOND = 40.f * DEG_TO_RAD; - const F32 rotate_angle = ROTATE_ANGLE_PER_SECOND / gFPSClamped; - - // Look for cursor against the edge of the screen - // Only works in fullscreen - if (gSavedSettings.getBOOL("FullScreen")) - { - if (gAgentCamera.cameraThirdPerson() ) - { - if (x == 0) - { - gAgent.yaw(rotate_angle); - //gAgent.setControlFlags(AGENT_CONTROL_YAW_POS); - } - else if (x == (gViewerWindow->getWorldViewWidthScaled() - 1) ) - { - gAgent.yaw(-rotate_angle); - //gAgent.setControlFlags(AGENT_CONTROL_YAW_NEG); - } - } - } - // JC - TODO - change cursor based on gGrabBtnVertical, gGrabBtnSpin lldebugst(LLERR_USER_INPUT) << "hover handled by LLToolGrab (inactive-not over editable object)" << llendl; gViewerWindow->setCursor(UI_CURSOR_TOOLGRAB); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 2c7ae539ce..ee766c262a 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -3788,17 +3788,6 @@ class LLViewMouselook : public view_listener_t } }; -class LLViewFullscreen : public view_listener_t -{ - bool handleEvent(const LLSD& userdata) - { - // we no longer permit full screen mode EXT-6775 - // gViewerWindow->toggleFullscreen(TRUE); - llwarns << "full screen mode no longer supported" << llendl; - return true; - } -}; - class LLViewDefaultUISize : public view_listener_t { bool handleEvent(const LLSD& userdata) @@ -7783,7 +7772,6 @@ void initialize_menus() view_listener_t::addMenu(new LLZoomer(1.2f), "View.ZoomOut"); view_listener_t::addMenu(new LLZoomer(1/1.2f), "View.ZoomIn"); view_listener_t::addMenu(new LLZoomer(DEFAULT_FIELD_OF_VIEW, false), "View.ZoomDefault"); - view_listener_t::addMenu(new LLViewFullscreen(), "View.Fullscreen"); view_listener_t::addMenu(new LLViewDefaultUISize(), "View.DefaultUISize"); view_listener_t::addMenu(new LLViewEnableMouselook(), "View.EnableMouselook"); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 0a65cb7330..ebc42aa5d2 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -1118,28 +1118,7 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated) mActive = TRUE; send_agent_resume(); gAgent.clearAFK(); - if (mWindow->getFullscreen() && !mIgnoreActivate) - { - if (!LLApp::isExiting() ) - { - if (LLStartUp::getStartupState() >= STATE_STARTED) - { - // if we're in world, show a progress bar to hide reloading of textures - llinfos << "Restoring GL during activate" << llendl; - restoreGL(LLTrans::getString("ProgressRestoring")); - } - else - { - // otherwise restore immediately - restoreGL(); - } - } - else - { - llwarns << "Activating while quitting" << llendl; - } - } - + // Unmute audio audio_update_volume(); } @@ -1159,12 +1138,7 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated) } send_agent_pause(); - - if (mWindow->getFullscreen() && !mIgnoreActivate) - { - llinfos << "Stopping GL during deactivation" << llendl; - stopGL(); - } + // Mute audio audio_update_volume(); } @@ -1331,12 +1305,10 @@ LLViewerWindow::LLViewerWindow( const std::string& title, const std::string& name, S32 x, S32 y, S32 width, S32 height, - BOOL fullscreen, BOOL ignore_pixel_depth) + BOOL fullscreen, BOOL ignore_pixel_depth) // fullscreen is no longer used : mWindow(NULL), mActive(TRUE), - mWantFullscreen(fullscreen), - mShowFullscreenProgress(FALSE), mWindowRectRaw(0, height, width, 0), mWindowRectScaled(0, height, width, 0), mWorldViewRectRaw(0, height, width, 0), @@ -1351,7 +1323,6 @@ LLViewerWindow::LLViewerWindow( mIgnoreActivate( FALSE ), mResDirty(false), mStatesDirty(false), - mIsFullscreenChecked(false), mCurrResolutionIndex(0), mViewerWindowListener(new LLViewerWindowListener(this)), mProgressView(NULL) @@ -1911,24 +1882,17 @@ void LLViewerWindow::reshape(S32 width, S32 height) sendShapeToSim(); - - // store the mode the user wants (even if not there yet) - gSavedSettings.setBOOL("FullScreen", mWantFullscreen); - // store new settings for the mode we are in, regardless - if (!mWindow->getFullscreen()) - { - // Only save size if not maximized - BOOL maximized = mWindow->getMaximized(); - gSavedSettings.setBOOL("WindowMaximized", maximized); + // Only save size if not maximized + BOOL maximized = mWindow->getMaximized(); + gSavedSettings.setBOOL("WindowMaximized", maximized); - LLCoordScreen window_size; - if (!maximized - && mWindow->getSize(&window_size)) - { - gSavedSettings.setS32("WindowWidth", window_size.mX); - gSavedSettings.setS32("WindowHeight", window_size.mY); - } + LLCoordScreen window_size; + if (!maximized + && mWindow->getSize(&window_size)) + { + gSavedSettings.setS32("WindowWidth", window_size.mX); + gSavedSettings.setS32("WindowHeight", window_size.mY); } LLViewerStats::getInstance()->setStat(LLViewerStats::ST_WINDOW_WIDTH, (F64)width); @@ -3806,18 +3770,7 @@ void LLViewerWindow::movieSize(S32 new_width, S32 new_height) BORDERHEIGHT = size.mY- y; LLCoordScreen new_size(new_width + BORDERWIDTH, new_height + BORDERHEIGHT); - BOOL disable_sync = gSavedSettings.getBOOL("DisableVerticalSync"); - if (gViewerWindow->mWindow->getFullscreen()) - { - gViewerWindow->changeDisplaySettings(FALSE, - new_size, - disable_sync, - TRUE); - } - else - { - gViewerWindow->mWindow->setSize(new_size); - } + gViewerWindow->mWindow->setSize(new_size); } } @@ -4603,51 +4556,12 @@ void LLViewerWindow::initFonts(F32 zoom_factor) LLFontGL::loadDefaultFonts(); } -void LLViewerWindow::toggleFullscreen(BOOL show_progress) -{ - if (mWindow) - { - mWantFullscreen = mWindow->getFullscreen() ? FALSE : TRUE; - mIsFullscreenChecked = mWindow->getFullscreen() ? FALSE : TRUE; - mShowFullscreenProgress = show_progress; - } -} - -void LLViewerWindow::getTargetWindow(BOOL& fullscreen, S32& width, S32& height) const -{ - fullscreen = mWantFullscreen; - - if (mWindow - && mWindow->getFullscreen() == mWantFullscreen) - { - width = getWindowWidthRaw(); - height = getWindowHeightRaw(); - } - else if (mWantFullscreen) - { - width = gSavedSettings.getS32("FullScreenWidth"); - height = gSavedSettings.getS32("FullScreenHeight"); - } - else - { - width = gSavedSettings.getS32("WindowWidth"); - height = gSavedSettings.getS32("WindowHeight"); - } -} - void LLViewerWindow::requestResolutionUpdate() { mResDirty = true; } -void LLViewerWindow::requestResolutionUpdate(bool fullscreen_checked) -{ - mResDirty = true; - mWantFullscreen = fullscreen_checked; - mIsFullscreenChecked = fullscreen_checked; -} - -BOOL LLViewerWindow::checkSettings() +void LLViewerWindow::checkSettings() { if (mStatesDirty) { @@ -4659,70 +4573,9 @@ BOOL LLViewerWindow::checkSettings() // We want to update the resolution AFTER the states getting refreshed not before. if (mResDirty) { - if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio")) - { - getWindow()->setNativeAspectRatio(0.f); - } - else - { - getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio")); - } - reshape(getWindowWidthRaw(), getWindowHeightRaw()); - - // force aspect ratio - if (mIsFullscreenChecked) - { - LLViewerCamera::getInstance()->setAspect( getWorldViewAspectRatio() ); - } - mResDirty = false; - } - - BOOL is_fullscreen = mWindow->getFullscreen(); - if(mWantFullscreen) - { - LLCoordScreen screen_size; - LLCoordScreen desired_screen_size(gSavedSettings.getS32("FullScreenWidth"), - gSavedSettings.getS32("FullScreenHeight")); - getWindow()->getSize(&screen_size); - if(!is_fullscreen || - screen_size.mX != desired_screen_size.mX - || screen_size.mY != desired_screen_size.mY) - { - if (!LLStartUp::canGoFullscreen()) - { - return FALSE; - } - - LLGLState::checkStates(); - LLGLState::checkTextureChannels(); - changeDisplaySettings(TRUE, - desired_screen_size, - gSavedSettings.getBOOL("DisableVerticalSync"), - mShowFullscreenProgress); - - LLGLState::checkStates(); - LLGLState::checkTextureChannels(); - mStatesDirty = true; - return TRUE; - } - } - else - { - if(is_fullscreen) - { - // Changing to windowed mode. - changeDisplaySettings(FALSE, - LLCoordScreen(gSavedSettings.getS32("WindowWidth"), - gSavedSettings.getS32("WindowHeight")), - TRUE, - mShowFullscreenProgress); - mStatesDirty = true; - return TRUE; - } - } - return FALSE; + } } void LLViewerWindow::restartDisplay(BOOL show_progress_bar) @@ -4739,38 +4592,23 @@ void LLViewerWindow::restartDisplay(BOOL show_progress_bar) } } -BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, BOOL disable_vsync, BOOL show_progress_bar) +BOOL LLViewerWindow::changeDisplaySettings(LLCoordScreen size, BOOL disable_vsync, BOOL show_progress_bar) { BOOL was_maximized = gSavedSettings.getBOOL("WindowMaximized"); - mWantFullscreen = fullscreen; - mShowFullscreenProgress = show_progress_bar; - gSavedSettings.setBOOL("FullScreen", mWantFullscreen); //gResizeScreenTexture = TRUE; - BOOL old_fullscreen = mWindow->getFullscreen(); - if (!old_fullscreen && fullscreen && !LLStartUp::canGoFullscreen()) - { - // Not allowed to switch to fullscreen now, so exit early. - // *NOTE: This case should never be reached, but just-in-case. - return TRUE; - } - U32 fsaa = gSavedSettings.getU32("RenderFSAASamples"); U32 old_fsaa = mWindow->getFSAASamples(); - // going from windowed to windowed - if (!old_fullscreen && !fullscreen) + // if not maximized, use the request size + if (!mWindow->getMaximized()) { - // if not maximized, use the request size - if (!mWindow->getMaximized()) - { - mWindow->setSize(size); - } + mWindow->setSize(size); + } - if (fsaa == old_fsaa) - { - return TRUE; - } + if (fsaa == old_fsaa) + { + return TRUE; } // Close floaters that don't handle settings change @@ -4787,23 +4625,15 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, LLCoordScreen old_size; LLCoordScreen old_pos; mWindow->getSize(&old_size); - BOOL got_position = mWindow->getPosition(&old_pos); - if (!old_fullscreen && fullscreen && got_position) - { - // switching from windowed to fullscreen, so save window position - gSavedSettings.setS32("WindowX", old_pos.mX); - gSavedSettings.setS32("WindowY", old_pos.mY); - } - mWindow->setFSAASamples(fsaa); - result_first_try = mWindow->switchContext(fullscreen, size, disable_vsync); + result_first_try = mWindow->switchContext(false, size, disable_vsync); if (!result_first_try) { // try to switch back mWindow->setFSAASamples(old_fsaa); - result_second_try = mWindow->switchContext(old_fullscreen, old_size, disable_vsync); + result_second_try = mWindow->switchContext(false, old_size, disable_vsync); if (!result_second_try) { @@ -4835,19 +4665,8 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, } BOOL success = result_first_try || result_second_try; - if (success) - { -#if LL_WINDOWS - // Only trigger a reshape after switching to fullscreen; otherwise rely on the windows callback - // (otherwise size is wrong; this is the entire window size, reshape wants the visible window size) - if (fullscreen && result_first_try) -#endif - { - reshape(size.mX, size.mY); - } - } - if (!mWindow->getFullscreen() && success) + if (success) { // maximize window if was maximized, else reposition if (was_maximized) @@ -4865,45 +4684,14 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, mIgnoreActivate = FALSE; gFocusMgr.setKeyboardFocus(keyboard_focus); - mWantFullscreen = mWindow->getFullscreen(); - mShowFullscreenProgress = FALSE; return success; } - -F32 LLViewerWindow::getDisplayAspectRatio() const -{ - if (mWindow->getFullscreen()) - { - if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio")) - { - return mWindow->getNativeAspectRatio(); - } - else - { - return gSavedSettings.getF32("FullScreenAspectRatio"); - } - } - else - { - return mWindow->getNativeAspectRatio(); - } -} - - F32 LLViewerWindow::getWorldViewAspectRatio() const { F32 world_aspect = (F32)mWorldViewRectRaw.getWidth() / (F32)mWorldViewRectRaw.getHeight(); - //F32 window_aspect = (F32)mWindowRectRaw.getWidth() / (F32)mWindowRectRaw.getHeight(); - if (mWindow->getFullscreen()) - { - return world_aspect * mWindow->getPixelAspectRatio(); - } - else - { - return world_aspect; - } + return world_aspect; } void LLViewerWindow::calcDisplayScale() @@ -4911,27 +4699,13 @@ void LLViewerWindow::calcDisplayScale() F32 ui_scale_factor = gSavedSettings.getF32("UIScaleFactor"); LLVector2 display_scale; display_scale.setVec(llmax(1.f / mWindow->getPixelAspectRatio(), 1.f), llmax(mWindow->getPixelAspectRatio(), 1.f)); - F32 height_normalization = gSavedSettings.getBOOL("UIAutoScale") ? ((F32)mWindowRectRaw.getHeight() / display_scale.mV[VY]) / 768.f : 1.f; - if(mWindow->getFullscreen()) - { - display_scale *= (ui_scale_factor * height_normalization); - } - else - { - display_scale *= ui_scale_factor; - } + display_scale *= ui_scale_factor; // limit minimum display scale if (display_scale.mV[VX] < MIN_DISPLAY_SCALE || display_scale.mV[VY] < MIN_DISPLAY_SCALE) { display_scale *= MIN_DISPLAY_SCALE / llmin(display_scale.mV[VX], display_scale.mV[VY]); } - - if (mWindow->getFullscreen()) - { - display_scale.mV[0] = llround(display_scale.mV[0], 2.0f/(F32) mWindowRectRaw.getWidth()); - display_scale.mV[1] = llround(display_scale.mV[1], 2.0f/(F32) mWindowRectRaw.getHeight()); - } if (display_scale != mDisplayScale) { diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h index 410445d97f..1e0200a075 100644 --- a/indra/newview/llviewerwindow.h +++ b/indra/newview/llviewerwindow.h @@ -262,10 +262,6 @@ public: // Is window of our application frontmost? BOOL getActive() const { return mActive; } - void getTargetWindow(BOOL& fullscreen, S32& width, S32& height) const; - // The 'target' is where the user wants the window to be. It may not be - // there yet, because we may be supressing fullscreen prior to login. - const std::string& getInitAlert() { return mInitAlert; } // @@ -380,17 +376,12 @@ public: // Prints window implementation details void dumpState(); - // Request display setting changes - void toggleFullscreen(BOOL show_progress); - // handle shutting down GL and bringing it back up - void requestResolutionUpdate(bool fullscreen_checked); - void requestResolutionUpdate(); // doesn't affect fullscreen - BOOL checkSettings(); + void requestResolutionUpdate(); + void checkSettings(); void restartDisplay(BOOL show_progress_bar); - BOOL changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, BOOL disable_vsync, BOOL show_progress_bar); + BOOL changeDisplaySettings(LLCoordScreen size, BOOL disable_vsync, BOOL show_progress_bar); BOOL getIgnoreDestroyWindow() { return mIgnoreActivate; } - F32 getDisplayAspectRatio() const; F32 getWorldViewAspectRatio() const; const LLVector2& getDisplayScale() const { return mDisplayScale; } void calcDisplayScale(); @@ -415,8 +406,6 @@ public: protected: BOOL mActive; - BOOL mWantFullscreen; - BOOL mShowFullscreenProgress; LLRect mWindowRectRaw; // whole window, including UI LLRect mWindowRectScaled; // whole window, scaled by UI size @@ -470,7 +459,6 @@ protected: bool mResDirty; bool mStatesDirty; - bool mIsFullscreenChecked; // Did the user check the fullscreen checkbox in the display settings U32 mCurrResolutionIndex; boost::scoped_ptr mViewerWindowListener; -- cgit v1.2.3 From 8628e67b825331531669a6b9fea162fcba811d8f Mon Sep 17 00:00:00 2001 From: Leyla Farazha Date: Tue, 15 Jun 2010 17:22:35 -0700 Subject: apply resolution cleanup --- indra/newview/llfloaterpreference.cpp | 14 -------------- 1 file changed, 14 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 88339c55e8..f450b199c8 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -465,8 +465,6 @@ void LLFloaterPreference::apply() gAgent.sendAgentUpdateUserInfo(new_im_via_email,mDirectoryVisibility); } } - - //applyResolution(); } void LLFloaterPreference::cancel() @@ -1213,18 +1211,6 @@ void LLFloaterPreference::updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_b } } -void LLFloaterPreference::applyResolution() -{ - gGL.flush(); - - gViewerWindow->requestResolutionUpdate(); - - send_agent_update(TRUE); - - // Update enable/disable - refresh(); -} - void LLFloaterPreference::onChangeMaturity() { U8 sim_access = gSavedSettings.getU32("PreferredMaturity"); -- cgit v1.2.3 From 67185e19b423ccd31242d220a625eb4f593d4410 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Wed, 16 Jun 2010 16:40:48 -0400 Subject: EXT-5342 FIXED Open in Inventory contents does nothing for certain item types "Open" is added conditionally based on item type. --- indra/newview/llpanelobjectinventory.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'indra') diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index da809b7baa..26f32d656f 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -114,6 +114,7 @@ public: virtual time_t getCreationDate() const; virtual LLUIImagePtr getIcon() const; virtual void openItem(); + virtual BOOL canOpenItem() const { return FALSE; } virtual void closeItem() {} virtual void previewItem(); virtual void selectItem() {} @@ -677,7 +678,7 @@ void LLTaskInvFVBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } } } - else + else if (canOpenItem()) { items.push_back(std::string("Task Open")); if (!isItemCopyable()) @@ -723,6 +724,7 @@ public: virtual BOOL dragOrDrop(MASK mask, BOOL drop, EDragAndDropType cargo_type, void* cargo_data); + virtual BOOL canOpenItem() const { return TRUE; } }; LLTaskCategoryBridge::LLTaskCategoryBridge( @@ -874,6 +876,7 @@ public: const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); }; @@ -900,6 +903,7 @@ public: const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual void performAction(LLInventoryModel* model, std::string action); virtual void buildContextMenu(LLMenuGL& menu, U32 flags); @@ -976,9 +980,8 @@ void LLTaskSoundBridge::buildContextMenu(LLMenuGL& menu, U32 flags) } } } - else + else if (canOpenItem()) { - items.push_back(std::string("Task Open")); if (!isItemCopyable()) { disabled_items.push_back(std::string("Task Open")); @@ -1063,6 +1066,7 @@ public: const std::string& name) : LLTaskScriptBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual BOOL removeItem(); //virtual void buildContextMenu(LLMenuGL& menu); @@ -1124,6 +1128,7 @@ public: const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual BOOL removeItem(); }; @@ -1163,6 +1168,7 @@ public: const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual BOOL removeItem(); }; @@ -1196,6 +1202,7 @@ public: const std::string& name) : LLTaskInvFVBridge(panel, uuid, name) {} + virtual BOOL canOpenItem() const { return TRUE; } virtual void openItem(); virtual BOOL removeItem(); }; -- cgit v1.2.3 From 08515a8eb38a014ce5aedc737ab8c9abc15fccdb Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Wed, 16 Jun 2010 17:49:04 -0400 Subject: EXT-7890 FIXED "Open" on folder of in-world contents does nothing Removed "open" menu option, to be consistent with right-click options on inventory folders elsewhere. --- indra/newview/llpanelobjectinventory.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp index 26f32d656f..869b8beaec 100644 --- a/indra/newview/llpanelobjectinventory.cpp +++ b/indra/newview/llpanelobjectinventory.cpp @@ -725,6 +725,7 @@ public: EDragAndDropType cargo_type, void* cargo_data); virtual BOOL canOpenItem() const { return TRUE; } + virtual void openItem(); }; LLTaskCategoryBridge::LLTaskCategoryBridge( @@ -759,7 +760,8 @@ void LLTaskCategoryBridge::buildContextMenu(LLMenuGL& menu, U32 flags) { std::vector items; std::vector disabled_items; - items.push_back(std::string("Task Open")); + items.push_back(std::string("--no options--")); + disabled_items.push_back(std::string("--no options--")); hide_context_entries(menu, items, disabled_items); } @@ -770,6 +772,10 @@ BOOL LLTaskCategoryBridge::hasChildren() const return FALSE; } +void LLTaskCategoryBridge::openItem() +{ +} + BOOL LLTaskCategoryBridge::startDrag(EDragAndDropType* type, LLUUID* id) const { //llinfos << "LLTaskInvFVBridge::startDrag()" << llendl; -- cgit v1.2.3 From eb973cf6b21457c12272ddb6213e99d332637116 Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Thu, 17 Jun 2010 16:51:04 +0300 Subject: EXT-7755 FIXED Updated condition to not show "No Outfit" as a status when outfit is changing. Implementation details: * Added flag to LLAgentWearables to determining that outfit is changing. Synchronizing it with mLoadingStartedSignal and mLoadedSignal signals. * Check this flag when there is no outfit set to show empty title when outfit is being changed. * Also updated condition to disable "Wear" button when outfit is being changed. Additional improvements: * Removed reference to parent LLSidepanelAppearance from the LLPanelOutfitsInventory. * Now LLSidepanelAppearance is subscribed to mLoadingStartedSignal and mLoadedSignal to update its loading indicator. Known Issue: * When new outfit is being worn its name is shown in title for a short moment (loading indicator is shown at this time). Then it is changed with an empty title and is shown when outfit is already worn. If necessary it should be investigated and fixed in scope of another issue. Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/593/ --HG-- branch : product-engine --- indra/newview/llagentwearables.cpp | 13 ++++++++++--- indra/newview/llagentwearables.h | 7 +++++++ indra/newview/llpaneloutfitsinventory.cpp | 14 +------------- indra/newview/llpaneloutfitsinventory.h | 2 -- indra/newview/llsidepanelappearance.cpp | 8 ++++++-- 5 files changed, 24 insertions(+), 20 deletions(-) (limited to 'indra') diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp index 557b3b0a77..05ed6ec350 100644 --- a/indra/newview/llagentwearables.cpp +++ b/indra/newview/llagentwearables.cpp @@ -166,6 +166,7 @@ struct LLAgentDumper LLAgentWearables::LLAgentWearables() : mWearablesLoaded(FALSE) +, mCOFChangeInProgress(false) { } @@ -1208,7 +1209,7 @@ void LLAgentWearables::createStandardWearablesAllDone() mWearablesLoaded = TRUE; checkWearablesLoaded(); - mLoadedSignal(); + notifyLoadingFinished(); updateServer(); @@ -1460,7 +1461,7 @@ void LLAgentWearables::setWearableOutfit(const LLInventoryItem::item_array_t& it // Start rendering & update the server mWearablesLoaded = TRUE; checkWearablesLoaded(); - mLoadedSignal(); + notifyLoadingFinished(); queryWearableCache(); updateServer(); @@ -1945,7 +1946,7 @@ void LLAgentWearables::updateWearablesLoaded() mWearablesLoaded = (itemUpdatePendingCount()==0); if (mWearablesLoaded) { - mLoadedSignal(); + notifyLoadingFinished(); } } @@ -2111,7 +2112,13 @@ boost::signals2::connection LLAgentWearables::addLoadedCallback(loaded_callback_ void LLAgentWearables::notifyLoadingStarted() { + mCOFChangeInProgress = true; mLoadingStartedSignal(); } +void LLAgentWearables::notifyLoadingFinished() +{ + mCOFChangeInProgress = false; + mLoadedSignal(); +} // EOF diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h index 3295544e04..05913825dd 100644 --- a/indra/newview/llagentwearables.h +++ b/indra/newview/llagentwearables.h @@ -75,6 +75,7 @@ public: BOOL isWearableCopyable(LLWearableType::EType type, U32 index /*= 0*/) const; BOOL areWearablesLoaded() const; + bool isCOFChangeInProgress() const { return mCOFChangeInProgress; } void updateWearablesLoaded(); void checkWearablesLoaded() const; bool canMoveWearable(const LLUUID& item_id, bool closer_to_body); @@ -233,6 +234,7 @@ public: boost::signals2::connection addLoadedCallback(loaded_callback_t cb); void notifyLoadingStarted(); + void notifyLoadingFinished(); private: loading_started_signal_t mLoadingStartedSignal; // should be called before wearables are changed @@ -249,6 +251,11 @@ private: static BOOL mInitialWearablesUpdateReceived; BOOL mWearablesLoaded; std::set mItemsAwaitingWearableUpdate; + + /** + * True if agent's outfit is being changed now. + */ + BOOL mCOFChangeInProgress; //-------------------------------------------------------------------------------- // Support classes diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp index 7e1bff0961..e2563efb7d 100644 --- a/indra/newview/llpaneloutfitsinventory.cpp +++ b/indra/newview/llpaneloutfitsinventory.cpp @@ -224,7 +224,6 @@ private: LLPanelOutfitsInventory::LLPanelOutfitsInventory() : mMyOutfitsPanel(NULL), mCurrentOutfitPanel(NULL), - mParent(NULL), mGearMenu(NULL), mInitialized(false) { @@ -314,11 +313,6 @@ void LLPanelOutfitsInventory::updateVerbs() } } -void LLPanelOutfitsInventory::setParent(LLSidepanelAppearance* parent) -{ - mParent = parent; -} - // virtual void LLPanelOutfitsInventory::onSearchEdit(const std::string& string) { @@ -548,7 +542,7 @@ void LLPanelOutfitsInventory::initListCommandsHandlers() void LLPanelOutfitsInventory::updateListCommands() { bool trash_enabled = isActionEnabled("delete"); - bool wear_enabled = isActionEnabled("wear"); + bool wear_enabled = !gAgentWearables.isCOFChangeInProgress() && isActionEnabled("wear"); bool wear_visible = !isCOFPanelActive(); bool make_outfit_enabled = isActionEnabled("save_outfit"); @@ -827,12 +821,6 @@ BOOL LLPanelOutfitsInventory::isCOFPanelActive() const void LLPanelOutfitsInventory::setWearablesLoading(bool val) { mListCommands->childSetEnabled("wear_btn", !val); - - llassert(mParent); - if (mParent) - { - mParent->setWearablesLoading(val); - } } void LLPanelOutfitsInventory::onWearablesLoaded() diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h index 863dc9dd7c..eabfda7f8c 100644 --- a/indra/newview/llpaneloutfitsinventory.h +++ b/indra/newview/llpaneloutfitsinventory.h @@ -72,7 +72,6 @@ public: // If a compatible listener type is selected, then return a pointer to that. // Otherwise, return NULL. LLFolderViewEventListener* getCorrectListenerForAction(); - void setParent(LLSidepanelAppearance *parent); LLFolderView* getRootFolder(); static LLSidepanelAppearance* getAppearanceSP(); @@ -84,7 +83,6 @@ protected: bool getIsCorrectType(const LLFolderViewEventListener *listenerp) const; private: - LLSidepanelAppearance* mParent; LLSaveFolderState* mSavedFolderState; LLTabContainer* mAppearanceTabs; std::string mFilterSubString; diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp index e2d4f5ad45..0d1be91125 100644 --- a/indra/newview/llsidepanelappearance.cpp +++ b/indra/newview/llsidepanelappearance.cpp @@ -86,6 +86,9 @@ LLSidepanelAppearance::LLSidepanelAppearance() : outfit_observer.addBOFReplacedCallback(boost::bind(&LLSidepanelAppearance::refreshCurrentOutfitName, this, "")); outfit_observer.addBOFChangedCallback(boost::bind(&LLSidepanelAppearance::refreshCurrentOutfitName, this, "")); outfit_observer.addCOFChangedCallback(boost::bind(&LLSidepanelAppearance::refreshCurrentOutfitName, this, "")); + + gAgentWearables.addLoadingStartedCallback(boost::bind(&LLSidepanelAppearance::setWearablesLoading, this, true)); + gAgentWearables.addLoadedCallback(boost::bind(&LLSidepanelAppearance::setWearablesLoading, this, false)); } LLSidepanelAppearance::~LLSidepanelAppearance() @@ -114,7 +117,6 @@ BOOL LLSidepanelAppearance::postBuild() } mPanelOutfitsInventory = dynamic_cast(getChild("panel_outfits_inventory")); - mPanelOutfitsInventory->setParent(this); mOutfitEdit = dynamic_cast(getChild("panel_outfit_edit")); if (mOutfitEdit) @@ -387,7 +389,9 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name) mCurrentLookName->setText(outfit_name); return; } - mCurrentLookName->setText(getString("No Outfit")); + + std::string look_name = gAgentWearables.isCOFChangeInProgress() ? "" : getString("No Outfit"); + mCurrentLookName->setText(look_name); mOpenOutfitBtn->setEnabled(FALSE); } else -- cgit v1.2.3 From cdafe7cef5cb7a9823e34e563cdc2cc498664c53 Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Thu, 17 Jun 2010 17:01:18 +0300 Subject: EXT-7788 FIXED Rename in context menu shows very short text field for new name 1 Made line editor width configurable for alert notifications. 2 Set line editor width to 300px. reviwed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/605/ --HG-- branch : product-engine --- indra/newview/lltoastalertpanel.cpp | 83 ++++++++++++++-------- .../newview/skins/default/xui/en/notifications.xml | 2 +- 2 files changed, 55 insertions(+), 30 deletions(-) (limited to 'indra') diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index db1f4dc4cb..7ba256c870 100644 --- a/indra/newview/lltoastalertpanel.cpp +++ b/indra/newview/lltoastalertpanel.cpp @@ -247,35 +247,6 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal msg_box->setRect( rect ); LLToastPanel::addChild(msg_box); - // Buttons - S32 button_left = (LLToastPanel::getRect().getWidth() - btn_total_width) / 2; - - for( S32 i = 0; i < num_options; i++ ) - { - LLRect button_rect; - - LLButton* btn = LLUICtrlFactory::getInstance()->createFromFile("alert_button.xml", this, LLPanel::child_registry_t::instance()); - if(btn) - { - btn->setName(options[i].first); - btn->setRect(button_rect.setOriginAndSize( button_left, VPAD, button_width, BTN_HEIGHT )); - btn->setLabel(options[i].second); - btn->setFont(font); - - btn->setClickedCallback(boost::bind(&LLToastAlertPanel::onButtonPressed, this, _2, i)); - - mButtonData[i].mButton = btn; - - LLToastPanel::addChild(btn); - - if( i == mDefaultOption ) - { - btn->setFocus(TRUE); - } - } - button_left += button_width + BTN_HPAD; - } - // (Optional) Edit Box if (!edit_text_name.empty()) { @@ -307,9 +278,63 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal mLineEditor->setDrawAsterixes(is_password); setEditTextArgs(notification->getSubstitutions()); + + mLineEditor->setFollowsLeft(); + mLineEditor->setFollowsRight(); + + // find form text input field + LLSD form_text; + for (LLSD::array_const_iterator it = form_sd.beginArray(); it != form_sd.endArray(); ++it) + { + std::string type = (*it)["type"].asString(); + if (type == "text") + { + form_text = (*it); + } + } + + // if form text input field has width attribute + if (form_text.has("width")) + { + // adjust floater width to fit line editor + S32 editor_width = form_text["width"]; + LLRect editor_rect = mLineEditor->getRect(); + U32 width_delta = editor_width - editor_rect.getWidth(); + LLRect toast_rect = getRect(); + reshape(toast_rect.getWidth() + width_delta, toast_rect.getHeight()); + } } } + // Buttons + S32 button_left = (LLToastPanel::getRect().getWidth() - btn_total_width) / 2; + + for( S32 i = 0; i < num_options; i++ ) + { + LLRect button_rect; + + LLButton* btn = LLUICtrlFactory::getInstance()->createFromFile("alert_button.xml", this, LLPanel::child_registry_t::instance()); + if(btn) + { + btn->setName(options[i].first); + btn->setRect(button_rect.setOriginAndSize( button_left, VPAD, button_width, BTN_HEIGHT )); + btn->setLabel(options[i].second); + btn->setFont(font); + + btn->setClickedCallback(boost::bind(&LLToastAlertPanel::onButtonPressed, this, _2, i)); + + mButtonData[i].mButton = btn; + + LLToastPanel::addChild(btn); + + if( i == mDefaultOption ) + { + btn->setFocus(TRUE); + } + } + button_left += button_width + BTN_HPAD; + } + std::string ignore_label; if (form->getIgnoreType() == LLNotificationForm::IGNORE_WITH_DEFAULT_RESPONSE) diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 20a2a7d954..673c095826 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -2098,7 +2098,7 @@ Would you be my friend? type="alertmodal"> New outfit name:
- + [NAME] @@ -61,22 +73,22 @@ To reconnect to Nearby Voice simply close this window. left_delta="0" name="record_stop_btn" top_delta="0" - width="150"> + width="100"> - [[URL] Get Voice Morphing] + right="-10"> + [[URL] Subscribe Now] + top="95"> + label="Voice Name" + name="name" + relative_width="0.60" /> + relative_width="0.30" /> + diff --git a/indra/newview/skins/default/xui/en/panel_voice_effect.xml b/indra/newview/skins/default/xui/en/panel_voice_effect.xml index c575ca468c..93e79b7328 100644 --- a/indra/newview/skins/default/xui/en/panel_voice_effect.xml +++ b/indra/newview/skins/default/xui/en/panel_voice_effect.xml @@ -6,7 +6,7 @@ name="panel_voice_effect" width="200"> - No Voice Morph + Voice Morphing Off Preview Voice Morphing ▶ @@ -19,11 +19,11 @@ follows="left|top|right" height="23" name="voice_effect" - tool_tip="Select a Voice Morphing effect to change your voice." + tool_tip="Select a Voice Morph to change your voice" top_pad="0" width="200"> -- cgit v1.2.3 From cc0d5eae4d59adf41d59248e1b481a66db791b07 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Fri, 18 Jun 2010 16:17:34 +0100 Subject: Fix llpreviewgesture.h build borkage. --- indra/newview/llpreviewgesture.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llpreviewgesture.h b/indra/newview/llpreviewgesture.h index 1814f0d403..b141b14445 100644 --- a/indra/newview/llpreviewgesture.h +++ b/indra/newview/llpreviewgesture.h @@ -35,8 +35,8 @@ #include "llassettype.h" #include "llpreview.h" +#include "llmultigesture.h" -class LLMultiGesture; class LLLineEditor; class LLTextBox; class LLCheckBoxCtrl; -- cgit v1.2.3