Fxruby - need help

I am just starting to use fxruby, so this might be a dumb question.
I am having trouble with hiding and showing buttons and text field.
It seems that when I show a button or text field that was hidden, the button
is placed randomly, usually under the other objects, and the text doesn't
show up at all. When I resize the window by grabbing the corner, they both
snap to the correct locations. I have tried forceRefresh, recalc, repaint,
and a few others, but nothing seems to help. I have included a very short
example of the problem below.

#/usr/bin/env ruby
require 'fox14'
include Fox
class PlotterWindow < FXMainWindow
  def initialize(app)
    # Invoke base class initialize first
    super(app, "Plotter", nil, nil, DECOR_ALL, 0, 0, 300, 300)

  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
  # INITIALIZE #
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
    FXToolTip.new(self.getApp())
    statusbar = FXStatusBar.new(self,
      LAYOUT_SIDE_BOTTOM|LAYOUT_FILL_X|STATUSBAR_WITH_DRAGCORNER)
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
  # LAYOUT #
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
    showButton = FXButton.new(self,
      "Show\tShow the BLAH Button\tMake BLAH button visable",
      nil, nil, 0,
      LAYOUT_SIDE_TOP|FRAME_RAISED|FRAME_THICK|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT,40,
40, 70, 30)
    hideButton = FXButton.new(self,
      "Hide\tHide the BLAH Button\tMake BLAH button hidden",
      nil, nil, 0,
      LAYOUT_SIDE_TOP|FRAME_RAISED|FRAME_THICK|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT,40,
40, 70, 30)
    blahButton = FXButton.new(self,
      "BLAH!!\tBLAH BUTTON\tThe BLAH button has no action",
      nil, nil, 0,
      LAYOUT_SIDE_TOP|FRAME_RAISED|FRAME_THICK|LAYOUT_FIX_WIDTH|LAYOUT_FIX_HEIGHT,40,
40, 70, 30)
    blahButton.hide
    myTextField = FXTextField.new(self, 20, NIL, 0,
      LAYOUT_SIDE_BOTTOM|FRAME_SUNKEN|FRAME_THICK|TEXTFIELD_READONLY)
    myTextField.setText("blah blah blah!")
    myTextField.hide
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
  # ACTIOINS #
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
    showButton.connect(SEL_COMMAND) {
      print "SHOW!\n"
      STDOUT.flush
      blahButton.show
      myTextField.show
      1
    }
    hideButton.connect(SEL_COMMAND) {
      print "HIDE!\n"
      STDOUT.flush
      blahButton.hide
      myTextField.hide
      1
    }
  end
  def create
    super
    show(PLACEMENT_SCREEN)
  end
end

if __FILE__ == $0
  # Construct an application
  application = FXApp.new("Button", "FoxTest")
  # Construct the main window
  PlotterWindow.new(application)
  # Create the application
  application.create
  # Run it
  application.run
end