Made bottom bar dependent floaters independent from it. Also some LLTransientDockableFloaters are just LLFLoaters now.
Note: IM Floater and SysWellWindow will be made independent within EXP-1276
This is ignored by every compiler except Linux g++ 4.4.3 in Release mode. In
that case, it literally does cause getInstance() to be inlined, therefore
llmoveview.o contains no such symbol, therefore the Linux viewer link fails in
Release mode. But for a method implementation in a .cpp file of a method
declared in a .h file, 'inline' is just wrong. Removing it fixes Release build.
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
- Removed code responsible for disabling actions panel when sitting.
- Removed LLFloaterMove::setEnabled() and replaced calls to it with calls showModeButtons() because it was the only code which remained there after first step of this fix.
Reviewed by Leyla Farazha at https://codereview.productengine.com/secondlife/r/655/
--HG--
branch : product-engine
- Added slide left and Move right buttons to movement actions panel, when inserting them in xml organized buttons in panel into 3 columns to make their position more easily configurable.
- Removed hiding of fly up and down buttons. When not flying(in walk/run mode) they act as jump ans crouch.
- Added movement mode(walk/run/fly) dependent tooltips for fly/jump/crouch and slide buttons.
- Added comment regarding implementation of move floater buttons toggling when user moves via keyboard (because it's not quite obvious and time consuming when you first encounter it) to LLFloaterMove::postBuild().
Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/360
--HG--
branch : product-engine
This issue is a regression of EXT-1655: Move Floater is notified about "not flying" after it was notified about "sitting".
Fix: taking into account siting mode while notifying about "flying".
Reviewed by Eugene Mutavchi at https://codereview.productengine.com/secondlife/r/233/
--HG--
branch : product-engine
- moved code to show Stop Flying button in a common place for both cases: click on "Stand" btn & call "Stand Up" menu item
--HG--
branch : product-engine
- synchronized visibility of "stand_stop_flying_container" with a panel visibility when it is reparented from the Move Floater to container.
--HG--
branch : product-engine
- reason: fix for bug EXT-2504 (black bars present at top and bottom when in mouselook) (changing parent visibility of panel with "Stand/Stop flying" buttons)
- fix: updated condition to process visibility of the parent of the panel with "Stand/Stop flying" buttons: only if panel is not attached to Move Floater
NOTE: The same problem was for EXT-3632 (Move floater closes after user click on Stop Flying btn)
Reverted that fix for Stop flying button to be consistent with "Stand".
--HG--
branch : product-engine