fixed bug where resizing window would cause stacked floaters to move relative to each other
renamed positioning enums to reflect the fact that they apply all the time now, not just when opening floaters
floaters given specified positions will stay in that location
floaters that stack will treat that as a specified position
moving any floater will switch to relative positioning mode
cleaned up some XUI where widgets were relying on a default height of 10 pixels
force all floaters to have follows flags = FOLLOWS_NONE and use llfloaterview::reshape logic instead
removed existing follows flags from any floater XUI and deprecated the follows parameter for floaters
EXP-1412 FIX Additional Inventory windows are opened directly on top of each after opening additional inventory windows and closing the first time
also made sidepanel floaters reuse the existing instances, saving state
moved "chrome" flags to xui
separated hiding floater title from setting chrome
toolbar toggle button now moves floaters to frontmost and doesn't necessarily rely on focus
EXP-1299 Nearby Voice floater can't be closed by clicking the sidebar button again.
EXP-1306 Prompt text to "Change your avatar" and "Destinations" floaters get pushed down one line when the floater dialog gets resized to minimum width
moved floater snap region to middle of toolbars and constrained floaters to that snap region
also made toybox floater pass all drag and drop events along to toolbar
changed ordering of template loading relative to constructor setting of params
moved a lot of constructor-set params to template files
reviewed by Leslie
EXP-1030 FIX Search button toggle can get out of synch in bottom bar
made llinstancetracker::iterator do own nested level management (removing need for separate guard)
added support for filename= to floaters
can pass in arbitrary window_class to floaters
Reason: The shortcut closes all floaters, including those wrapping undocked sidepanels.
The sidepanels get destroyed as well, while they are still referenced by the side tray.
Fix: Dock (i.e. move to side tray) the sidepanel before its floater gets destroyed.
set focus root to true by default for all floaters via floater.xml template
existing calls to setIsChrome will turn off focus root for chrome floaters after initializing it from the focus_root parameter
Bug was caused by not fiding focus root in LLUICtrl::findRootMostFocusRoot() when tab was pressed in floaters. When it was not found, LLPanel::handleKeyHere() didn't move focus to the next control.
Floaters had erroneous behaviour because of focus_root xml param: though value of focus root was set with setFocusRoot() in floater's constructor , later it was overwritten in LLFloater::initFloaterXML() with value from xml again.
This problem was introduced in af49c237b0f9 - there focus root was moved to xml.
- To fix the problem, setFocusRoot() call was added after initFromParams() in LLFloater::initFloaterXML() to set proper value of focus root after overwriting it from xml.
The drawback of the fix is that focus_root param is ignored by floaters and its value is determined depending on chrome, as it did before but the only other way to fix this problem would be to set the param in xml manually for each existing floater, and do it for each new floater added to viewer.