summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorDenis Serdjuk <dserduk@productengine.com>2010-01-27 18:05:46 +0200
committerDenis Serdjuk <dserduk@productengine.com>2010-01-27 18:05:46 +0200
commit4b9abb162cd7b4cfca3c98a0611cb2272d336476 (patch)
tree17ba305aa9832808854990012703a0b824d1c9c0 /indra
parent15a92d2426598db539823a086c25442aeecd4839 (diff)
fixed minor bug EXT-3941 Quick clicks on chiclets are treated as double clicks
Handling of mouseDown event was delegated to chiclet's button. Also double callback was connected with onMouseDown handler to ride from missed click behavior. --HG-- branch : product-engine
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llchiclet.cpp26
-rw-r--r--indra/newview/llchiclet.h17
2 files changed, 12 insertions, 31 deletions
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index f1de4e2982..f646bcccb5 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -459,6 +459,14 @@ LLIMChiclet::LLIMChiclet(const LLIMChiclet::Params& p)
enableCounterControl(p.enable_counter);
}
+/* virtual*/
+BOOL LLIMChiclet::postBuild()
+{
+ mChicletButton = getChild<LLButton>("chiclet_button");
+ mChicletButton->setCommitCallback(boost::bind(&LLIMChiclet::onMouseDown, this));
+ mChicletButton->setDoubleClickCallback(boost::bind(&LLIMChiclet::onMouseDown, this));
+ return TRUE;
+}
void LLIMChiclet::setShowSpeaker(bool show)
{
bool needs_resize = getShowSpeaker() != show;
@@ -583,12 +591,6 @@ void LLIMChiclet::setToggleState(bool toggle)
mChicletButton->setToggleState(toggle);
}
-BOOL LLIMChiclet::handleMouseDown(S32 x, S32 y, MASK mask)
-{
- onMouseDown();
- return LLChiclet::handleMouseDown(x, y, mask);
-}
-
void LLIMChiclet::draw()
{
LLUICtrl::draw();
@@ -1905,12 +1907,6 @@ void LLScriptChiclet::onMouseDown()
LLScriptFloaterManager::getInstance()->toggleScriptFloater(getSessionId());
}
-BOOL LLScriptChiclet::handleMouseDown(S32 x, S32 y, MASK mask)
-{
- onMouseDown();
- return LLChiclet::handleMouseDown(x, y, mask);
-}
-
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
@@ -1975,10 +1971,4 @@ void LLInvOfferChiclet::onMouseDown()
LLScriptFloaterManager::instance().toggleScriptFloater(getSessionId());
}
-BOOL LLInvOfferChiclet::handleMouseDown(S32 x, S32 y, MASK mask)
-{
- onMouseDown();
- return LLChiclet::handleMouseDown(x, y, mask);
-}
-
// EOF
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
index bb4846aa57..b006ae3420 100644
--- a/indra/newview/llchiclet.h
+++ b/indra/newview/llchiclet.h
@@ -328,6 +328,10 @@ public:
virtual ~LLIMChiclet() {};
/**
+ * It is used for default setting up of chicklet:click handler, etc.
+ */
+ BOOL postBuild();
+ /**
* Sets IM session name. This name will be displayed in chiclet tooltip.
*/
virtual void setIMSessionName(const std::string& name) { setToolTip(name); }
@@ -428,8 +432,6 @@ protected:
LLIMChiclet(const LLIMChiclet::Params& p);
- /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
-
protected:
bool mShowSpeaker;
@@ -640,11 +642,6 @@ public:
*/
/*virtual*/ void onMouseDown();
- /**
- * Override default handler
- */
- /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
-
protected:
LLScriptChiclet(const Params&);
@@ -684,12 +681,6 @@ public:
*/
/*virtual*/ void onMouseDown();
- /**
- * Override default handler
- */
- /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
-
-
protected:
LLInvOfferChiclet(const Params&);
friend class LLUICtrlFactory;