Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
I've found out that the only case when pressing ESC doesn't transfer focus from side tray to game area is
when a flat list view (people, groups, teleport history, etc) is focused.
So, I fixed LLFlatListView to handle pressing ESC as expected.
Reviewed by Sergey Litovchuk at https://codereview.productengine.com/secondlife/r/862/
--HG--
branch : product-engine
|
|
escape.
Though bug description mentioned only appearance, bug reproduced for all slidercontrols. The cause of returning on escape to old value
instead of last commited one was that on commit slidercontrol set text for it's lineeditor which was the same as the one currently typed
into lineeditor(and it seems logical). But LLLineEditor::setText() has check at it's beginning which compares text which is being set to the
one which is already there. If this check succeeds, we exit the method and thus saving of value for revert is not reached. That's why when revert happened
on escape older value then the last commited was set in lineeditor.
- Added additional call of setText() in sliderctrl to force changes in currently set text so that on next call with "real" text saving of reverted value was reached.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/856/
--HG--
branch : product-engine
|
|
|
|
- Added callback on show\hide Mini Location Panel event. This callback sets proper initial minimized position depending on state (shown or hidded) Mini Location Panel. Also callback shifts vertically already minimized floaters so that they don't overlap Mini Location Panel
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/851/
--HG--
branch : product-engine
|
|
Outfits tab is open.
- Removed "tab_stop" from outfit tabs to prevent passing focus to a tab chosen by default from LLUICtrl::focusFirstItem(). Besides the order of passing focus between outfit tabs by pressing "Tab" was undetermined.
- Had to remove const from the return of LLAccordionCtrl::getSelectedTab() to use the returned pointer for setting focus.
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/846/.
--HG--
branch : product-engine
|
|
There were two problems:
1. Underlining broke when avatar's first and second name were on different lines.
2. There was no underline on hover for avatar miniinspector links in plaintext IM.
- First problem was caused by calling LLOnHoverChangeableTextSegment::draw() for the same segment twice- for first and second name that were
on different lines, while handleHover() was called only once. So handleHover() was called -> text was underlined -> first part of segment was
drawn underlined -> its draw set style back to normal -> second part of segment was drawn without underlining.
Fixed this by setting style back to normal only when drawing the last part of the segment.
- Second problem was caused by unusual way of appending link to text in chat history.
Changed it so that LLTextBase::appendText() now receives link not inside style params, but directly.
Also added "/inspect" ending to check in LLUrlEntryAgent::underlineOnHoverOnly().
Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/833/
--HG--
branch : product-engine
|
|
panel from passing focus to folder view's scroll container.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/823/.
--HG--
branch : product-engine
|
|
drop-down list by mouse wheel)
Added parameter for scroll list control that determines opaque of mouse scroll wheel event. Set this parameter to \"true\" in combobox of navigation panel.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/829/
--HG--
branch : product-engine
|
|
under Advanced menu (French viewer) > Shortcuts)
Set translated label from strings.xml
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/831/
--HG--
branch : product-engine
|
|
--HG--
branch : product-engine
|
|
scale != 1.0
|
|
feeeeling.
|
|
mouselook mode.
Commiting on behalf of Alex Productengine.
- Added check if floater is constructed in mouselook mode and added forcing dock state when floater is shown after constructing in mouselook mode.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/830/
--HG--
branch : product-engine
|
|
|
|
|
|
|
|
implemented childGetVisibleTab/PanelWithHelp using breadth-first-search iterator
moved tentative state from llview to lluictrl
changes llcallbackmap to use boost::function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
floaters are open and docked.
Bug was caused by LLDockableFloater's mOverlapsScreenChannel to false only in one of it's constructors. So some floaters got initial value of mOverlapsScreenChannel depending on system- that's why bug reproduced on Windows and didn't reproduce on Linux.
- Moved setting mOverlapsScreenChannel to false into LLDockableFloater's init() which is called by all of it's constructors.
Reviewed by Alexei Arabadji at https://codereview.productengine.com/secondlife/r/818
--HG--
branch : product-engine
|
|
Reason:
Check menu items (instances of LLMenuItemCheckGL) had used LLUICtrl::getValue() to know whether they should draw the checkmark.
Recently this was broken when getValue() was overriden in LLMenuItemCallGL to return a string.
Fix:
Overriden getValue() in LLMenuItemCheckGL to return a boolean value, not a string.
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/821/
--HG--
branch : product-engine
|
|
|
|
"scrollToShowRect" event from the child accordion tab's scroll container.
This problem begins from expanding accordion_tab:
1. adjustToFitScreen - calls adjustContainerPanel with "fit screen" rectangle (calls reshape() and resize()).
Enter adjustContainerPanel("fit screen")
2. reshape calls ensureSelectedVisible -> scrollToShowRect...
scrollToShowRect notifyParent about "scrollToShowRect" (notifiParent is sync call)
Enter LLAccordionCtrl::notifyParent("scrollToShowRect")
4. AccordionCtrl handles "scrollToShowRect" notification and perform adjustContainerPanel with "another" rectangle.
Perform adjustContainerPanel("another") // At least I have not seen 3rd recursive call of adjustContainerPanel
5. Exit LLAccordionCtrl::notifyParent("scrollToShowRect")
6. Exit reshape("fit screen").
7. setRect("fit screen").
8. Exit adjustContainerPanel("fit screen").
...
As result we get AccordionTab that reshaped to "another" rectangle and resized to "fit screen" rectangle.
+ Fixed by handling "scrollToShowRect" message in LLAccordionCtrlTab from "LLScrollContainer".
+ Removed the workaround comment.
Reviewed by Neal Orman at https://codereview.productengine.com/secondlife/r/727/
--HG--
branch : product-engine
|
|
|
|
|
|
|
|
|
|
|
|
Avatar links are now underlined only on hover. Also they have the same color as other links.
- Underlining text and getting it back to normal are done in handleHover() and draw() of new LLOnHoverChangeableTextSegment
class derived from LLNormalTextSegment. This class has two pointers to styles- one for style which will be used for text
on hover, and another otherwise. This special type of text segment is used if link's boolean member mUnderlineOnHoverOnly
is true. So it is URL's flag depending on which textbase adds new text segment(like it currently happens with mDisabledLink).
- Changed avatar link color in colors.xml to emphasis (because it was white before and was inconsistent with other links).
Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/749/
--HG--
branch : product-engine
|
|
after add/replace)
- Added selected item type (in flat list view) as criterion when determining filter type in 'Add More' panel
- Fixed LLAccordionCtrl::getSelectedTab() method. When 'selection_enabled = false' for LLAccordionCtrlTab, LLAccordionCtrl::getSelectedTab() returned NULL, even if some accordion tab was selected. Now it's OK. Method returns currently selected LLAccordionCtrlTab.
Reviewed by Mike Antipov, Neal Orman and Richard Nelson at https://codereview.productengine.com/secondlife/r/790/
--HG--
branch : product-engine
|
|
|
|
|
|
'Sit' entries.
Details:
1 Provided using Object.EnableSit and Object.EnableTouch callbacks for both object menu and inspector gear menu. Now default menu item label stores in
hash map and since callback receives triggered control no need to hardcode updating menu item labels from callback.
2 Removed redundant attribute 'parameter' from menu xml's since now handler callbacks receives triggered menu item as function parameter.
3 Replaced LLObjectEnableTouch class with enable_object_touch function, since there no need on triggering callback on menu commit event.
4 Added symmetric method LLMenuItemGL::getValue().
5 Removed unused "Object.EnableGearSit" callback.
reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/774/
--HG--
branch : product-engine
|
|
|
|
(on Windows) before converting it to LLWString.
Problem on Windows:
==================
LLPanelMainInventory::updateItemcountText() formats number using viewer locale.
non-break space is detected as unknown symbols while converting utf8str_to_wstring when formatted text is set to LLTextBox.
FIX:
===
Added converting of string to multi-byte string and then to utf8 string while formatting on Windows.
created opposite to "ll_convert_wide_to_string" function "ll_convert_string_to_wide" and helper function to call both of them.
It is used now to convert result of formatted string while formatting integer number in locale.
Fix affects Windows only.
Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/775/
--HG--
branch : product-engine
|
|
|
|
characters and new line in text editor.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/786/.
--HG--
branch : product-engine
|
|
Outfit panel reopening)
Now accordion on panels 'Edit Outfit', 'Editing Shape', 'Editing Hair', 'Editing Eyes', 'Editing Skin', 'Group Profile' and 'Place Profile' are reset when the panels are closed and then opened again.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/782/
--HG--
branch : product-engine
|
|
|
|
|
|
|
|
LLPanelStandStopFlying is always valid to prevent crash.
Consequences of root cause:
Static pointer to LLPanelStandStopFlying in LLPanelStandStopFlying::getInstance() becomes invalid when the instance of the LLPanelStandStopFlying is a child of floater while it is destroying.
Next usage of that pointed cause a crash.
Root Cause:
1. LLFloater::closeFloater sets floater invisible and marks floater as "dead" but does not destroy it.
2. But that instance was still in LLFloaterReg map. It is removed in LLFloater's destructor.
3. So it was possible on low fps to get "dead" floater with LLFloaterReg, LLFloaterMove in this case.
4. Then LLMortician deleted floater instance shown on previous step.
Call of setVisible(false) from the LLFloater's destructor does not call overridden LLFloaterMove's method (which is expected behavior.)
So, child panel LLPanelStandStopFlying was not re-parented to Main View and was destroyed with LLFloaterMove.
That leaded to the "Top Reason" described above.
FIX:
1. Ensure that LLPanelStandStopFlying is not a child of LLFloaterMove on its destroying.
2. Synchronized removing of a floater instance from the LLFloaterReg when it is marked as "dead".
Note: both changes fixes this bug independently, but I included both of them into result patch to avoid similar but in the future.
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/781/
--HG--
branch : product-engine
|
|
|