]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/panel.cpp
Add icon support to Button
[libs/gltk.git] / source / panel.cpp
index 97c9ca4f3438d336cc77f1104dcad9e2d379ecf2..a708873edbeb4a7df6e2a2a1b097dfb057df6ced 100644 (file)
@@ -163,7 +163,11 @@ void Panel::child_hidden(Widget &wdg)
 void Panel::grab_pointer(Widget &wdg)
 {
        if(pointer_grab==0 || pointer_focus==&wdg)
+       {
                set_pointer_focus(&wdg, 255);
+               if(parent)
+                       parent->grab_pointer(*this);
+       }
        else
                throw InvalidState("Pointer is already grabbed");
 }
@@ -171,7 +175,11 @@ void Panel::grab_pointer(Widget &wdg)
 void Panel::ungrab_pointer(Widget &wdg)
 {
        if(pointer_focus==&wdg)
+       {
                set_pointer_focus(0, 0);
+               if(parent)
+                       parent->ungrab_pointer(*this);
+       }
        else if(pointer_grab>0)
                throw Exception("Someone is trying to steal the pointer!");
 }