I have implemented a modal dialog that seems to work as far as not allowing interaction with buttons or other items on the main window of the program but it does allow interaction with the main window menu and minimize/maximize/close buttons. Here is my code:
gtk_builder_add_from_file (builder, whichdialog, NULL);
dialog = GTK_WIDGET (gtk_builder_get_object (builder, cObjectname));
g_object_unref (G_OBJECT (builder));
gtk_window_set_transient_for(GTK_WINDOW (dialog), GTK_WINDOW (window));
gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE);
gtk_window_set_keep_above(GTK_WINDOW (dialog), TRUE);
gtk_window_set_position(GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ON_PARENT);
gtk_dialog_run (GTK_DIALOG (dialog));
I'm using GTK+ 3, C, Ubuntu 12.04.
Am I doing something wrong or is this normal behavior?