Laserlicht 2 gadi atpakaļ
vecāks
revīzija
6939989026
3 mainītis faili ar 15 papildinājumiem un 7 dzēšanām
  1. 10 0
      client/gui/CIntObject.cpp
  2. 4 0
      client/gui/CIntObject.h
  3. 1 7
      client/gui/EventDispatcher.cpp

+ 10 - 0
client/gui/CIntObject.cpp

@@ -258,6 +258,16 @@ void CIntObject::redraw()
 	}
 }
 
+void CIntObject::clickPressed(const Point & cursorPosition, bool lastActivated)
+{
+	AEventsReceiver::clickPressed(cursorPosition);
+}
+
+void CIntObject::clickReleased(const Point & cursorPosition, bool lastActivated)
+{
+	AEventsReceiver::clickReleased(cursorPosition);
+}
+
 bool CIntObject::receiveEvent(const Point & position, int eventType) const
 {
 	return pos.isInside(position);

+ 4 - 0
client/gui/CIntObject.h

@@ -99,6 +99,10 @@ public:
 	//request complete redraw of this object
 	void redraw() override;
 
+	// events are overloaded
+	void clickPressed(const Point & cursorPosition, bool lastActivated) override;
+	void clickReleased(const Point & cursorPosition, bool lastActivated) override;
+
 	/// returns true if this element is a popup window
 	/// called only for windows
 	bool isPopupWindow() const override;

+ 1 - 7
client/gui/EventDispatcher.cpp

@@ -213,16 +213,10 @@ void EventDispatcher::handleLeftButtonClick(const Point & position, int toleranc
 		if( i->receiveEvent(position, AEventsReceiver::LCLICK) || i == nearestElement)
 		{
 			if(isPressed)
-			{
-				i->clickPressed(position);
-				i->clickPressed(position, lastActivated);
-			}
+				i->clickReleased(position, lastActivated);
 
 			if (i->mouseClickedState && !isPressed)
-			{
-				i->clickReleased(position);
 				i->clickReleased(position, lastActivated);
-			}
 
 			i->mouseClickedState = isPressed;
 			lastActivated = false;