fix zoom control not always reflecting disabled state initially, close #2083