require 'gtk2' Gtk.init textview = Gtk::TextView.new textview.signal_connect('focus-in-event') { |w, event| textview.buffer.select_range(textview.buffer.get_iter_at_offset(0), textview.buffer.get_iter_at_offset(-1)) false } textview.buffer.text = 'foobar' b = Gtk::Button.new('foo') vb = Gtk::VBox.new vb.pack_start(textview, true, true) vb.pack_end(b, false, false) w = Gtk::Window.new w.add(vb) w.set_default_size(300, 300) w.window_position = Gtk::Window::POS_CENTER w.show_all b.grab_focus Gtk.main