src/widget/widget_button.cpp
branchcpp_gui
changeset 6271 0ad100a98853
parent 6264 9fc3b5467396
child 6282 c5b92f2d924f
--- a/src/widget/widget_button.cpp	Thu Mar 01 13:26:30 2007 +0000
+++ b/src/widget/widget_button.cpp	Thu Mar 01 22:48:46 2007 +0000
@@ -19,6 +19,20 @@
 
 namespace gui {
 
+void Button::OnCapturePressed(EvtMouseOver &e)
+{
+	if (_left_button_down) {
+		e.SetHandled();
+		return;
+	}
+	m_pushed = false;
+	m_ticket_pressed.Release();
+
+	EvtClick ev(Point(0, 0));
+	ev.m_widget = this;
+	CallHandlers(ev);
+}
+
 /*virtual*/ void Button::DrawBackground(EvtPaint &ev)
 {
 	DrawFrameRect(m_color, m_pushed ? FR_LOWERED : FR_NONE);
@@ -26,9 +40,9 @@
 
 /*virtual*/ void Button::OnLeftClick(EvtClick &ev)
 {
-	m_pushed = !m_pushed;
-	CallHandlers(ev);
+	m_pushed = true;
 	ev.SetHandled();
+	m_ticket_pressed = CaptureEventsT(this, &Button::OnCapturePressed);
 	Invalidate();
 }