Gizmos only update when I hover over the scene or game view
<p>I have a script:</p>

<pre><code>//Assets/TestScript.cs
using UnityEngine;

public class TestScript : MonoBehaviour
{
    public Vector2 a;
    public Vector2 b;
    public Vector2 c;
}
</code></pre>

<p>and it's editor script:</p>

<pre><code>//Assets/Editor/TestEditor.cs
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(TestScript))]
public class TestEditor : Editor
{
    public override void OnInspectorGUI()
    {
        TestScript script = (TestScript)target;

        script.a = EditorGUILayout.Vector2Field("a", script.a);
        script.b = EditorGUILayout.Vector2Field("b", script.b);
        script.c = EditorGUILayout.Vector2Field("c", script.c);
    }

    [DrawGizmo(GizmoType.Active | GizmoType.Selected)]
    static void DrawGizmos(TestScript script, GizmoType gizmoType)
    {
        Gizmos.DrawWireSphere(script.a, 1.0f);
        Gizmos.DrawWireSphere(script.b, 1.0f);
        Gizmos.DrawWireSphere(script.c, 1.0f);
    }
}
</code></pre>

<p>It correctly shows the wire sphere gizmos, but when I edit the variables <code>a</code>, <code>b</code> or <code>c</code> the gizmos don't redraw unless I move my mouse over either the scene view or the game view. And even then it takes around a second.</p>

<p>The gizmos update properly when I remove the overridden <code>OnInspectorGui()</code> method.</p>

<p>I've tried adding <code>SceneView.RepaintAll()</code>, <code>HandleUtility.Repaint</code> and <code>Repaint()</code> to the beginning and end of the <code>OnInspectorGui()</code> method, but nothing changed.</p>

<p>Thank you.</p>