From 862a951880a8dfb2096b8bb88842f427d3c5f152 Mon Sep 17 00:00:00 2001 From: Merov Linden Date: Wed, 6 Oct 2010 20:22:53 -0700 Subject: Backed out changeset 28f52b3d2e3d (optimizations in button rendering). --- indra/llui/llbutton.cpp | 12 +++++------- indra/llui/llbutton.h | 1 - 2 files changed, 5 insertions(+), 8 deletions(-) (limited to 'indra/llui') diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index 5a4f0515fc..aeedf62379 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -120,7 +120,6 @@ LLButton::LLButton(const LLButton::Params& p) mFlashing( FALSE ), mCurGlowStrength(0.f), mNeedsHighlight(FALSE), - mMouseOver(false), mUnselectedLabel(p.label()), mSelectedLabel(p.label_selected()), mGLFont(p.font), @@ -505,11 +504,7 @@ void LLButton::onMouseEnter(S32 x, S32 y, MASK mask) LLUICtrl::onMouseEnter(x, y, mask); if (isInEnabledChain()) - { mNeedsHighlight = TRUE; - } - - mMouseOver = true; } void LLButton::onMouseLeave(S32 x, S32 y, MASK mask) @@ -517,7 +512,6 @@ void LLButton::onMouseLeave(S32 x, S32 y, MASK mask) LLUICtrl::onMouseLeave(x, y, mask); mNeedsHighlight = FALSE; - mMouseOver = true; } void LLButton::setHighlight(bool b) @@ -571,10 +565,14 @@ void LLButton::draw() } // Unselected image assignments + S32 local_mouse_x; + S32 local_mouse_y; + LLUI::getMousePositionLocal(this, &local_mouse_x, &local_mouse_y); + bool enabled = isInEnabledChain(); bool pressed = pressed_by_keyboard - || (hasMouseCapture() && mMouseOver) + || (hasMouseCapture() && pointInView(local_mouse_x, local_mouse_y)) || mForcePressedState; bool selected = getToggleState(); diff --git a/indra/llui/llbutton.h b/indra/llui/llbutton.h index 5f25084b35..f4af19b696 100644 --- a/indra/llui/llbutton.h +++ b/indra/llui/llbutton.h @@ -356,7 +356,6 @@ private: BOOL mCommitOnReturn; BOOL mFadeWhenDisabled; bool mForcePressedState; - bool mMouseOver; LLFrameTimer mFlashingTimer; }; -- cgit v1.2.3 From d0bc4fc5e656b07308fe5fe0dc99ed78c00efd78 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 9 Sep 2010 19:07:07 -0700 Subject: DEV-53015 FIX Volume slider disappears when sliding on panel_prim_media_controls.xml --- indra/llui/llbutton.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'indra/llui') diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index f014a2a98d..65ef3e5f8f 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -558,15 +558,19 @@ void LLButton::draw() pressed_by_keyboard = gKeyboard->getKeyDown(' ') || (mCommitOnReturn && gKeyboard->getKeyDown(KEY_RETURN)); } - // Unselected image assignments - S32 local_mouse_x; - S32 local_mouse_y; - LLUI::getMousePositionLocal(this, &local_mouse_x, &local_mouse_y); + bool mouse_pressed_and_over = false; + if (hasMouseCapture()) + { + S32 local_mouse_x ; + S32 local_mouse_y; + LLUI::getMousePositionLocal(this, &local_mouse_x, &local_mouse_y); + mouse_pressed_and_over = pointInView(local_mouse_x, local_mouse_y); + } bool enabled = isInEnabledChain(); bool pressed = pressed_by_keyboard - || (hasMouseCapture() && pointInView(local_mouse_x, local_mouse_y)) + || mouse_pressed_and_over || mForcePressedState; bool selected = getToggleState(); -- cgit v1.2.3 From d129d6ee23995d0a5e89aa71e56d6ed6aa95761e Mon Sep 17 00:00:00 2001 From: Kelly Washington Date: Fri, 24 Sep 2010 15:57:17 -0700 Subject: VWR-21377 Script editor ctrl-f fix. let some LLViews handle shortcut keys if they want. reviewed with ambroff --- indra/llui/llfocusmgr.cpp | 14 ++++++++++++++ indra/llui/llfocusmgr.h | 2 ++ indra/llui/llview.h | 5 +++++ 3 files changed, 21 insertions(+) (limited to 'indra/llui') diff --git a/indra/llui/llfocusmgr.cpp b/indra/llui/llfocusmgr.cpp index 1f16d12add..7fbfd80d8d 100644 --- a/indra/llui/llfocusmgr.cpp +++ b/indra/llui/llfocusmgr.cpp @@ -315,6 +315,20 @@ void LLFocusMgr::removeKeyboardFocusWithoutCallback( const LLFocusableElement* f } } +bool LLFocusMgr::keyboardFocusHasMenus() const +{ + LLView* focus_view = dynamic_cast(mKeyboardFocus); + while( focus_view ) + { + if(focus_view->hasMenus()) + { + return true; + } + + focus_view = focus_view->getParent(); + } + return false; +} void LLFocusMgr::setMouseCapture( LLMouseHandler* new_captor ) { diff --git a/indra/llui/llfocusmgr.h b/indra/llui/llfocusmgr.h index eef82a3b5a..e09bad0187 100644 --- a/indra/llui/llfocusmgr.h +++ b/indra/llui/llfocusmgr.h @@ -118,6 +118,8 @@ public: void unlockFocus(); BOOL focusLocked() const { return mLockedView != NULL; } + bool keyboardFocusHasMenus() const; + private: LLUICtrl* mLockedView; diff --git a/indra/llui/llview.h b/indra/llui/llview.h index f7175112bf..62683491ef 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -277,6 +277,11 @@ public: BOOL focusNextRoot(); BOOL focusPrevRoot(); + // Normally we want the app menus to get priority on modified keys + // However, if this item claims to have menus then we want to give + // it first chance at handling them. (eg. the script editor) + virtual bool hasMenus() const { return false; }; + // delete all children. Override this function if you need to // perform any extra clean up such as cached pointers to selected // children, etc. -- cgit v1.2.3 From 92013d1212fdd2f082f1fdf07350e8e319b2fd75 Mon Sep 17 00:00:00 2001 From: Kelly Washington Date: Fri, 24 Sep 2010 16:31:43 -0700 Subject: VWR-21377 Script editor ctrl-f fix. change to better / more consistent naming --- indra/llui/llfocusmgr.cpp | 4 ++-- indra/llui/llfocusmgr.h | 2 +- indra/llui/llview.h | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) (limited to 'indra/llui') diff --git a/indra/llui/llfocusmgr.cpp b/indra/llui/llfocusmgr.cpp index 7fbfd80d8d..43e5f6b051 100644 --- a/indra/llui/llfocusmgr.cpp +++ b/indra/llui/llfocusmgr.cpp @@ -315,12 +315,12 @@ void LLFocusMgr::removeKeyboardFocusWithoutCallback( const LLFocusableElement* f } } -bool LLFocusMgr::keyboardFocusHasMenus() const +bool LLFocusMgr::keyboardFocusHasAccelerators() const { LLView* focus_view = dynamic_cast(mKeyboardFocus); while( focus_view ) { - if(focus_view->hasMenus()) + if(focus_view->hasAccelerators()) { return true; } diff --git a/indra/llui/llfocusmgr.h b/indra/llui/llfocusmgr.h index e09bad0187..22c1895075 100644 --- a/indra/llui/llfocusmgr.h +++ b/indra/llui/llfocusmgr.h @@ -118,7 +118,7 @@ public: void unlockFocus(); BOOL focusLocked() const { return mLockedView != NULL; } - bool keyboardFocusHasMenus() const; + bool keyboardFocusHasAccelerators() const; private: LLUICtrl* mLockedView; diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 62683491ef..6d79415c26 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -277,10 +277,10 @@ public: BOOL focusNextRoot(); BOOL focusPrevRoot(); - // Normally we want the app menus to get priority on modified keys - // However, if this item claims to have menus then we want to give - // it first chance at handling them. (eg. the script editor) - virtual bool hasMenus() const { return false; }; + // Normally we want the app menus to get priority on accelerated keys + // However, sometimes we want to give specific views a first chance + // iat handling them. (eg. the script editor) + virtual bool hasAccelerators() const { return false; }; // delete all children. Override this function if you need to // perform any extra clean up such as cached pointers to selected -- cgit v1.2.3