From 551ace4547d063d41f3563aabb8552af03b12ae7 Mon Sep 17 00:00:00 2001 From: Jonathan Moore Liles Date: Tue, 12 Mar 2013 17:56:43 -0700 Subject: [PATCH] Fl_Blink_Button: Don't add a new timer if one already exists. --- FL/Fl_Blink_Button.H | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/FL/Fl_Blink_Button.H b/FL/Fl_Blink_Button.H index f19da7c..bc81303 100644 --- a/FL/Fl_Blink_Button.H +++ b/FL/Fl_Blink_Button.H @@ -118,25 +118,31 @@ public: virtual void value ( float v ) { - if ( v != value() ) + bool b = v; + + if ( b != value() ) { - if ( v ) + if ( b ) { if ( _blinking ) + { + /* just to be safe.. */ + Fl::remove_timeout( update_cb, this ); Fl::add_timeout( blink_interval_as_fraction_of_seceond(), update_cb, this ); - Fl_Button::value( v ); + } + Fl_Button::value( b ); redraw(); } else { - Fl_Button::value( v ); + Fl_Button::value( b ); Fl::remove_timeout( update_cb, this ); redraw(); } } } - virtual float value ( void ) { return Fl_Button::value(); } + virtual float value ( void ) { return (bool)Fl_Button::value(); } virtual void draw ( void )