def repaint_all_widgets
    $log.debug "  REPAINT ALL in FORM called "
    @widgets.each do |w|
      next if w.visible == false
      next if w.class.to_s == "Canis::MenuBar"
      $log.debug "   ---- REPAINT ALL #{w.name} "
      #w.repaint_required true
      w.repaint_all true
      w.repaint
    end
    $log.debug "  REPAINT ALL in FORM complete "
    #  place cursor on current_widget 
    setpos
  end
def repaint_all_widgets
    $log.debug "  REPAINT ALL in FORM called "
    @widgets.each do |w|
      next if w.visible == false
      next if w.class.to_s == "Canis::MenuBar"
      $log.debug "   ---- REPAINT ALL #{w.name} "
      #w.repaint_required true
      w.repaint_all true
      w.repaint
    end
    $log.debug "  REPAINT ALL in FORM complete "
    #  place cursor on current_widget 
    setpos
  end
this forces a repaint of all visible widgets and has been added for the case of overlapping
 windows, since a black rectangle is often left when a window is destroyed. This is internally
 triggered whenever a window is destroyed, and currently only for root window.
 NOTE: often the window itself or spaces between widgets also gets cleared, so basically
 the window itself may need recreating ? 2014-08-18 - 21:03