Para empezar no se porque duplicas un mismo evento...
el de hacer reaparecer el active de papanoel con doble click. con una vez suficiente...
Pero ademas en ningún momento se pone invisible... así que no le veo utilidad a ese evento.
por otro lado utilizas unas variables a y b que no reseteas , tendrías que resetearlas cada vez que activas el zoom para que la condición que desactiva el flag funcione siempre y no solo la primera vez....
ya que sino a la segunda vez que lo actives no termina de hacer zoom out o zoom in.
y por otro lado no necesitas dos variables, con una variable te sirve, ya que se supone que cuando haces zoom in no puedes hacer zoom out y viceversa.
No puedes hacer las dos cosas a la vez, así que puedes utilizar sólo una variable para los dos zoom
ZOOM IN ZOOM OUT