Fix a bug in the address field of the Servers dialog:
authorterencehill <piuntn@gmail.com>
Fri, 2 Jul 2010 09:14:48 +0000 (11:14 +0200)
committerterencehill <piuntn@gmail.com>
Fri, 2 Jul 2010 09:14:48 +0000 (11:14 +0200)
After the info dialog of a server has been opened by right click (not by space), the address field cannot be edited anymore.

listbox believed mouse key was still pressed after the dialog spawned.

qcsrc/menu/item/listbox.c

index 4d6174c..ba3fa6a 100644 (file)
@@ -7,6 +7,7 @@ CLASS(ListBox) EXTENDS(Item)
        METHOD(ListBox, mousePress, float(entity, vector))
        METHOD(ListBox, mouseDrag, float(entity, vector))
        METHOD(ListBox, mouseRelease, float(entity, vector))
+       METHOD(ListBox, focusLeave, void(entity))
        ATTRIB(ListBox, focusable, float, 1)
        ATTRIB(ListBox, selectedItem, float, 0)
        ATTRIB(ListBox, size, vector, '0 0 0')
@@ -188,6 +189,13 @@ float ListBox_mouseRelease(entity me, vector pos)
        me.pressed = 0;
        return 1;
 }
+void ListBox_focusLeave(entity me)
+{
+       // Reset the var pressed in case listbox loses focus
+       // by a mouse click on an item of the list
+       // for example showing a dialog on right click
+       me.pressed = 0;
+}
 void ListBox_updateControlTopBottom(entity me)
 {
        float f;