]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/menu/item/inputcontainer.c
Merge remote-tracking branch 'origin/master' into terencehill/menu_focus_stuff
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / item / inputcontainer.c
index 8582202a7d83df1b057066b8a49fed71771367a8..4531a1f4e11c2f4917baef0e9d03d4f5bb4ef6f1 100644 (file)
@@ -15,7 +15,7 @@ ENDCLASS(InputContainer)
 #endif
 
 #ifdef IMPLEMENTATION
-void resizeNotifyInputContainer(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
+void InputContainer_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize)
 {
        SUPER(InputContainer).resizeNotify(me, relOrigin, relSize, absOrigin, absSize);
        /*
@@ -26,13 +26,13 @@ void resizeNotifyInputContainer(entity me, vector relOrigin, vector relSize, vec
        */
 }
 
-void focusLeaveInputContainer(entity me)
+void InputContainer_focusLeave(entity me)
 {
        SUPER(InputContainer).focusLeave(me);
        me.mouseFocusedChild = NULL;
 }
 
-float keyDownInputContainer(entity me, float scan, float ascii, float shift)
+float InputContainer_keyDown(entity me, float scan, float ascii, float shift)
 {
        entity f, ff;
        if(SUPER(InputContainer).keyDown(me, scan, ascii, shift))
@@ -102,7 +102,7 @@ float keyDownInputContainer(entity me, float scan, float ascii, float shift)
        return 0;
 }
 
-float _changeFocusXYInputContainer(entity me, vector pos)
+float InputContainer__changeFocusXY(entity me, vector pos)
 {
        entity e, ne;
        e = me.mouseFocusedChild;
@@ -124,7 +124,7 @@ float _changeFocusXYInputContainer(entity me, vector pos)
        return (ne != NULL);
 }
 
-float mouseDragInputContainer(entity me, vector pos)
+float InputContainer_mouseDrag(entity me, vector pos)
 {
        if(SUPER(InputContainer).mouseDrag(me, pos))
                return 1;
@@ -132,8 +132,10 @@ float mouseDragInputContainer(entity me, vector pos)
                return 1;
        return 0;
 }
-float mouseMoveInputContainer(entity me, vector pos)
+float InputContainer_mouseMove(entity me, vector pos)
 {
+       if(me.mouseFocusedChild != me.focusedChild) // if the keyboard moved the focus away
+               me.mouseFocusedChild = NULL; // force focusing
        if(me._changeFocusXY(me, pos))
                if(SUPER(InputContainer).mouseMove(me, pos))
                        return 1;
@@ -141,7 +143,7 @@ float mouseMoveInputContainer(entity me, vector pos)
                return 1;
        return 0;
 }
-float mousePressInputContainer(entity me, vector pos)
+float InputContainer_mousePress(entity me, vector pos)
 {
        me.mouseFocusedChild = NULL; // force focusing
        if(me._changeFocusXY(me, pos))
@@ -151,10 +153,9 @@ float mousePressInputContainer(entity me, vector pos)
                return 1;
        return 0;
 }
-float mouseReleaseInputContainer(entity me, vector pos)
+float InputContainer_mouseRelease(entity me, vector pos)
 {
-       float r;
-       r = SUPER(InputContainer).mouseRelease(me, pos);
+       SUPER(InputContainer).mouseRelease(me, pos); // return value?
        if(me.focused) // am I still eligible for this? (UGLY HACK, but a mouse event could have changed focus away)
                if(me._changeFocusXY(me, pos))
                        return 1;