aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview
diff options
context:
space:
mode:
authorJacek Antonelli2010-01-26 13:02:07 -0600
committerJacek Antonelli2010-01-26 14:25:07 -0600
commit6e1e243da8c06ddd6847576c55e134d72ef42491 (patch)
tree3cd1bfbd60d3b92323717afda3fa5a821cf4066c /linden/indra/newview
parentChangeLog entry: Several changes to work better on 64bit Linux. (diff)
parentSNOW-413 Potential null pointer exception in multi-slider control (diff)
downloadmeta-impy-6e1e243da8c06ddd6847576c55e134d72ef42491.zip
meta-impy-6e1e243da8c06ddd6847576c55e134d72ef42491.tar.gz
meta-impy-6e1e243da8c06ddd6847576c55e134d72ef42491.tar.bz2
meta-impy-6e1e243da8c06ddd6847576c55e134d72ef42491.tar.xz
Merged bug fixes by Mm Alder and Admiral Admiral.
Diffstat (limited to 'linden/indra/newview')
-rw-r--r--linden/indra/newview/llchatbar.cpp8
-rw-r--r--linden/indra/newview/llcolorswatch.cpp2
-rw-r--r--linden/indra/newview/llhudeffectbeam.cpp5
-rw-r--r--linden/indra/newview/llhudeffectbeam.h1
-rw-r--r--linden/indra/newview/llhudeffecttrail.cpp5
-rw-r--r--linden/indra/newview/llhudeffecttrail.h1
-rw-r--r--linden/indra/newview/llhudobject.cpp21
-rw-r--r--linden/indra/newview/llhudobject.h2
-rw-r--r--linden/indra/newview/llimpanel.cpp2
-rw-r--r--linden/indra/newview/llinventoryview.cpp2
-rw-r--r--linden/indra/newview/lljoystickbutton.cpp26
-rw-r--r--linden/indra/newview/lljoystickbutton.h2
-rw-r--r--linden/indra/newview/llnameeditor.cpp10
-rw-r--r--linden/indra/newview/llnameeditor.h1
-rw-r--r--linden/indra/newview/llnamelistctrl.cpp2
-rw-r--r--linden/indra/newview/lltexturectrl.cpp2
-rw-r--r--linden/indra/newview/llviewertexteditor.cpp10
-rw-r--r--linden/indra/newview/llviewertexteditor.h1
-rw-r--r--linden/indra/newview/llvoavatar.cpp2
-rw-r--r--linden/indra/newview/llwebbrowserctrl.cpp10
-rw-r--r--linden/indra/newview/llwebbrowserctrl.h1
-rw-r--r--linden/indra/newview/pipeline.cpp23
22 files changed, 123 insertions, 16 deletions
diff --git a/linden/indra/newview/llchatbar.cpp b/linden/indra/newview/llchatbar.cpp
index 44d1ad1..1146c44 100644
--- a/linden/indra/newview/llchatbar.cpp
+++ b/linden/indra/newview/llchatbar.cpp
@@ -154,7 +154,7 @@ BOOL LLChatBar::postBuild()
154 mInputEditor->setPassDelete(TRUE); 154 mInputEditor->setPassDelete(TRUE);
155 mInputEditor->setReplaceNewlinesWithSpaces(FALSE); 155 mInputEditor->setReplaceNewlinesWithSpaces(FALSE);
156 156
157 mInputEditor->setMaxTextLength(1023); 157 mInputEditor->setMaxTextLength(DB_CHAT_MSG_STR_LEN);
158 mInputEditor->setEnableLineHistory(TRUE); 158 mInputEditor->setEnableLineHistory(TRUE);
159 } 159 }
160 160
@@ -624,8 +624,12 @@ void LLChatBar::sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL
624 624
625 LLWString out_text = stripChannelNumber(wtext, &channel); 625 LLWString out_text = stripChannelNumber(wtext, &channel);
626 std::string utf8_out_text = wstring_to_utf8str(out_text); 626 std::string utf8_out_text = wstring_to_utf8str(out_text);
627 std::string utf8_text = wstring_to_utf8str(wtext); 627 if (!utf8_out_text.empty())
628 {
629 utf8_out_text = utf8str_truncate(utf8_out_text, MAX_MSG_STR_LEN);
630 }
628 631
632 std::string utf8_text = wstring_to_utf8str(wtext);
629 utf8_text = utf8str_trim(utf8_text); 633 utf8_text = utf8str_trim(utf8_text);
630 if (!utf8_text.empty()) 634 if (!utf8_text.empty())
631 { 635 {
diff --git a/linden/indra/newview/llcolorswatch.cpp b/linden/indra/newview/llcolorswatch.cpp
index 5f8d9ed..3222c0d 100644
--- a/linden/indra/newview/llcolorswatch.cpp
+++ b/linden/indra/newview/llcolorswatch.cpp
@@ -348,6 +348,8 @@ LLXMLNodePtr LLColorSwatchCtrl::getXML(bool save_children) const
348{ 348{
349 LLXMLNodePtr node = LLUICtrl::getXML(); 349 LLXMLNodePtr node = LLUICtrl::getXML();
350 350
351 node->setName(LL_COLOR_SWATCH_CTRL_TAG);
352
351 node->createChild("color", TRUE)->setFloatValue(4, mColor.mV); 353 node->createChild("color", TRUE)->setFloatValue(4, mColor.mV);
352 354
353 node->createChild("border_color", TRUE)->setFloatValue(4, mBorderColor.mV); 355 node->createChild("border_color", TRUE)->setFloatValue(4, mBorderColor.mV);
diff --git a/linden/indra/newview/llhudeffectbeam.cpp b/linden/indra/newview/llhudeffectbeam.cpp
index 6cb3bef..a7c1214 100644
--- a/linden/indra/newview/llhudeffectbeam.cpp
+++ b/linden/indra/newview/llhudeffectbeam.cpp
@@ -312,6 +312,11 @@ void LLHUDEffectBeam::render()
312 } 312 }
313} 313}
314 314
315void LLHUDEffectBeam::renderForTimer()
316{
317 render();
318}
319
315void LLHUDEffectBeam::setupParticle(const S32 i) 320void LLHUDEffectBeam::setupParticle(const S32 i)
316{ 321{
317 LLVector3d start_pos_global; 322 LLVector3d start_pos_global;
diff --git a/linden/indra/newview/llhudeffectbeam.h b/linden/indra/newview/llhudeffectbeam.h
index 7365894..69e2b51 100644
--- a/linden/indra/newview/llhudeffectbeam.h
+++ b/linden/indra/newview/llhudeffectbeam.h
@@ -58,6 +58,7 @@ protected:
58 ~LLHUDEffectBeam(); 58 ~LLHUDEffectBeam();
59 59
60 /*virtual*/ void render(); 60 /*virtual*/ void render();
61 /*virtual*/ void renderForTimer();
61 /*virtual*/ void packData(LLMessageSystem *mesgsys); 62 /*virtual*/ void packData(LLMessageSystem *mesgsys);
62 /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum); 63 /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum);
63private: 64private:
diff --git a/linden/indra/newview/llhudeffecttrail.cpp b/linden/indra/newview/llhudeffecttrail.cpp
index 32b52f8..08f4c78 100644
--- a/linden/indra/newview/llhudeffecttrail.cpp
+++ b/linden/indra/newview/llhudeffecttrail.cpp
@@ -287,3 +287,8 @@ void LLHUDEffectSpiral::render()
287 return; 287 return;
288 } 288 }
289} 289}
290
291void LLHUDEffectSpiral::renderForTimer()
292{
293 render();
294}
diff --git a/linden/indra/newview/llhudeffecttrail.h b/linden/indra/newview/llhudeffecttrail.h
index 60836c2..033fbeb 100644
--- a/linden/indra/newview/llhudeffecttrail.h
+++ b/linden/indra/newview/llhudeffecttrail.h
@@ -68,6 +68,7 @@ protected:
68 ~LLHUDEffectSpiral(); 68 ~LLHUDEffectSpiral();
69 69
70 /*virtual*/ void render(); 70 /*virtual*/ void render();
71 /*virtual*/ void renderForTimer();
71 /*virtual*/ void packData(LLMessageSystem *mesgsys); 72 /*virtual*/ void packData(LLMessageSystem *mesgsys);
72 /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum); 73 /*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum);
73private: 74private:
diff --git a/linden/indra/newview/llhudobject.cpp b/linden/indra/newview/llhudobject.cpp
index bdff492..ea6e0bf 100644
--- a/linden/indra/newview/llhudobject.cpp
+++ b/linden/indra/newview/llhudobject.cpp
@@ -308,6 +308,27 @@ void LLHUDObject::renderAllForSelect()
308} 308}
309 309
310// static 310// static
311void LLHUDObject::renderAllForTimer()
312{
313 LLHUDObject *hud_objp;
314
315 hud_object_list_t::iterator object_it;
316 for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); )
317 {
318 hud_object_list_t::iterator cur_it = object_it++;
319 hud_objp = (*cur_it);
320 if (hud_objp->getNumRefs() == 1)
321 {
322 sHUDObjects.erase(cur_it);
323 }
324 else if (hud_objp->isVisible())
325 {
326 hud_objp->renderForTimer();
327 }
328 }
329}
330
331// static
311void LLHUDObject::sortObjects() 332void LLHUDObject::sortObjects()
312{ 333{
313 sHUDObjects.sort(hud_object_further_away()); 334 sHUDObjects.sort(hud_object_further_away());
diff --git a/linden/indra/newview/llhudobject.h b/linden/indra/newview/llhudobject.h
index 2cd8abf..84c2f84 100644
--- a/linden/indra/newview/llhudobject.h
+++ b/linden/indra/newview/llhudobject.h
@@ -75,6 +75,7 @@ public:
75 static void updateAll(); 75 static void updateAll();
76 static void renderAll(); 76 static void renderAll();
77 static void renderAllForSelect(); 77 static void renderAllForSelect();
78 static void renderAllForTimer();
78 79
79 static void cleanupHUDObjects(); 80 static void cleanupHUDObjects();
80 81
@@ -106,6 +107,7 @@ protected:
106 107
107 virtual void render() = 0; 108 virtual void render() = 0;
108 virtual void renderForSelect() {}; 109 virtual void renderForSelect() {};
110 virtual void renderForTimer() {};
109 111
110protected: 112protected:
111 U8 mType; 113 U8 mType;
diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp
index a5950ce..326694a 100644
--- a/linden/indra/newview/llimpanel.cpp
+++ b/linden/indra/newview/llimpanel.cpp
@@ -1197,7 +1197,7 @@ void LLFloaterIMPanel::init(const std::string& session_label)
1197 1197
1198 setTitle(mSessionLabel); 1198 setTitle(mSessionLabel);
1199 1199
1200 mInputEditor->setMaxTextLength(1023); 1200 mInputEditor->setMaxTextLength(DB_IM_MSG_STR_LEN);
1201 // enable line history support for instant message bar 1201 // enable line history support for instant message bar
1202 mInputEditor->setEnableLineHistory(TRUE); 1202 mInputEditor->setEnableLineHistory(TRUE);
1203 1203
diff --git a/linden/indra/newview/llinventoryview.cpp b/linden/indra/newview/llinventoryview.cpp
index f0bfa00..97df7a3 100644
--- a/linden/indra/newview/llinventoryview.cpp
+++ b/linden/indra/newview/llinventoryview.cpp
@@ -1654,6 +1654,8 @@ LLXMLNodePtr LLInventoryPanel::getXML(bool save_children) const
1654{ 1654{
1655 LLXMLNodePtr node = LLPanel::getXML(false); // Do not print out children 1655 LLXMLNodePtr node = LLPanel::getXML(false); // Do not print out children
1656 1656
1657 node->setName(LL_INVENTORY_PANEL_TAG);
1658
1657 node->createChild("allow_multi_select", TRUE)->setBoolValue(mFolders->getAllowMultiSelect()); 1659 node->createChild("allow_multi_select", TRUE)->setBoolValue(mFolders->getAllowMultiSelect());
1658 1660
1659 return node; 1661 return node;
diff --git a/linden/indra/newview/lljoystickbutton.cpp b/linden/indra/newview/lljoystickbutton.cpp
index 326c511..05c5e41 100644
--- a/linden/indra/newview/lljoystickbutton.cpp
+++ b/linden/indra/newview/lljoystickbutton.cpp
@@ -248,16 +248,10 @@ EJoystickQuadrant LLJoystick::quadrantFromName(const std::string& sQuadrant)
248 248
249LLXMLNodePtr LLJoystick::getXML(bool save_children) const 249LLXMLNodePtr LLJoystick::getXML(bool save_children) const
250{ 250{
251 LLXMLNodePtr node = LLUICtrl::getXML(); 251 LLXMLNodePtr node = LLButton::getXML();
252 252
253 node->createChild("halign", TRUE)->setStringValue(LLFontGL::nameFromHAlign(getHAlign()));
254 node->createChild("quadrant", TRUE)->setStringValue(nameFromQuadrant(mInitialQuadrant)); 253 node->createChild("quadrant", TRUE)->setStringValue(nameFromQuadrant(mInitialQuadrant));
255
256 addImageAttributeToXML(node,getImageUnselectedName(),getImageUnselectedID(),std::string("image_unselected"));
257 addImageAttributeToXML(node,getImageSelectedName(),getImageSelectedID(),std::string("image_selected"));
258 254
259 node->createChild("scale_image", TRUE)->setBoolValue(getScaleImage());
260
261 return node; 255 return node;
262} 256}
263 257
@@ -327,6 +321,15 @@ void LLJoystickAgentTurn::onHeldDown()
327 } 321 }
328} 322}
329 323
324LLXMLNodePtr LLJoystickAgentTurn::getXML(bool save_children) const
325{
326 LLXMLNodePtr node = LLJoystick::getXML();
327
328 node->setName(LL_JOYSTICK_TURN);
329
330 return node;
331}
332
330LLView* LLJoystickAgentTurn::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 333LLView* LLJoystickAgentTurn::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
331{ 334{
332 std::string name("button"); 335 std::string name("button");
@@ -435,6 +438,15 @@ void LLJoystickAgentSlide::onHeldDown()
435} 438}
436 439
437 440
441LLXMLNodePtr LLJoystickAgentSlide::getXML(bool save_children) const
442{
443 LLXMLNodePtr node = LLJoystick::getXML();
444
445 node->setName(LL_JOYSTICK_SLIDE);
446
447 return node;
448}
449
438// static 450// static
439LLView* LLJoystickAgentSlide::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 451LLView* LLJoystickAgentSlide::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
440{ 452{
diff --git a/linden/indra/newview/lljoystickbutton.h b/linden/indra/newview/lljoystickbutton.h
index 076a506..b26851f 100644
--- a/linden/indra/newview/lljoystickbutton.h
+++ b/linden/indra/newview/lljoystickbutton.h
@@ -97,6 +97,7 @@ public:
97 97
98 virtual void onHeldDown(); 98 virtual void onHeldDown();
99 99
100 virtual LLXMLNodePtr getXML(bool save_children = true) const;
100 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 101 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
101 102
102}; 103};
@@ -114,6 +115,7 @@ public:
114 virtual void onHeldDown(); 115 virtual void onHeldDown();
115 virtual void onMouseUp(); 116 virtual void onMouseUp();
116 117
118 virtual LLXMLNodePtr getXML(bool save_children = true) const;
117 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 119 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
118}; 120};
119 121
diff --git a/linden/indra/newview/llnameeditor.cpp b/linden/indra/newview/llnameeditor.cpp
index e4a6573..5997369 100644
--- a/linden/indra/newview/llnameeditor.cpp
+++ b/linden/indra/newview/llnameeditor.cpp
@@ -141,6 +141,16 @@ LLSD LLNameEditor::getValue() const
141 return LLSD(mNameID); 141 return LLSD(mNameID);
142} 142}
143 143
144// virtual
145LLXMLNodePtr LLNameEditor::getXML(bool save_children) const
146{
147 LLXMLNodePtr node = LLLineEditor::getXML();
148
149 node->setName(LL_NAME_EDITOR_TAG);
150
151 return node;
152}
153
144LLView* LLNameEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 154LLView* LLNameEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
145{ 155{
146 std::string name("name_editor"); 156 std::string name("name_editor");
diff --git a/linden/indra/newview/llnameeditor.h b/linden/indra/newview/llnameeditor.h
index bc5a678..964682c 100644
--- a/linden/indra/newview/llnameeditor.h
+++ b/linden/indra/newview/llnameeditor.h
@@ -62,6 +62,7 @@ public:
62 62
63 virtual ~LLNameEditor(); 63 virtual ~LLNameEditor();
64 64
65 virtual LLXMLNodePtr getXML(bool save_children = true) const;
65 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 66 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
66 67
67 void setNameID(const LLUUID& name_id, BOOL is_group); 68 void setNameID(const LLUUID& name_id, BOOL is_group);
diff --git a/linden/indra/newview/llnamelistctrl.cpp b/linden/indra/newview/llnamelistctrl.cpp
index baf0656..453cf7f 100644
--- a/linden/indra/newview/llnamelistctrl.cpp
+++ b/linden/indra/newview/llnamelistctrl.cpp
@@ -288,6 +288,8 @@ LLXMLNodePtr LLNameListCtrl::getXML(bool save_children) const
288{ 288{
289 LLXMLNodePtr node = LLScrollListCtrl::getXML(); 289 LLXMLNodePtr node = LLScrollListCtrl::getXML();
290 290
291 node->setName(LL_NAME_LIST_CTRL_TAG);
292
291 node->createChild("allow_calling_card_drop", TRUE)->setBoolValue(mAllowCallingCardDrop); 293 node->createChild("allow_calling_card_drop", TRUE)->setBoolValue(mAllowCallingCardDrop);
292 294
293 if (mNameColumnIndex != 0) 295 if (mNameColumnIndex != 0)
diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp
index c4ea71e..5500973 100644
--- a/linden/indra/newview/lltexturectrl.cpp
+++ b/linden/indra/newview/lltexturectrl.cpp
@@ -969,6 +969,8 @@ LLXMLNodePtr LLTextureCtrl::getXML(bool save_children) const
969{ 969{
970 LLXMLNodePtr node = LLUICtrl::getXML(); 970 LLXMLNodePtr node = LLUICtrl::getXML();
971 971
972 node->setName(LL_TEXTURE_CTRL_TAG);
973
972 node->createChild("label", TRUE)->setStringValue(getLabel()); 974 node->createChild("label", TRUE)->setStringValue(getLabel());
973 975
974 node->createChild("default_image_name", TRUE)->setStringValue(getDefaultImageName()); 976 node->createChild("default_image_name", TRUE)->setStringValue(getDefaultImageName());
diff --git a/linden/indra/newview/llviewertexteditor.cpp b/linden/indra/newview/llviewertexteditor.cpp
index 296c540..e5e2cd6 100644
--- a/linden/indra/newview/llviewertexteditor.cpp
+++ b/linden/indra/newview/llviewertexteditor.cpp
@@ -1555,6 +1555,16 @@ BOOL LLViewerTextEditor::exportBuffer( std::string& buffer )
1555 return TRUE; 1555 return TRUE;
1556} 1556}
1557 1557
1558// virtual
1559LLXMLNodePtr LLViewerTextEditor::getXML(bool save_children) const
1560{
1561 LLXMLNodePtr node = LLTextEditor::getXML();
1562
1563 node->setName(LL_TEXT_EDITOR_TAG);
1564
1565 return node;
1566}
1567
1558LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 1568LLView* LLViewerTextEditor::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
1559{ 1569{
1560 std::string name("text_editor"); 1570 std::string name("text_editor");
diff --git a/linden/indra/newview/llviewertexteditor.h b/linden/indra/newview/llviewertexteditor.h
index f29caee..c69b3f0 100644
--- a/linden/indra/newview/llviewertexteditor.h
+++ b/linden/indra/newview/llviewertexteditor.h
@@ -54,6 +54,7 @@ public:
54 54
55 virtual void makePristine(); 55 virtual void makePristine();
56 56
57 virtual LLXMLNodePtr getXML(bool save_children = true) const;
57 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 58 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
58 59
59 // mousehandler overrides 60 // mousehandler overrides
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp
index 7e1c6ca..afee0a1 100644
--- a/linden/indra/newview/llvoavatar.cpp
+++ b/linden/indra/newview/llvoavatar.cpp
@@ -169,7 +169,7 @@ const F32 TIME_BEFORE_MESH_CLEANUP = 5.f; // seconds
169const S32 AVATAR_RELEASE_THRESHOLD = 10; // number of avatar instances before releasing memory 169const S32 AVATAR_RELEASE_THRESHOLD = 10; // number of avatar instances before releasing memory
170const F32 FOOT_GROUND_COLLISION_TOLERANCE = 0.25f; 170const F32 FOOT_GROUND_COLLISION_TOLERANCE = 0.25f;
171const F32 AVATAR_LOD_TWEAK_RANGE = 0.7f; 171const F32 AVATAR_LOD_TWEAK_RANGE = 0.7f;
172const S32 MAX_BUBBLE_CHAT_LENGTH = 1023; 172const S32 MAX_BUBBLE_CHAT_LENGTH = DB_CHAT_MSG_STR_LEN;
173const S32 MAX_BUBBLE_CHAT_UTTERANCES = 12; 173const S32 MAX_BUBBLE_CHAT_UTTERANCES = 12;
174const F32 CHAT_FADE_TIME = 8.0; 174const F32 CHAT_FADE_TIME = 8.0;
175const F32 BUBBLE_CHAT_TIME = CHAT_FADE_TIME * 3.f; 175const F32 BUBBLE_CHAT_TIME = CHAT_FADE_TIME * 3.f;
diff --git a/linden/indra/newview/llwebbrowserctrl.cpp b/linden/indra/newview/llwebbrowserctrl.cpp
index 89cb62b..453b9d2 100644
--- a/linden/indra/newview/llwebbrowserctrl.cpp
+++ b/linden/indra/newview/llwebbrowserctrl.cpp
@@ -1012,6 +1012,16 @@ void LLWebBrowserTexture::resize( S32 new_width, S32 new_height )
1012 mLastBrowserDepth = media_depth; 1012 mLastBrowserDepth = media_depth;
1013} 1013}
1014 1014
1015// virtual
1016LLXMLNodePtr LLWebBrowserCtrl::getXML(bool save_children) const
1017{
1018 LLXMLNodePtr node = LLUICtrl::getXML();
1019
1020 node->setName(LL_WEB_BROWSER_CTRL_TAG);
1021
1022 return node;
1023}
1024
1015LLView* LLWebBrowserCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory) 1025LLView* LLWebBrowserCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory)
1016{ 1026{
1017 std::string name("web_browser"); 1027 std::string name("web_browser");
diff --git a/linden/indra/newview/llwebbrowserctrl.h b/linden/indra/newview/llwebbrowserctrl.h
index 0f46aa1..0100807 100644
--- a/linden/indra/newview/llwebbrowserctrl.h
+++ b/linden/indra/newview/llwebbrowserctrl.h
@@ -191,6 +191,7 @@ class LLWebBrowserCtrl :
191 // Defaults to true. 191 // Defaults to true.
192 void setTakeFocusOnClick( bool take_focus ); 192 void setTakeFocusOnClick( bool take_focus );
193 193
194 virtual LLXMLNodePtr getXML(bool save_children = true) const;
194 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory); 195 static LLView* fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory *factory);
195 196
196 // handle mouse related methods 197 // handle mouse related methods
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp
index 4ea9e41..d3ee8b6 100644
--- a/linden/indra/newview/pipeline.cpp
+++ b/linden/indra/newview/pipeline.cpp
@@ -2724,12 +2724,20 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
2724 2724
2725 LLVertexBuffer::unbind(); 2725 LLVertexBuffer::unbind();
2726 2726
2727 if (!LLPipeline::sReflectionRender && !LLPipeline::sRenderDeferred && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI)) 2727 if (!LLPipeline::sReflectionRender && !LLPipeline::sRenderDeferred)
2728 { 2728 {
2729 // Render debugging beacons. 2729 if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
2730 gObjectList.renderObjectBeacons(); 2730 {
2731 LLHUDObject::renderAll(); 2731 // Render debugging beacons.
2732 gObjectList.resetObjectBeacons(); 2732 gObjectList.renderObjectBeacons();
2733 LLHUDObject::renderAll();
2734 gObjectList.resetObjectBeacons();
2735 }
2736 else
2737 {
2738 // Make sure particle effects disappear
2739 LLHUDObject::renderAllForTimer();
2740 }
2733 } 2741 }
2734 2742
2735 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomEnd"); 2743 LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomEnd");
@@ -2954,6 +2962,11 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
2954 LLHUDObject::renderAll(); 2962 LLHUDObject::renderAll();
2955 gObjectList.resetObjectBeacons(); 2963 gObjectList.resetObjectBeacons();
2956 } 2964 }
2965 else
2966 {
2967 // Make sure particle effects disappear
2968 LLHUDObject::renderAllForTimer();
2969 }
2957 2970
2958 if (occlude) 2971 if (occlude)
2959 { 2972 {