]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/toggle.cpp
Prevent problems if a button press handler throws
[libs/gltk.git] / source / toggle.cpp
index 8c727d6c333e023e03bc77c113fbd921dabb5bde..9fbd098ae0783aab8a4e724e1975b85864bc8b48 100644 (file)
@@ -14,8 +14,9 @@ using namespace std;
 namespace Msp {
 namespace GLtk {
 
-Toggle::Toggle(const Resources &r):
+Toggle::Toggle(const Resources &r, const string &t):
        Widget(r),
+       text(t),
        pressed(false),
        value(false),
        exclusive(false)
@@ -58,7 +59,7 @@ void Toggle::button_release(int x, int y, unsigned btn)
 {
        if(pressed && btn==1)
        {
-               if(geom.is_inside_relative(x, y))
+               if(geom.is_inside_relative(x, y) && (!value || !exclusive))
                {
                        set_value(!value);
                        signal_toggled.emit(value);