summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/llsearcheditor.cpp6
-rw-r--r--indra/llui/lltextbase.cpp192
-rw-r--r--indra/llui/lltextbase.h18
-rw-r--r--indra/llui/lltexteditor.cpp7
-rw-r--r--indra/llui/lltexteditor.h1
-rw-r--r--indra/llui/lltooltip.cpp2
-rw-r--r--indra/llui/lltooltip.h1
-rw-r--r--indra/newview/llappviewer.cpp3
-rw-r--r--indra/newview/llchatmsgbox.cpp2
-rw-r--r--indra/newview/lltoolpie.cpp6
-rw-r--r--indra/newview/llviewerwindow.cpp1
-rw-r--r--indra/newview/skins/default/xui/en/floater_incoming_call.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_settings_debug.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_widgets.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_audio_device.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_avatar_tag.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_pick.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_general.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_notices.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_roles.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_notes.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_teleport_history_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/expandable_text.xml4
-rw-r--r--indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/text.xml7
-rw-r--r--indra/newview/skins/default/xui/en/widgets/textbase.xml6
26 files changed, 151 insertions, 125 deletions
diff --git a/indra/llui/llsearcheditor.cpp b/indra/llui/llsearcheditor.cpp
index b87f645f3f..fad2b7bc99 100644
--- a/indra/llui/llsearcheditor.cpp
+++ b/indra/llui/llsearcheditor.cpp
@@ -37,9 +37,9 @@
#include "llsearcheditor.h"
LLSearchEditor::LLSearchEditor(const LLSearchEditor::Params& p)
-: LLUICtrl(p)
- , mSearchButton(NULL)
- , mClearButton(NULL)
+: LLUICtrl(p),
+ mSearchButton(NULL),
+ mClearButton(NULL)
{
S32 srch_btn_top = p.search_button.top_pad + p.search_button.rect.height;
S32 srch_btn_right = p.search_button.rect.width + p.search_button.left_pad;
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 3dacf979c7..123e59ae6a 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -124,17 +124,6 @@ struct LLTextBase::line_end_compare
//////////////////////////////////////////////////////////////////////////
//
-// LLTextBase::DocumentPanel
-//
-
-
-LLTextBase::DocumentPanel::DocumentPanel(const Params& p)
-: LLPanel(p)
-{}
-
-
-//////////////////////////////////////////////////////////////////////////
-//
// LLTextBase
//
@@ -157,8 +146,7 @@ LLTextBase::Params::Params()
bg_readonly_color("bg_readonly_color"),
bg_writeable_color("bg_writeable_color"),
bg_focus_color("bg_focus_color"),
- hide_scrollbar("hide_scrollbar"),
- clip_to_rect("clip_to_rect", true),
+ allow_scroll("allow_scroll", true),
track_end("track_end", false),
read_only("read_only", false),
v_pad("v_pad", 0),
@@ -205,35 +193,44 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p)
mSelectionStart( 0 ),
mSelectionEnd( 0 ),
mIsSelecting( FALSE ),
- mClip(p.clip_to_rect),
mWordWrap(p.wrap),
mUseEllipses( p.use_ellipses ),
mParseHTML(p.allow_html),
mParseHighlights(p.parse_highlights),
- mHideScrollbar(p.hide_scrollbar)
-{
- LLScrollContainer::Params scroll_params;
- scroll_params.name = "text scroller";
- scroll_params.rect = getLocalRect();
- scroll_params.follows.flags = FOLLOWS_ALL;
- scroll_params.is_opaque = false;
- scroll_params.mouse_opaque = false;
- scroll_params.min_auto_scroll_rate = 200;
- scroll_params.max_auto_scroll_rate = 800;
- scroll_params.hide_scrollbar = p.hide_scrollbar;
- scroll_params.border_visible = p.border_visible;
- mScroller = LLUICtrlFactory::create<LLScrollContainer>(scroll_params);
- addChild(mScroller);
-
- LLPanel::Params panel_params;
- panel_params.name = "text_contents";
- panel_params.rect = LLRect(0, 500, 500, 0);
- panel_params.background_visible = p.bg_visible;
- panel_params.background_opaque = true;
- panel_params.mouse_opaque = false;
-
- mDocumentPanel = LLUICtrlFactory::create<DocumentPanel>(panel_params);
- mScroller->addChild(mDocumentPanel);
+ mBGVisible(p.bg_visible),
+ mScroller(NULL)
+{
+ if(p.allow_scroll)
+ {
+ LLScrollContainer::Params scroll_params;
+ scroll_params.name = "text scroller";
+ scroll_params.rect = getLocalRect();
+ scroll_params.follows.flags = FOLLOWS_ALL;
+ scroll_params.is_opaque = false;
+ scroll_params.mouse_opaque = false;
+ scroll_params.min_auto_scroll_rate = 200;
+ scroll_params.max_auto_scroll_rate = 800;
+ // all text widgets only show scrollbar on demand
+ scroll_params.hide_scrollbar = true;
+ scroll_params.border_visible = p.border_visible;
+ mScroller = LLUICtrlFactory::create<LLScrollContainer>(scroll_params);
+ addChild(mScroller);
+ }
+
+ LLView::Params view_params;
+ view_params.name = "text_contents";
+ view_params.rect = LLRect(0, 500, 500, 0);
+ view_params.mouse_opaque = false;
+
+ mDocumentView = LLUICtrlFactory::create<LLView>(view_params);
+ if (mScroller)
+ {
+ mScroller->addChild(mDocumentView);
+ }
+ else
+ {
+ addChild(mDocumentView);
+ }
createDefaultSegment();
@@ -314,7 +311,7 @@ void LLTextBase::drawSelectionBackground()
LLRect selection_rect = mTextRect;
// Skip through the lines we aren't drawing.
- LLRect content_display_rect = mScroller->getVisibleContentRect();
+ LLRect content_display_rect = getVisibleDocumentRect();
// binary search for line that starts before top of visible buffer
line_list_t::const_iterator line_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), content_display_rect.mTop, compare_bottom());
@@ -496,8 +493,7 @@ void LLTextBase::drawText()
selection_right = llmax( mSelectionStart, mSelectionEnd );
}
- LLRect scrolled_view_rect = mScroller->getVisibleContentRect();
- LLRect content_rect = mScroller->getContentWindowRect();
+ LLRect scrolled_view_rect = getVisibleDocumentRect();
std::pair<S32, S32> line_range = getVisibleLines();
S32 first_line = line_range.first;
S32 last_line = line_range.second;
@@ -540,7 +536,7 @@ void LLTextBase::drawText()
LLRect text_rect(line.mRect.mLeft + mTextRect.mLeft - scrolled_view_rect.mLeft,
line.mRect.mTop - scrolled_view_rect.mBottom + mTextRect.mBottom,
- mDocumentPanel->getRect().getWidth() - scrolled_view_rect.mLeft,
+ mDocumentView->getRect().getWidth() - scrolled_view_rect.mLeft,
line.mRect.mBottom - scrolled_view_rect.mBottom + mTextRect.mBottom);
// draw a single line of text
@@ -645,6 +641,7 @@ S32 LLTextBase::insertStringNoUndo(S32 pos, const LLWString &wstr, LLTextBase::s
}
onValueChange(pos, pos + insert_len);
+ needsReflow();
return insert_len;
}
@@ -704,6 +701,7 @@ S32 LLTextBase::removeStringNoUndo(S32 pos, S32 length)
createDefaultSegment();
onValueChange(pos, pos);
+ needsReflow();
return -length; // This will be wrong if someone calls removeStringNoUndo with an excessive length
}
@@ -719,6 +717,7 @@ S32 LLTextBase::overwriteCharNoUndo(S32 pos, llwchar wc)
getViewModel()->setDisplay(text);
onValueChange(pos, pos + 1);
+ needsReflow();
return 1;
}
@@ -949,29 +948,31 @@ void LLTextBase::draw()
// then update scroll position, as cursor may have moved
updateScrollFromCursor();
- LLColor4 bg_color = mReadOnly
- ? mReadOnlyBgColor.get()
- : hasFocus()
- ? mFocusBgColor.get()
- : mWriteableBgColor.get();
+ if (mBGVisible)
+ {
+ // clip background rect against extents, if we support scrolling
+ LLLocalClipRect clip(getLocalRect(), mScroller != NULL);
- mDocumentPanel->setBackgroundColor(bg_color);
+ LLColor4 bg_color = mReadOnly
+ ? mReadOnlyBgColor.get()
+ : hasFocus()
+ ? mFocusBgColor.get()
+ : mWriteableBgColor.get();
+ gl_rect_2d(mDocumentView->getRect(), bg_color, TRUE);
+ }
+ // draw document view
LLUICtrl::draw();
+
{
- LLLocalClipRect clip(mTextRect, mClip);
+ // only clip if we support scrolling (mScroller != NULL)
+ LLLocalClipRect clip(mTextRect, mScroller != NULL);
drawSelectionBackground();
drawText();
drawCursor();
}
}
-//virtual
-void LLTextBase::clear()
-{
- getViewModel()->setDisplay(LLWStringUtil::null);
- clearSegments();
-}
//virtual
void LLTextBase::setColor( const LLColor4& c )
@@ -1000,14 +1001,14 @@ void LLTextBase::updateScrollFromCursor()
// Update scroll position even in read-only mode (when there's no cursor displayed)
// because startOfDoc()/endOfDoc() modify cursor position. See EXT-736.
- if (!mScrollNeeded)
+ if (!mScrollNeeded || !mScroller)
{
return;
}
mScrollNeeded = FALSE;
// scroll so that the cursor is at the top of the page
- LLRect scroller_doc_window = mScroller->getVisibleContentRect();
+ LLRect scroller_doc_window = getVisibleDocumentRect();
LLRect cursor_rect_doc = getLocalRectFromDocIndex(mCursorPos);
cursor_rect_doc.translate(scroller_doc_window.mLeft, scroller_doc_window.mBottom);
mScroller->scrollToShowRect(cursor_rect_doc, LLRect(0, scroller_doc_window.getHeight() - 5, scroller_doc_window.getWidth(), 5));
@@ -1042,7 +1043,7 @@ void LLTextBase::reflow(S32 start_index)
{
mReflowNeeded = FALSE;
- bool scrolled_to_bottom = mScroller->isAtBottom();
+ bool scrolled_to_bottom = mScroller ? mScroller->isAtBottom() : false;
LLRect old_cursor_rect = getLocalRectFromDocIndex(mCursorPos);
bool follow_selection = mTextRect.overlaps(old_cursor_rect); // cursor is visible
@@ -1183,17 +1184,29 @@ void LLTextBase::reflow(S32 start_index)
mContentsRect.stretch(1);
}
- // change mDocumentPanel document size to accomodate reflowed text
+ // change mDocumentView size to accomodate reflowed text
LLRect document_rect;
- document_rect.setOriginAndSize(1, 1,
- mScroller->getContentWindowRect().getWidth(),
- llmax(mScroller->getContentWindowRect().getHeight(), mContentsRect.getHeight()));
- mDocumentPanel->setShape(document_rect);
+ if (mScroller)
+ {
+ // document is size of scroller or size of text contents, whichever is larger
+ document_rect.setOriginAndSize(0, 0,
+ mScroller->getContentWindowRect().getWidth(),
+ llmax(mScroller->getContentWindowRect().getHeight(), mContentsRect.getHeight()));
+ }
+ else
+ {
+ // document size is just extents of reflowed text, reset to origin 0,0
+ document_rect.set(0,
+ getLocalRect().getHeight(),
+ getLocalRect().getWidth(),
+ llmin(0, getLocalRect().getHeight() - mContentsRect.getHeight()));
+ }
+ mDocumentView->setShape(document_rect);
// after making document big enough to hold all the text, move the text to fit in the document
if (!mLineInfoList.empty())
{
- S32 delta_pos = mDocumentPanel->getRect().getHeight() - mLineInfoList.begin()->mRect.mTop - mVPad;
+ S32 delta_pos = mDocumentView->getRect().getHeight() - mLineInfoList.begin()->mRect.mTop - mVPad;
// move line segments to fit new document rect
for (line_list_t::iterator it = mLineInfoList.begin(); it != mLineInfoList.end(); ++it)
{
@@ -1215,9 +1228,9 @@ void LLTextBase::reflow(S32 start_index)
}
// apply scroll constraints after reflowing text
- if (!hasMouseCapture())
+ if (!hasMouseCapture() && mScroller)
{
- LLRect visible_content_rect = mScroller->getVisibleContentRect();
+ LLRect visible_content_rect = getVisibleDocumentRect();
if (scrolled_to_bottom && mTrackEnd)
{
// keep bottom of text buffer visible
@@ -1329,7 +1342,7 @@ S32 LLTextBase::getLineOffsetFromDocIndex( S32 startpos, bool include_wordwrap)
S32 LLTextBase::getFirstVisibleLine() const
{
- LLRect visible_region = mScroller->getVisibleContentRect();
+ LLRect visible_region = getVisibleDocumentRect();
// binary search for line that starts before top of visible buffer
line_list_t::const_iterator iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mTop, compare_bottom());
@@ -1339,7 +1352,7 @@ S32 LLTextBase::getFirstVisibleLine() const
std::pair<S32, S32> LLTextBase::getVisibleLines(bool fully_visible)
{
- LLRect visible_region = mScroller->getVisibleContentRect();
+ LLRect visible_region = getVisibleDocumentRect();
line_list_t::const_iterator first_iter;
line_list_t::const_iterator last_iter;
@@ -1370,12 +1383,12 @@ LLTextViewModel* LLTextBase::getViewModel() const
void LLTextBase::addDocumentChild(LLView* view)
{
- mDocumentPanel->addChild(view);
+ mDocumentView->addChild(view);
}
void LLTextBase::removeDocumentChild(LLView* view)
{
- mDocumentPanel->removeChild(view);
+ mDocumentView->removeChild(view);
}
@@ -1481,11 +1494,10 @@ void LLTextBase::createUrlContextMenu(S32 x, S32 y, const std::string &in_url)
void LLTextBase::setText(const LLStringExplicit &utf8str)
{
// clear out the existing text and segments
- clear();
-
- truncate();
+ getViewModel()->setDisplay(LLWStringUtil::null);
- createDefaultSegment();
+ clearSegments();
+// createDefaultSegment();
startOfDoc();
deselect();
@@ -1496,10 +1508,9 @@ void LLTextBase::setText(const LLStringExplicit &utf8str)
appendText(text, false);
- needsReflow();
-
//resetDirty();
onValueChange(0, getLength());
+ needsReflow();
}
//virtual
@@ -1767,7 +1778,7 @@ LLWString LLTextBase::getWText() const
S32 LLTextBase::getDocIndexFromLocalCoord( S32 local_x, S32 local_y, BOOL round ) const
{
// Figure out which line we're nearest to.
- LLRect visible_region = mScroller->getVisibleContentRect();
+ LLRect visible_region = getVisibleDocumentRect();
// binary search for line that starts before local_y
line_list_t::const_iterator line_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), local_y - mTextRect.mBottom + visible_region.mBottom, compare_bottom());
@@ -1838,7 +1849,7 @@ LLRect LLTextBase::getLocalRectFromDocIndex(S32 pos) const
// find line that contains cursor
line_list_t::const_iterator line_iter = std::upper_bound(mLineInfoList.begin(), mLineInfoList.end(), pos, line_end_compare());
- LLRect scrolled_view_rect = mScroller->getVisibleContentRect();
+ LLRect scrolled_view_rect = getVisibleDocumentRect();
local_rect.mLeft = mTextRect.mLeft - scrolled_view_rect.mLeft + line_iter->mRect.mLeft;
local_rect.mBottom = mTextRect.mBottom + (line_iter->mRect.mBottom - scrolled_view_rect.mBottom);
local_rect.mTop = mTextRect.mBottom + (line_iter->mRect.mTop - scrolled_view_rect.mBottom);
@@ -1917,7 +1928,7 @@ void LLTextBase::endOfDoc()
void LLTextBase::changePage( S32 delta )
{
const S32 PIXEL_OVERLAP_ON_PAGE_CHANGE = 10;
- if (delta == 0) return;
+ if (delta == 0 || !mScroller) return;
LLRect cursor_rect = getLocalRectFromDocIndex(mCursorPos);
@@ -1970,7 +1981,7 @@ void LLTextBase::changeLine( S32 delta )
new_line = line + 1;
}
- LLRect visible_region = mScroller->getVisibleContentRect();
+ LLRect visible_region = getVisibleDocumentRect();
S32 new_cursor_pos = getDocIndexFromLocalCoord(mDesiredXPixel, mLineInfoList[new_line].mRect.mBottom + mTextRect.mBottom - visible_region.mBottom, TRUE);
setCursorPos(new_cursor_pos, true);
@@ -2047,7 +2058,7 @@ S32 LLTextBase::getEditableIndex(S32 index, bool increasing_direction)
void LLTextBase::updateTextRect()
{
LLRect old_text_rect = mTextRect;
- mTextRect = mScroller->getContentWindowRect();
+ mTextRect = mScroller ? mScroller->getContentWindowRect() : getLocalRect();
//FIXME: replace border with image?
if (mBorderVisible)
{
@@ -2081,6 +2092,22 @@ void LLTextBase::endSelection()
}
}
+// get portion of document that is visible in text editor
+LLRect LLTextBase::getVisibleDocumentRect() const
+{
+ if (mScroller)
+ {
+ return mScroller->getVisibleContentRect();
+ }
+ else
+ {
+ // entire document rect when not scrolling
+ LLRect doc_rect = mDocumentView->getLocalRect();
+ doc_rect.translate(-mDocumentView->getRect().mLeft, -mDocumentView->getRect().mBottom);
+ return doc_rect;
+ }
+}
+
//
// LLTextSegment
//
@@ -2150,6 +2177,7 @@ F32 LLNormalTextSegment::draw(S32 start, S32 end, S32 selection_start, S32 selec
{
if ( mStyle->isImage() && (start >= 0) && (end <= mEnd - mStart))
{
+ LLColor4 color = LLColor4::white % mEditor.getDrawContext().mAlpha;
LLUIImagePtr image = mStyle->getImage();
S32 style_image_height = image->getHeight();
S32 style_image_width = image->getWidth();
@@ -2398,7 +2426,7 @@ S32 LLInlineViewSegment::getNumChars(S32 num_pixels, S32 segment_offset, S32 lin
void LLInlineViewSegment::updateLayout(const LLTextBase& editor)
{
LLRect start_rect = editor.getLocalRectFromDocIndex(mStart);
- LLRect doc_rect = editor.getDocumentPanel()->getRect();
+ LLRect doc_rect = editor.getDocumentView()->getRect();
mView->setOrigin(doc_rect.mLeft + start_rect.mLeft, doc_rect.mBottom + start_rect.mBottom);
}
diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h
index f20134fd6d..903396c78a 100644
--- a/indra/llui/lltextbase.h
+++ b/indra/llui/lltextbase.h
@@ -80,8 +80,7 @@ public:
border_visible,
track_end,
read_only,
- hide_scrollbar,
- clip_to_rect,
+ allow_scroll,
wrap,
use_ellipses,
allow_html,
@@ -118,7 +117,6 @@ public:
// LLUICtrl interface
/*virtual*/ BOOL acceptsTextInput() const { return !mReadOnly; }
- /*virtual*/ void clear();
/*virtual*/ void setColor( const LLColor4& c );
/*virtual*/ void setValue(const LLSD& value );
/*virtual*/ LLTextViewModel* getViewModel() const;
@@ -149,16 +147,13 @@ public:
S32 getLength() const { return getWText().length(); }
S32 getLineCount() const { return mLineInfoList.size(); }
- class DocumentPanel : public LLPanel
- {
- public:
- DocumentPanel(const Params&);
- };
void addDocumentChild(LLView* view);
void removeDocumentChild(LLView* view);
- const DocumentPanel* getDocumentPanel() const { return mDocumentPanel; }
+ const LLView* getDocumentView() const { return mDocumentView; }
LLRect getTextRect() { return mTextRect; }
LLRect getContentsRect();
+ LLRect getVisibleDocumentRect() const;
+
S32 getDocIndexFromLocalCoord( S32 local_x, S32 local_y, BOOL round ) const;
LLRect getLocalRectFromDocIndex(S32 pos) const;
@@ -344,13 +339,12 @@ protected:
bool mUseEllipses;
bool mTrackEnd; // if true, keeps scroll position at end of document during resize
bool mReadOnly;
- bool mClip;
- bool mHideScrollbar;
+ bool mBGVisible; // render background?
S32 mMaxTextByteLength; // Maximum length mText is allowed to be in bytes
// support widgets
LLContextMenu* mPopupMenu;
- DocumentPanel* mDocumentPanel;
+ LLView* mDocumentView;
class LLScrollContainer* mScroller;
// transient state
diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp
index 997c5b8fa8..74373e7803 100644
--- a/indra/llui/lltexteditor.cpp
+++ b/indra/llui/lltexteditor.cpp
@@ -2916,3 +2916,10 @@ void LLTextEditor::onKeyStroke()
{
mKeystrokeSignal(this);
}
+
+//virtual
+void LLTextEditor::clear()
+{
+ getViewModel()->setDisplay(LLWStringUtil::null);
+ clearSegments();
+}
diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h
index 0e5707a3a6..e232efbfb3 100644
--- a/indra/llui/lltexteditor.h
+++ b/indra/llui/lltexteditor.h
@@ -116,6 +116,7 @@ public:
virtual void setEnabled(BOOL enabled);
// uictrl overrides
+ virtual void clear();
virtual void setFocus( BOOL b );
virtual BOOL isDirty() const;
diff --git a/indra/llui/lltooltip.cpp b/indra/llui/lltooltip.cpp
index c55273cacf..f30e56b907 100644
--- a/indra/llui/lltooltip.cpp
+++ b/indra/llui/lltooltip.cpp
@@ -147,6 +147,7 @@ static LLDefaultChildRegistry::Register<LLToolTip> r("tool_tip");
LLToolTip::Params::Params()
: max_width("max_width", 200),
padding("padding", 4),
+ wrap("wrap", true),
pos("pos"),
message("message"),
delay_time("delay_time", LLUI::sSettingGroups["config"]->getF32( "ToolTipDelay" )),
@@ -181,6 +182,7 @@ LLToolTip::LLToolTip(const LLToolTip::Params& p)
params.bg_visible = false;
params.font = p.font;
params.use_ellipses = true;
+ params.wrap = p.wrap;
mTextBox = LLUICtrlFactory::create<LLTextBox> (params);
addChild(mTextBox);
diff --git a/indra/llui/lltooltip.h b/indra/llui/lltooltip.h
index 6715da1611..63e7249a12 100644
--- a/indra/llui/lltooltip.h
+++ b/indra/llui/lltooltip.h
@@ -83,6 +83,7 @@ public:
Optional<LLUIImage*> image;
Optional<S32> max_width;
Optional<S32> padding;
+ Optional<bool> wrap;
Params();
};
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 41cbc21fe9..d47b994322 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -594,7 +594,8 @@ bool LLAppViewer::init()
// into the log files during normal startup until AFTER
// we run the "program crashed last time" error handler below.
//
-
+ LLFastTimer::reset();
+
// Need to do this initialization before we do anything else, since anything
// that touches files should really go through the lldir API
gDirUtilp->initAppDirs("SecondLife");
diff --git a/indra/newview/llchatmsgbox.cpp b/indra/newview/llchatmsgbox.cpp
index 6eaafc9059..12626e3b43 100644
--- a/indra/newview/llchatmsgbox.cpp
+++ b/indra/newview/llchatmsgbox.cpp
@@ -59,7 +59,7 @@ public:
/*virtual*/ S32 getWidth(S32 first_char, S32 num_chars) const
{
- return mEditor->getDocumentPanel()->getRect().getWidth();
+ return mEditor->getDocumentView()->getRect().getWidth();
}
/*virtual*/ F32 draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect)
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index beb16c267e..b015f668e4 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -703,7 +703,8 @@ BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
.image(LLUI::getUIImage("Info"))
.click_callback(boost::bind(showAvatarInspector, hover_object->getID()))
.visible_time_near(6.f)
- .visible_time_far(3.f));
+ .visible_time_far(3.f)
+ .wrap(false));
}
}
else
@@ -746,7 +747,8 @@ BOOL LLToolPie::handleToolTip(S32 local_x, S32 local_y, MASK mask)
.image(LLUI::getUIImage("Info"))
.click_callback(boost::bind(showObjectInspector, hover_object->getID()))
.visible_time_near(6.f)
- .visible_time_far(3.f));
+ .visible_time_far(3.f)
+ .wrap(false));
}
}
}
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index 24d00cba16..22141011a2 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -1465,6 +1465,7 @@ void LLViewerWindow::initBase()
LLToolTipView::Params hvp;
hvp.name("tooltip view");
hvp.rect(full_window);
+ hvp.follows.flags(FOLLOWS_ALL);
gToolTipView = LLUICtrlFactory::create<LLToolTipView>(hvp);
getRootView()->addChild(gToolTipView);
diff --git a/indra/newview/skins/default/xui/en/floater_incoming_call.xml b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
index bdce8fa4fc..95e4247a05 100644
--- a/indra/newview/skins/default/xui/en/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/en/floater_incoming_call.xml
@@ -34,7 +34,6 @@
font="SansSerif"
height="64"
border_visible="false"
- hide_scrollbar="true"
layout="topleft"
left="77"
max_length="2147483647"
diff --git a/indra/newview/skins/default/xui/en/floater_settings_debug.xml b/indra/newview/skins/default/xui/en/floater_settings_debug.xml
index e2f4a73ec8..b7779687ec 100644
--- a/indra/newview/skins/default/xui/en/floater_settings_debug.xml
+++ b/indra/newview/skins/default/xui/en/floater_settings_debug.xml
@@ -23,7 +23,6 @@
<text_editor
enabled="false"
height="60"
- hide_scrollbar="true"
layout="topleft"
left_delta="0"
name="comment_text"
diff --git a/indra/newview/skins/default/xui/en/floater_test_widgets.xml b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
index 8ed2047a27..cc0fc34dd5 100644
--- a/indra/newview/skins/default/xui/en/floater_test_widgets.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
@@ -277,6 +277,7 @@
follows="top|left"
label="Spinner"
layout="topleft"
+ label_width="45"
name="test_spinner"
tool_tip="spinner"/>
<text
diff --git a/indra/newview/skins/default/xui/en/panel_audio_device.xml b/indra/newview/skins/default/xui/en/panel_audio_device.xml
index 4329982209..546f46205f 100644
--- a/indra/newview/skins/default/xui/en/panel_audio_device.xml
+++ b/indra/newview/skins/default/xui/en/panel_audio_device.xml
@@ -81,7 +81,6 @@
enabled="false"
height="60"
border_visible="false"
- hide_scrollbar="true"
layout="topleft"
left_delta="10"
max_length="65535"
diff --git a/indra/newview/skins/default/xui/en/panel_avatar_tag.xml b/indra/newview/skins/default/xui/en/panel_avatar_tag.xml
index 34b4736979..e4f6e7bd44 100644
--- a/indra/newview/skins/default/xui/en/panel_avatar_tag.xml
+++ b/indra/newview/skins/default/xui/en/panel_avatar_tag.xml
@@ -61,7 +61,6 @@
font="SansSerifSmall"
read_only="true"
bg_readonly_color="0 0 0 0"
- hide_scrollbar="true"
word_wrap="true"
mouse_opaque="true"
name="msg_text" >
diff --git a/indra/newview/skins/default/xui/en/panel_edit_pick.xml b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
index 5dd03656c6..b9a01d80f9 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
@@ -120,7 +120,6 @@
follows="left|top|right"
height="100"
width="220"
- hide_scrollbar="true"
layout="topleft"
left="10"
top_pad="2"
diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml
index 03e2d35b9f..e49914d5e6 100644
--- a/indra/newview/skins/default/xui/en/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_general.xml
@@ -45,7 +45,6 @@ Hover your mouse over the options for more help.
follows="left|top"
left="5"
height="75"
- hide_scrollbar="true"
layout="topleft"
max_length="511"
name="charter"
diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml
index ffc2f279bc..82a3c98dd9 100644
--- a/indra/newview/skins/default/xui/en/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml
@@ -187,7 +187,6 @@ the General tab.
</text>
<text_editor
height="75"
- hide_scrollbar="true"
layout="topleft"
left_pad="3"
max_length="511"
@@ -344,7 +343,6 @@ the General tab.
<text_editor
enabled="false"
height="150"
- hide_scrollbar="true"
layout="topleft"
left="10"
max_length="511"
diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml
index 7b8bd8b337..6435951157 100644
--- a/indra/newview/skins/default/xui/en/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml
@@ -625,7 +625,6 @@ things in this group. There&apos;s a broad variety of Abilities.
type="string"
halign="left"
height="48"
- hide_scrollbar="true"
layout="topleft"
left="135"
max_length="254"
@@ -723,7 +722,6 @@ things in this group. There&apos;s a broad variety of Abilities.
enabled="false"
halign="left"
height="48"
- hide_scrollbar="true"
layout="topleft"
left_delta="0"
max_length="512"
diff --git a/indra/newview/skins/default/xui/en/panel_notes.xml b/indra/newview/skins/default/xui/en/panel_notes.xml
index 2056ec14d5..4274a37497 100644
--- a/indra/newview/skins/default/xui/en/panel_notes.xml
+++ b/indra/newview/skins/default/xui/en/panel_notes.xml
@@ -58,7 +58,6 @@
<text_editor
follows="left|top"
height="200"
- hide_scrollbar="true"
layout="topleft"
left="10"
max_length="1000"
diff --git a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
index d640d3ad88..63c2d4538e 100644
--- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
@@ -42,7 +42,7 @@
height="20"
layout="topleft"
left_pad="5"
- use_ellipsis="true"
+ use_ellipses="true"
name="region"
text_color="white"
top="4"
diff --git a/indra/newview/skins/default/xui/en/widgets/expandable_text.xml b/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
index 6381dce1d6..120deaaef5 100644
--- a/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
+++ b/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
@@ -8,8 +8,8 @@
use_ellipses="true"
word_wrap="true"
tab_stop="true"
- v_pad="2"
- h_pad="3" >
+ v_pad="3"
+ h_pad="4" >
</textbox>
<scroll
name="scroll"
diff --git a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
index 8ace7b96bc..bb46ec0954 100644
--- a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
@@ -5,7 +5,7 @@
font="SansSerifSmall"
max_length="255"
embedded_items="false"
- hide_scrollbar="false"
+ allow_scroll="true"
border_visible="false"
word_wrap="false"
ignore_tab="true"
@@ -15,8 +15,8 @@
default_color="TextDefaultColor"
text_color="TextFgColor"
text_readonly_color="TextFgReadOnlyColor"
- h_pad="5"
- v_pad="3"
+ h_pad="6"
+ v_pad="4"
bg_visible="true"
bg_readonly_color="TextBgReadOnlyColor"
bg_writeable_color="TextBgWriteableColor"
diff --git a/indra/newview/skins/default/xui/en/widgets/text.xml b/indra/newview/skins/default/xui/en/widgets/text.xml
index 5914c21b2b..22bda45923 100644
--- a/indra/newview/skins/default/xui/en/widgets/text.xml
+++ b/indra/newview/skins/default/xui/en/widgets/text.xml
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<text allow_html="true"
- clip_to_rect="false"
mouse_opaque="false"
name="text_box"
font="SansSerifSmall"
@@ -8,8 +7,8 @@
tab_stop="false"
halign="left"
hover_color="LabelSelectedColor"
- h_pad="-1"
- hide_scrollbar="true"
+ h_pad="0"
+ allow_scroll="false"
text_readonly_color="LabelDisabledColor"
bg_writeable_color="FloaterDefaultBackgroundColor"
border_color="DefaultHighlightLight"
@@ -18,5 +17,5 @@
border_visible="false"
hover="false"
text_color="LabelTextColor"
- v_pad="-1"
+ v_pad="0"
max_length="4096"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/textbase.xml b/indra/newview/skins/default/xui/en/widgets/textbase.xml
index c352abca3b..e5dc022633 100644
--- a/indra/newview/skins/default/xui/en/widgets/textbase.xml
+++ b/indra/newview/skins/default/xui/en/widgets/textbase.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<textbase clip_to_rect="true"
- h_pad="4"
- v_pad="4"/>
+<textbase allow_scroll="true"
+ h_pad="5"
+ v_pad="5"/>