Merge branch 'DRTVWR-580-maint-T' of https://github.com/secondlife/viewer

master
Ansariel 2023-07-07 21:16:55 +02:00
commit d80a1dee15
6 changed files with 6 additions and 16 deletions

View File

@ -39,11 +39,6 @@ void LL::ThreadPool::start()
run(tname);
});
}
// Special workflow for LLWindowWin32Thread - it's close() should be called explicitly
if (mExplicitShutdown)
return;
// Listen on "LLApp", and when the app is shutting down, close the queue
// and join the workers.
LLEventPumps::instance().obtain("LLApp").listen(

View File

@ -59,10 +59,6 @@ namespace LL
*/
virtual void run();
protected:
// LLWindowWin32Thread should set this flag to true
bool mExplicitShutdown { false };
private:
void run(const std::string& name);

View File

@ -4719,9 +4719,6 @@ void LLWindowWin32::getWindowChrome( U32 &aChromeW, U32 &aChromeH )
inline LLWindowWin32::LLWindowWin32Thread::LLWindowWin32Thread()
: ThreadPool("Window Thread", 1, MAX_QUEUE_SIZE)
{
// Set this flag to true to avoid of implicit call of close() from start()
mExplicitShutdown = true;
ThreadPool::start();
}

View File

@ -1690,7 +1690,8 @@ bool LLViewerInput::scanKey(KEY key, BOOL key_down, BOOL key_up, BOOL key_level)
BOOL LLViewerInput::handleMouse(LLWindow *window_impl, LLCoordGL pos, MASK mask, EMouseClickType clicktype, BOOL down)
{
BOOL handled = gViewerWindow->handleAnyMouseClick(window_impl, pos, mask, clicktype, down);
bool is_toolmgr_action = false;
BOOL handled = gViewerWindow->handleAnyMouseClick(window_impl, pos, mask, clicktype, down, is_toolmgr_action);
if (clicktype != CLICK_NONE)
{
@ -1709,7 +1710,7 @@ BOOL LLViewerInput::handleMouse(LLWindow *window_impl, LLCoordGL pos, MASK mask,
// If the first LMB click is handled by the menu, skip the following double click
static bool skip_double_click = false;
if (clicktype == CLICK_LEFT && down )
if (clicktype == CLICK_LEFT && down && !is_toolmgr_action)
{
skip_double_click = handled;
}

View File

@ -1150,7 +1150,7 @@ void LLViewerWindow::handlePieMenu(S32 x, S32 y, MASK mask)
}
}
BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK mask, EMouseClickType clicktype, BOOL down)
BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK mask, EMouseClickType clicktype, BOOL down, bool& is_toolmgr_action)
{
const char* buttonname = "";
const char* buttonstatestr = "";
@ -1299,6 +1299,7 @@ BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK m
if(!gDisconnected && LLToolMgr::getInstance()->getCurrentTool()->handleAnyMouseClick( x, y, mask, clicktype, down ) )
{
LLViewerEventRecorder::instance().clear_xui();
is_toolmgr_action = true;
return TRUE;
}

View File

@ -180,7 +180,7 @@ public:
void reshapeStatusBarContainer();
BOOL handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK mask, EMouseClickType clicktype, BOOL down);
BOOL handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK mask, EMouseClickType clicktype, BOOL down, bool &is_toolmgr_action);
//
// LLWindowCallback interface implementation