             box:      [ 50, 50, 200, 200 ]
       @__managed_windows =
          console: null
+      @__update_guard = false
 
       for w, info of attrs.window
         @__.window[ w ] = info

          ext.hide()
        ext.setPosition( box[0], box[1] )
        ext.setSize( box[2], box[3] )
        null

      @manage_window = ( which, ext ) ->
        @__managed_windows[ which ] = ext
        update_info = =>
          box = ext.getBox()
          @__.window[ which ] =
            visible: ext.isVisible()
            box: [ box.x, box.y, box.width, box.height ]
          @set( window: @__.window )
        ext.on( 'resize', update_info )
        ext.on( 'move',   update_info )
        ext.on( 'hide',   update_info )
        ext.on( 'show',   update_info )
        update_window( which )
        this

      set: (thingy, attrs) ->

          else
            thingy.__[k] = v
          if k == 'window'
            for which of thingy.__managed_windows
              update_window( which, true )

        null

