summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llpreprocessor.h4
-rw-r--r--indra/llui/llfloater.cpp120
-rw-r--r--indra/llui/llfloater.h8
-rw-r--r--indra/llui/llmenugl.cpp1
-rw-r--r--indra/llui/llview.cpp29
-rw-r--r--indra/llui/llview.h6
-rw-r--r--indra/newview/llchatbar.cpp2
-rw-r--r--indra/newview/lldynamictexture.cpp1
-rw-r--r--indra/newview/llfloaterabout.cpp3
-rw-r--r--indra/newview/llfloaterimagepreview.cpp3
-rw-r--r--indra/newview/llfolderview.cpp9
-rw-r--r--indra/newview/llinventorymodel.cpp2
-rw-r--r--indra/newview/llpreview.cpp1
-rw-r--r--indra/newview/llpreviewtexture.cpp51
-rw-r--r--indra/newview/llselectmgr.cpp35
-rw-r--r--indra/newview/llstartup.cpp5
-rw-r--r--indra/newview/lltoolfocus.cpp4
-rw-r--r--indra/newview/llviewerdisplay.cpp28
-rw-r--r--indra/newview/llviewerwindow.cpp49
-rw-r--r--indra/newview/llviewerwindow.h8
20 files changed, 129 insertions, 240 deletions
diff --git a/indra/llcommon/llpreprocessor.h b/indra/llcommon/llpreprocessor.h
index f86a9b5a9e..f4e24025d5 100644
--- a/indra/llcommon/llpreprocessor.h
+++ b/indra/llcommon/llpreprocessor.h
@@ -32,7 +32,9 @@
#define LL_LIBXUL_ENABLED 1
#elif LL_LINUX
#define LL_QUICKTIME_ENABLED 0
- #define LL_LIBXUL_ENABLED 1
+ #ifndef LL_LIBXUL_ENABLED
+ #define LL_LIBXUL_ENABLED 1
+ #endif // def LL_LIBXUL_ENABLED
#endif
#if LL_LIBXUL_ENABLED && !defined(MOZILLA_INTERNAL_API)
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index b56ae5167b..3b855a6360 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -487,17 +487,6 @@ void LLFloater::setVisible( BOOL visible )
}
}
-LLView* LLFloater::getRootMostFastFrameView()
-{
- // trying to render a background floater in a fast frame, abort!!!
- //if (!isFrontmost())
- //{
- // gViewerWindow->finishFastFrame();
- //}
-
- return LLView::getRootMostFastFrameView();
-}
-
void LLFloater::open() /* Flawfinder: ignore */
{
//RN: for now, we don't allow rehosting from one multifloater to another
@@ -673,7 +662,7 @@ const LLString& LLFloater::getTitle() const
void LLFloater::translate(S32 x, S32 y)
{
- LLView::translate(x, y);
+ LLPanel::translate(x, y);
if (x != 0 || y != 0)
{
@@ -703,7 +692,7 @@ BOOL LLFloater::canSnapTo(LLView* other_view)
}
}
- return LLView::canSnapTo(other_view);
+ return LLPanel::canSnapTo(other_view);
}
void LLFloater::snappedTo(LLView* snap_view)
@@ -1194,9 +1183,9 @@ void LLFloater::onClickTearOff(void *userdata)
self->open(); /* Flawfinder: ignore */
self->setRect(new_rect);
gFloaterView->adjustToFitScreen(self, FALSE);
- self->setCanDrag(TRUE);
- self->setCanResize(TRUE);
- self->setCanMinimize(TRUE);
+ self->setCanDrag(TRUE);
+ // give focus to new window to keep continuity for the user
+ self->setFocus(TRUE);
}
else //Attach to parent.
{
@@ -1347,6 +1336,17 @@ void LLFloater::draw()
focused_child->setVisible(TRUE);
}
drawChild(focused_child);
+
+ // update tearoff button for torn off floaters
+ // when last host goes away
+ if (mCanTearOff && !getHost())
+ {
+ LLFloater* old_host = gFloaterView->getFloaterByHandle(mLastHostHandle);
+ if (!old_host)
+ {
+ setCanTearOff(FALSE);
+ }
+ }
}
}
@@ -2453,31 +2453,12 @@ LLString LLMultiFloater::getWidgetTag() const
return LL_MULTI_FLOATER_TAG;
}
-void LLMultiFloater::init(const LLString& title, BOOL resizable,
- S32 min_width, S32 min_height, BOOL drag_on_left,
- BOOL minimizable, BOOL close_btn)
-{
- LLFloater::init(title, resizable, min_width, min_height, drag_on_left, minimizable, close_btn);
-
- /*mTabContainer = new LLTabContainer("Preview Tabs",
- LLRect(LLPANEL_BORDER_WIDTH, mRect.getHeight() - LLFLOATER_HEADER_SIZE, mRect.getWidth() - LLPANEL_BORDER_WIDTH, 0),
- mTabPos,
- NULL,
- NULL);
- mTabContainer->setFollowsAll();
- if (mResizable && mTabPos == LLTabContainerCommon::BOTTOM)
- {
- mTabContainer->setRightTabBtnOffset(RESIZE_HANDLE_WIDTH);
- }
-
- addChild(mTabContainer);*/
-}
-
void LLMultiFloater::open() /* Flawfinder: ignore */
{
if (mTabContainer->getTabCount() > 0)
{
LLFloater::open(); /* Flawfinder: ignore */
+ resizeToContents();
}
else
{
@@ -2549,16 +2530,9 @@ void LLMultiFloater::growToFit(LLFloater* floaterp, S32 width, S32 height)
// store new width and height with this floater so that it will keep its size when detached
found_data_it->second.mWidth = width;
found_data_it->second.mHeight = height;
-
- S32 cur_height = mRect.getHeight();
- reshape(llmax(mRect.getWidth(), width + LLPANEL_BORDER_WIDTH * 2), llmax(mRect.getHeight(), height + LLFLOATER_HEADER_SIZE + TABCNTR_HEADER_HEIGHT + (LLPANEL_BORDER_WIDTH * 2)));
-
- // make sure upper left corner doesn't move
- translate(0, mRect.getHeight() - cur_height);
-
- // Try to keep whole view onscreen, don't allow partial offscreen.
- gFloaterView->adjustToFitScreen(this, FALSE);
}
+
+ resizeToContents();
}
/**
@@ -2699,24 +2673,7 @@ void LLMultiFloater::removeFloater(LLFloater* floaterp)
if (mAutoResize)
{
- floater_data_map_t::iterator floater_it;
- S32 new_width = 0;
- S32 new_height = 0;
- for (floater_it = mFloaterDataMap.begin(); floater_it != mFloaterDataMap.end(); ++floater_it)
- {
- new_width = llmax(new_width, floater_it->second.mWidth + LLPANEL_BORDER_WIDTH * 2);
- new_height = llmax(new_height, floater_it->second.mHeight + LLFLOATER_HEADER_SIZE + TABCNTR_HEADER_HEIGHT);
- }
-
- S32 cur_height = mRect.getHeight();
-
- reshape(new_width, new_height);
-
- // make sure upper left corner doesn't move
- translate(0, cur_height - new_height);
-
- // Try to keep whole view onscreen, don't allow partial offscreen.
- gFloaterView->adjustToFitScreen(this, FALSE);
+ resizeToContents();
}
tabOpen((LLFloater*)mTabContainer->getCurrentPanel(), false);
@@ -2858,6 +2815,43 @@ BOOL LLMultiFloater::postBuild()
return FALSE;
}
+void LLMultiFloater::resizeToContents()
+{
+ // we're already in the middle of a reshape, don't interrupt it
+ floater_data_map_t::iterator floater_it;
+ S32 new_width = 0;
+ S32 new_height = 0;
+ for (floater_it = mFloaterDataMap.begin(); floater_it != mFloaterDataMap.end(); ++floater_it)
+ {
+ new_width = llmax(new_width, floater_it->second.mWidth + LLPANEL_BORDER_WIDTH * 2);
+ new_height = llmax(new_height, floater_it->second.mHeight + LLFLOATER_HEADER_SIZE + TABCNTR_HEADER_HEIGHT);
+ }
+
+ S32 new_min_width = 0;
+ S32 new_min_height = 0;
+ S32 tab_idx;
+ for (tab_idx = 0; tab_idx < mTabContainer->getTabCount(); ++tab_idx)
+ {
+ LLFloater* floaterp = (LLFloater*)mTabContainer->getPanelByIndex(tab_idx);
+ if (floaterp)
+ {
+ new_min_width = llmax(new_min_width, floaterp->getMinWidth() + LLPANEL_BORDER_WIDTH * 2);
+ new_min_height = llmax(new_min_height, floaterp->getMinHeight() + LLFLOATER_HEADER_SIZE + TABCNTR_HEADER_HEIGHT);
+ }
+ }
+ setResizeLimits(new_min_width, new_min_height);
+
+ S32 cur_height = mRect.getHeight();
+
+ reshape(new_width, new_height);
+
+ // make sure upper left corner doesn't move
+ translate(0, cur_height - new_height);
+
+ // Try to keep whole view onscreen, don't allow partial offscreen.
+ gFloaterView->adjustToFitScreen(this, FALSE);
+}
+
// virtual
LLXMLNodePtr LLFloater::getXML(bool save_children) const
{
diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h
index 05e513ed1d..79483db297 100644
--- a/indra/llui/llfloater.h
+++ b/indra/llui/llfloater.h
@@ -181,8 +181,6 @@ public:
void clearSnapTarget() { mSnappedTo.markDead(); }
LLViewHandle getSnapTarget() { return mSnappedTo; }
- /*virtual*/ LLView* getRootMostFastFrameView();
-
static void closeFocusedFloater();
static void onClickClose(void *userdata);
@@ -341,10 +339,6 @@ public:
LLMultiFloater(const LLString& name, const LLString& rect_control, LLTabContainer::TabPosition tab_pos = LLTabContainer::TOP, BOOL auto_resize = FALSE);
virtual ~LLMultiFloater();
- virtual void init(const LLString& title, BOOL resizable,
- S32 min_width, S32 min_height, BOOL drag_on_left,
- BOOL minimizable, BOOL close_btn);
-
virtual BOOL postBuild();
/*virtual*/ void open(); /* Flawfinder: ignore */
/*virtual*/ void onClose(bool app_quitting);
@@ -378,6 +372,8 @@ public:
void setTabContainer(LLTabContainerCommon* tab_container) { if (!mTabContainer) mTabContainer = tab_container; }
static void onTabSelected(void* userdata, bool);
+ virtual void resizeToContents();
+
protected:
struct LLFloaterData
{
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp
index 4c40d99178..a7c9cf0f92 100644
--- a/indra/llui/llmenugl.cpp
+++ b/indra/llui/llmenugl.cpp
@@ -3044,7 +3044,6 @@ void LLMenuGL::setVisible(BOOL visible)
mFadeTimer.stop();
}
- //gViewerWindow->finishFastFrame();
LLView::setVisible(visible);
}
}
diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp
index 8c3d2362c5..02a99b00cd 100644
--- a/indra/llui/llview.cpp
+++ b/indra/llui/llview.cpp
@@ -32,7 +32,6 @@
BOOL LLView::sDebugRects = FALSE;
BOOL LLView::sDebugKeys = FALSE;
S32 LLView::sDepth = 0;
-LLView* LLView::sFastFrameView = NULL;
BOOL LLView::sDebugMouseHandling = FALSE;
LLString LLView::sMouseHandlerMessage;
S32 LLView::sSelectID = GL_NAME_UI_RESERVED;
@@ -93,7 +92,6 @@ LLView::LLView() :
mSaveToXML(TRUE),
mIsFocusRoot(FALSE),
mLastVisible(TRUE),
- mRenderInFastFrame(TRUE),
mSpanChildren(FALSE),
mVisible(TRUE),
mHidden(FALSE),
@@ -114,7 +112,6 @@ LLView::LLView(const LLString& name, BOOL mouse_opaque) :
mSaveToXML(TRUE),
mIsFocusRoot(FALSE),
mLastVisible(TRUE),
- mRenderInFastFrame(TRUE),
mSpanChildren(FALSE),
mVisible(TRUE),
mHidden(FALSE),
@@ -138,7 +135,6 @@ LLView::LLView(
mSaveToXML(TRUE),
mIsFocusRoot(FALSE),
mLastVisible(TRUE),
- mRenderInFastFrame(TRUE),
mSpanChildren(FALSE),
mVisible(TRUE),
mHidden(FALSE),
@@ -180,11 +176,6 @@ LLView::~LLView()
mParentView->removeChild(this);
}
- if(LLView::sFastFrameView == this)
- {
- LLView::sFastFrameView = NULL;
- }
-
dispatch_list_t::iterator itor;
for (itor = mDispatchList.begin(); itor != mDispatchList.end(); ++itor)
{
@@ -1770,26 +1761,6 @@ void LLView::localRectToScreen(const LLRect& local, LLRect* screen) const
}
}
-LLView* LLView::getRootMostFastFrameView()
-{
- if (gFocusMgr.getTopView() == this)
- {
- return this;
- }
-
- if (getParent())
- {
- LLView* rootmost_view = getParent()->getRootMostFastFrameView();
- if (rootmost_view)
- {
- return rootmost_view;
- }
- }
-
- return mRenderInFastFrame ? this : NULL;
-}
-
-
LLView* LLView::getRootView()
{
LLView* view = this;
diff --git a/indra/llui/llview.h b/indra/llui/llview.h
index 839c300476..b794c087b5 100644
--- a/indra/llui/llview.h
+++ b/indra/llui/llview.h
@@ -145,7 +145,6 @@ protected:
public:
LLViewHandle mViewHandle;
BOOL mLastVisible;
- BOOL mRenderInFastFrame;
BOOL mSpanChildren;
private:
@@ -161,7 +160,6 @@ public:
static BOOL sDebugRects; // Draw debug rects behind everything.
static BOOL sDebugKeys;
static S32 sDepth;
- static LLView* sFastFrameView;
static BOOL sDebugMouseHandling;
static LLString sMouseHandlerMessage;
static S32 sSelectID;
@@ -319,8 +317,8 @@ public:
virtual void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
virtual void translate( S32 x, S32 y );
+ virtual void setOrigin( S32 x, S32 y ) { mRect.translate( x - mRect.mLeft, y - mRect.mBottom ); }
BOOL translateIntoRect( const LLRect& constraint, BOOL allow_partial_outside );
- void setOrigin( S32 x, S32 y ) { mRect.translate( x - mRect.mLeft, y - mRect.mBottom ); }
LLView* findSnapRect(LLRect& new_rect, const LLCoordGL& mouse_dir, LLView::ESnapType snap_type, S32 threshold, S32 padding = 0);
LLView* findSnapEdge(S32& new_edge_val, const LLCoordGL& mouse_dir, ESnapEdge snap_edge, ESnapType snap_type, S32 threshold, S32 padding = 0);
@@ -418,8 +416,6 @@ public:
virtual void localRectToScreen( const LLRect& local, LLRect* screen ) const;
virtual BOOL localRectToOtherView( const LLRect& local, LLRect* other, LLView* other_view ) const;
- void setRenderInFastFrame(BOOL render) { mRenderInFastFrame = render; }
- virtual LLView* getRootMostFastFrameView();
static LLWindow* getWindow(void);
diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp
index 34c178f509..19b6d80082 100644
--- a/indra/newview/llchatbar.cpp
+++ b/indra/newview/llchatbar.cpp
@@ -580,8 +580,6 @@ void LLChatBar::onInputEditorKeystroke( LLLineEditor* caller, void* userdata )
// << " outlen " << out_str.getLength()
// << llendl;
}
- // make sure we don't do UI-only render as it is apparent avatar isn't animating
- gViewerWindow->finishFastFrame();
}
// static
diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp
index 49fcce4911..0f0a9d9bda 100644
--- a/indra/newview/lldynamictexture.cpp
+++ b/indra/newview/lldynamictexture.cpp
@@ -187,7 +187,6 @@ BOOL LLDynamicTexture::updateAllInstances()
if (dynamicTexture->render())
{
result = TRUE;
- gViewerWindow->finishFastFrame();
sNumRenders++;
}
dynamicTexture->postRender(result);
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 9c8c0162c6..5ced5eafb7 100644
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -26,7 +26,10 @@
#include "llvieweruictrlfactory.h"
#include "viewer.h" // for gViewerDigest
+#if LL_LIBXUL_ENABLED
#include "llmozlib.h"
+#endif // LL_LIBXUL_ENABLED
+
#include "llglheaders.h"
extern LLCPUInfo gSysCPU;
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 68a5a90bcc..1ae6decfdd 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -160,7 +160,6 @@ void LLFloaterImagePreview::onPreviewTypeCommit(LLUICtrl* ctrl, void* userdata)
break;
}
fp->mAvatarPreview->refresh();
- //gViewerWindow->requestFastFrame(fp);
}
//-----------------------------------------------------------------------------
@@ -470,7 +469,6 @@ BOOL LLFloaterImagePreview::handleHover(S32 x, S32 y, MASK mask)
}
LLUI::setCursorPositionLocal(this, mLastMouseX, mLastMouseY);
- //gViewerWindow->requestFastFrame(this);
}
if (!mPreviewRect.pointInRect(x, y) || !mAvatarPreview)
@@ -502,7 +500,6 @@ BOOL LLFloaterImagePreview::handleScrollWheel(S32 x, S32 y, S32 clicks)
{
mAvatarPreview->zoom((F32)clicks * -0.2f);
mAvatarPreview->refresh();
- //gViewerWindow->requestFastFrame(this);
}
return TRUE;
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index 462e1515fd..0dc7daa587 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -3841,10 +3841,6 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent )
}
}
- if (handled)
- {
- gViewerWindow->requestFastFrame(this);
- }
return handled;
}
@@ -3880,11 +3876,6 @@ BOOL LLFolderView::handleUnicodeCharHere(llwchar uni_char, BOOL called_from_pare
handled = TRUE;
}
- if (handled)
- {
- gViewerWindow->requestFastFrame(this);
- }
-
return handled;
}
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index 90455f5902..2a686c46b9 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -2356,7 +2356,7 @@ bool LLInventoryModel::messageUpdateCore(LLMessageSystem* msg, bool account, boo
if(!gInventory.isObjectDescendentOf(lastitem->getUUID(), trash_id))
{
LLMultiPreview* multi_previewp = LLMultiPreview::getAutoOpenInstance(folder_id);
- if (!multi_previewp && all_one_folder)
+ if (!multi_previewp && all_one_folder && count > 1)
{
S32 left, top;
gFloaterView->getNewFloaterPosition(&left, &top);
diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp
index 7241b939ad..c5e589529c 100644
--- a/indra/newview/llpreview.cpp
+++ b/indra/newview/llpreview.cpp
@@ -473,6 +473,7 @@ LLPreview* LLPreview::getFirstPreviewForSource(const LLUUID& source_id)
LLMultiPreview::LLMultiPreview(const LLRect& rect) : LLMultiFloater("Preview", rect)
{
+ setCanResize(TRUE);
}
void LLMultiPreview::open() /*Flawfinder: ignore*/
diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index b9c63b5ad8..95973a102e 100644
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -312,43 +312,46 @@ void LLPreviewTexture::updateAspectRatio()
button_height = BTN_HEIGHT + PREVIEW_PAD;
}
- LLRect window_rect(0, mRect.getHeight(), mRect.getWidth(), 0);
- window_rect.mTop -= (PREVIEW_HEADER_SIZE + CLIENT_RECT_VPAD);
- window_rect.mBottom += PREVIEW_BORDER + button_height + CLIENT_RECT_VPAD + info_height + CLIENT_RECT_VPAD;
- LLMultiFloater* hostp = getHost();
- if (hostp)
- {
- // try to keep aspect ratio when hosted, as hosting view can resize without user input
- mClientRect.setLeftTopAndSize(window_rect.getCenterX() - (client_width / 2), window_rect.mTop, client_width, client_height);
- }
- else
+ if (client_height != mLastHeight || client_width != mLastWidth)
{
- mClientRect.setLeftTopAndSize(LLPANEL_BORDER_WIDTH + PREVIEW_PAD + 6,
- mRect.getHeight() - (PREVIEW_HEADER_SIZE + CLIENT_RECT_VPAD),
- mRect.getWidth() - horiz_pad,
- mRect.getHeight() - (view_height - client_height) - 8);
- }
-
- if (mImage->mFullHeight > mLastHeight && mImage->mFullWidth > mLastWidth)
- {
- mLastWidth = image_width;
- mLastHeight = image_height;
+ mLastWidth = client_width;
+ mLastHeight = client_height;
S32 old_top = mRect.mTop;
S32 old_left = mRect.mLeft;
- if (hostp)
+ if (getHost())
{
- hostp->growToFit(this, view_width, view_height);
+ getHost()->growToFit(this, view_width, view_height);
}
else
{
reshape( view_width, view_height );
S32 new_bottom = old_top - mRect.getHeight();
setOrigin( old_left, new_bottom );
+ // Try to keep whole view onscreen, don't allow partial offscreen.
+ gFloaterView->adjustToFitScreen(this, FALSE);
}
+ }
- // Try to keep whole view onscreen, don't allow partial offscreen.
- gFloaterView->adjustToFitScreen(this, FALSE);
+ // clamp texture size to fit within actual size of floater after attempting resize
+ client_width = llmin(client_width, mRect.getWidth() - horiz_pad);
+ client_height = llmin(client_height, mRect.getHeight() - PREVIEW_HEADER_SIZE - (2 * CLIENT_RECT_VPAD) - LLPANEL_BORDER_WIDTH - info_height);
+
+ LLRect window_rect(0, mRect.getHeight(), mRect.getWidth(), 0);
+ window_rect.mTop -= (PREVIEW_HEADER_SIZE + CLIENT_RECT_VPAD);
+ window_rect.mBottom += PREVIEW_BORDER + button_height + CLIENT_RECT_VPAD + info_height + CLIENT_RECT_VPAD;
+
+ if (getHost())
+ {
+ // try to keep aspect ratio when hosted, as hosting view can resize without user input
+ mClientRect.setLeftTopAndSize(window_rect.getCenterX() - (client_width / 2), window_rect.mTop, client_width, client_height);
+ }
+ else
+ {
+ mClientRect.setLeftTopAndSize(LLPANEL_BORDER_WIDTH + PREVIEW_PAD + 6,
+ mRect.getHeight() - (PREVIEW_HEADER_SIZE + CLIENT_RECT_VPAD),
+ mRect.getWidth() - horiz_pad,
+ client_height);
}
}
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index 046029ea1e..c4e166d68d 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -1278,21 +1278,30 @@ void LLSelectMgr::selectionSetImage(const LLUUID& imageid)
{
if (item)
{
- LLToolDragAndDrop::dropTextureAllFaces(objectp,
- item,
- LLToolDragAndDrop::SOURCE_AGENT,
- LLUUID::null);
- }
- else
- {
- S32 num_faces = objectp->getNumTEs();
- for( S32 face = 0; face < num_faces; face++ )
+ if (te == -1) // all faces
+ {
+ LLToolDragAndDrop::dropTextureAllFaces(objectp,
+ item,
+ LLToolDragAndDrop::SOURCE_AGENT,
+ LLUUID::null);
+ }
+ else // one face
{
- // Texture picker defaults aren't inventory items
- // * Don't need to worry about permissions for them
- // * Can just apply the texture and be done with it.
- objectp->setTEImage(face, gImageList.getImage(imageid));
+ LLToolDragAndDrop::dropTextureOneFace(objectp,
+ te,
+ item,
+ LLToolDragAndDrop::SOURCE_AGENT,
+ LLUUID::null);
}
+ }
+
+ else // not an inventory item
+ {
+ // Texture picker defaults aren't inventory items
+ // * Don't need to worry about permissions for them
+ // * Can just apply the texture and be done with it.
+ objectp->setTEImage(te, gImageList.getImage(imageid));
+
objectp->sendTEUpdate();
}
}
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 282de24060..04b5fe7340 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -126,10 +126,13 @@
#include "viewer.h"
#include "llmediaengine.h"
#include "llfasttimerview.h"
-#include "llmozlib.h"
#include "llweb.h"
#include "llfloaterhtml.h"
+#if LL_LIBXUL_ENABLED
+#include "llmozlib.h"
+#endif // LL_LIBXUL_ENABLED
+
#if LL_WINDOWS
#include "llwindebug.h"
#include "lldxhardware.h"
diff --git a/indra/newview/lltoolfocus.cpp b/indra/newview/lltoolfocus.cpp
index 2d1cb9c493..c439797c47 100644
--- a/indra/newview/lltoolfocus.cpp
+++ b/indra/newview/lltoolfocus.cpp
@@ -69,13 +69,13 @@ LLToolCamera::~LLToolCamera()
// virtual
void LLToolCamera::handleSelect()
{
- gFloaterTools->setStatusText("Click and drag to change view");
+ if (gFloaterTools) gFloaterTools->setStatusText("Click and drag to change view");
}
// virtual
void LLToolCamera::handleDeselect()
{
- gFloaterTools->setStatusText("");
+ if (gFloaterTools) gFloaterTools->setStatusText("");
// gAgent.setLookingAtAvatar(FALSE);
}
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 413a3ac819..9c3643128b 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -155,11 +155,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield)
// Clean up memory the pools may have allocated
if (rebuild)
{
- if (!gViewerWindow->renderingFastFrame())
- {
- gFrameStats.start(LLFrameStats::REBUILD);
- gPipeline.rebuildPools();
- }
+ gFrameStats.start(LLFrameStats::REBUILD);
+ gPipeline.rebuildPools();
}
return;
}
@@ -359,14 +356,6 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield)
}
}
- if (rebuild)
- {
- if (gViewerWindow->renderingFastFrame())
- {
- gFrameStats.start(LLFrameStats::STATE_SORT);
- gFrameStats.start(LLFrameStats::REBUILD);
- }
- }
/////////////////////////////
//
@@ -452,7 +441,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield)
gPipeline.updateCull();
stop_glerror();
- if (rebuild && !gViewerWindow->renderingFastFrame())
+ if (rebuild)
{
LLFastTimer t(LLFastTimer::FTM_REBUILD);
@@ -516,12 +505,7 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield)
// glPopMatrix();
//}
- if (gViewerWindow->renderingFastFrame())
- {
- gFrameStats.start(LLFrameStats::RENDER_SYNC);
- gFrameStats.start(LLFrameStats::RENDER_GEOM);
- }
- else if (!(gLogoutRequestSent && gHaveSavedSnapshot)
+ if (!(gLogoutRequestSent && gHaveSavedSnapshot)
&& !gRestoreGL
&& !gDisconnected)
{
@@ -566,7 +550,7 @@ void render_ui_and_swap()
if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
{
LLFastTimer t(LLFastTimer::FTM_RENDER_UI);
- if (!gViewerWindow->renderingFastFrame() && !gDisconnected)
+ if (!gDisconnected)
{
render_ui_3d();
#ifndef LL_RELEASE_FOR_DOWNLOAD
@@ -587,8 +571,6 @@ void render_ui_and_swap()
gViewerWindow->mWindow->swapBuffers();
}
}
-
- gViewerWindow->finishFirstFastFrame();
}
void render_ui_3d()
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 79db7b72cc..1b39c5bf7e 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1150,15 +1150,13 @@ LLViewerWindow::LLViewerWindow(
mSuppressToolbox( FALSE ),
mHideCursorPermanent( FALSE ),
mPickPending(FALSE),
- mIgnoreActivate( FALSE ),
- mRenderFullFrame(FALSE)
+ mIgnoreActivate( FALSE )
{
// Default to application directory.
strcpy(LLViewerWindow::sSnapshotBaseName, "Snapshot"); /* Flawfinder: ignore */
strcpy(LLViewerWindow::sMovieBaseName, "SLmovie"); /* Flawfinder: ignore */
LLViewerWindow::sSnapshotDir[0] = '\0';
- mFastFrameTimer.stop();
// create window
mWindow = LLWindowManager::createWindow(
@@ -1250,7 +1248,6 @@ LLViewerWindow::LLViewerWindow(
// Create container for all sub-views
mRootView = new LLRootView("root", mVirtualWindowRect, FALSE);
- mRootView->setRenderInFastFrame(FALSE);
if (!gNoRender)
{
@@ -3126,8 +3123,6 @@ void LLViewerWindow::performPick()
return;
}
- finishFastFrame();
-
mPickPending = FALSE;
U32 te_offset = NO_FACE;
@@ -3413,45 +3408,6 @@ void LLViewerWindow::analyzeHit(
//llinfos << "DEBUG Hit Nothing " << llendl;
}
-
-void LLViewerWindow::requestFastFrame(LLView *view)
-{
- if (!mPickPending &&
- mWindow->getSwapMethod() != LLWindow::SWAP_METHOD_UNDEFINED &&
- gStartupState >= STATE_STARTED &&
- gSavedSettings.getBOOL("RenderFastUI") &&
- !gbCapturing)
- {
- if (!mFastFrameTimer.getStarted())
- {
- // we're double buffered, so when first requesting a fast ui update
- // we need to render the scene again so that the front and back buffers
- // are synced
- mRenderFullFrame = TRUE;
- }
- // calculation new expiration time and reset timer
- F32 expiration;
- if (mFastFrameTimer.hasExpired())
- {
- expiration = FAST_FRAME_INCREMENT;
- }
- else
- {
- expiration = llmin(MAX_FAST_FRAME_TIME, mFastFrameTimer.getTimeToExpireF32() + FAST_FRAME_INCREMENT);
- }
-
- mFastFrameTimer.start();
- mFastFrameTimer.setTimerExpirySec(expiration);
-
- LLView::sFastFrameView = view->getRootMostFastFrameView();
- if (!LLView::sFastFrameView)
- {
- LLView::sFastFrameView = view;
- }
- }
-}
-
-
// Returns unit vector relative to camera
// indicating direction of point on screen x,y
LLVector3 LLViewerWindow::mouseDirectionGlobal(const S32 x, const S32 y) const
@@ -3925,9 +3881,6 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
return FALSE;
}
- // IW 3/5/04 We don'a wan' nunna yer fest frumes har!
- finishFastFrame();
-
// PRE SNAPSHOT
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index 251c0155b6..0097a00b7a 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -205,12 +205,6 @@ public:
LLViewerObject* getObjectUnderCursor(const F32 depth = 16.0f);
- void requestFastFrame(LLView* view);
- BOOL renderingFastFrame() { return mFastFrameTimer.getStarted() && !firstFastFrame(); }
- void finishFastFrame() { mFastFrameTimer.stop(); mRenderFullFrame = FALSE; }
- BOOL firstFastFrame() { return mRenderFullFrame; }
- void finishFirstFastFrame() { mRenderFullFrame = FALSE; }
-
// Returns a pointer to the last object hit
LLViewerObject *lastObjectHit();
LLViewerObject *lastNonFloraObjectHit();
@@ -326,8 +320,6 @@ protected:
static char sMovieBaseName[LL_MAX_PATH]; /* Flawfinder: ignore */
BOOL mIgnoreActivate;
- LLFrameTimer mFastFrameTimer;
- BOOL mRenderFullFrame;
U8* mPickBuffer;
};