Hi Igor,
You can try setting the focus and then catching the "focus-out-event" to change the sensitivity of the apply button.
Maybe that function isn't deprecated in GTK2 but I don't really know.
Eric
//gcc -Wall focus1.c -o focus1 `pkg-config --cflags --libs gtk+-2.0`
#include <gtk/gtk.h>
static gboolean focus_out(GtkWidget *widget, GdkEvent *event, gpointer user_data)
{
g_print("Focus Out\n");
gtk_widget_set_sensitive(GTK_WIDGET(user_data), TRUE);
return FALSE;
}
static void button1_clicked(GtkWidget *widget, gpointer user_data)
{
g_print("Button1 Clicked\n");
}
static void button2_clicked(GtkWidget *widget, gpointer user_data)
{
g_print("Button2 Clicked\n");
}
int main (int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "File Selection");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 400);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_container_set_border_width(GTK_CONTAINER(window), 20);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
GtkWidget *font=gtk_font_selection_new();
GtkWidget *button1=gtk_button_new_with_label("Apply");
gtk_widget_set_sensitive(button1, FALSE);
g_signal_connect(button1, "clicked", G_CALLBACK(button1_clicked), NULL);
GtkWidget *button2=gtk_button_new_with_label("OK");
g_signal_connect(button2, "clicked", G_CALLBACK(button2_clicked), NULL);
g_signal_connect(button2, "focus-out-event", G_CALLBACK(focus_out), button1);
GtkWidget *table1=gtk_table_new(2, 2, FALSE);
gtk_table_attach(GTK_TABLE(table1), font, 0, 2, 0, 1, GTK_EXPAND, GTK_EXPAND, 0, 0);
gtk_table_attach(GTK_TABLE(table1), button1, 0, 1, 1, 2, GTK_EXPAND, GTK_SHRINK, 0, 0);
gtk_table_attach(GTK_TABLE(table1), button2, 1, 2, 1, 2, GTK_EXPAND, GTK_SHRINK, 0, 0);
gtk_container_add(GTK_CONTAINER(window), table1);
gtk_widget_show_all(window);
gtk_widget_set_can_focus(button2, TRUE);
gtk_widget_grab_focus(button2);
gtk_main();
return 0;
}
_______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx https://mail.gnome.org/mailman/listinfo/gtk-list