Buenas, nose como funcionara GTK con otros lenguajes de programacion, pero en lo que respecta a PHP si mal no recuerdo, y no me equivoco, haciendo un gtk::main_quit() cierras el programa y todas las ventanas que esten asociadas a esa misma. Lo que esta claro es que para trabajar con diferentes ventanas se ha de usar gtk::grab_add() y gtk::grab_remove() yo lo que suelo hacer es tener una funcion que me "destruya" la ventana que ami me interese, mediante:
Código PHP:
function close_window($widget){
$window = $widget->get_toplevel();
gtk::grab_remove($window);
$window->hide();
}
Y la ventana que muestro la genero con:
Código PHP:
function open_window(){
$this->gui['window'] = &new GtkWindow(GTK_WINDOW_DIALOG);
gtk::grab_add($this->gui['window']);
$this->gui['window']->connect('destroy', array(&$this, 'close_window'), $widget);
$this->gui['window']->show_all()
}
Es algo tan sencillo como eso, y supongo que no solo sera en PHP, sino en todos los lenguajes que usen GTK
Un saludete!