--- 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();
}