Event box bug?
- From: Nigel Gamble <nigel nrg org>
- To: gtk-list redhat com
- Subject: Event box bug?
- Date: Mon, 11 Jan 1999 09:08:55 -0800 (PST)
I first reported this problem in GTK+-1.1.9. The behavior is
unchanged in GTK+-1.1.12, and I didn't see any responses to
that report, so here it is again. Can someone confirm either
that this is a bug, or that this is the expected behavior?
I'm using an event box to contain a checkbutton, but it seems to
badly affect the behavior of the checkbutton widget. The test program
draws 4 checkbuttons. "Button 1" and "Button 4" are inside event
boxes, while 2 and 3 are not. When the cursor is moved onto
buttons 1 or 4, they are highlighted, but the highlighting is
not removed when the curor leaves the widget. Similarly, the
"focus line" around buttons 1 and 4 is not removed when another
widget gains the focus.
Nigel Gamble nigel@nrg.org
Mountain View, CA, USA. http://www.nrg.org/
#include <gtk/gtk.h>
gint
delete_event(GtkWidget *w, GdkEvent *e, gpointer data)
{
return(FALSE);
}
void
destroy(GtkWidget *w, gpointer data)
{
gtk_main_quit();
}
GtkWidget *
table_of_checkbuttons()
{
GtkWidget *checkbutton;
GtkWidget *table;
GtkWidget *w;
table = gtk_table_new(2, 2, TRUE);
w = gtk_event_box_new();
checkbutton = gtk_check_button_new_with_label("Button 1");
gtk_container_add(GTK_CONTAINER(w), checkbutton);
gtk_table_attach_defaults(GTK_TABLE(table), w, 0, 1, 0, 1);
gtk_widget_show(checkbutton);
gtk_widget_show(w);
checkbutton = gtk_check_button_new_with_label("Button 2");
gtk_table_attach_defaults(GTK_TABLE(table), checkbutton, 1, 2, 0, 1);
gtk_widget_show(checkbutton);
checkbutton = gtk_check_button_new_with_label("Button 3");
gtk_table_attach_defaults(GTK_TABLE(table), checkbutton, 0, 1, 1, 2);
gtk_widget_show(checkbutton);
w = gtk_event_box_new();
checkbutton = gtk_check_button_new_with_label("Button 4");
gtk_container_add(GTK_CONTAINER(w), checkbutton);
gtk_table_attach_defaults(GTK_TABLE(table), w, 1, 2, 1, 2);
gtk_widget_show(checkbutton);
gtk_widget_show(w);
return table;
}
int
main(int argc, char **argv)
{
GtkWidget *window;
GtkWidget *main_widget;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Table");
gtk_signal_connect(GTK_OBJECT(window), "delete_event",
GTK_SIGNAL_FUNC(delete_event), NULL);
gtk_signal_connect(GTK_OBJECT(window), "destroy",
GTK_SIGNAL_FUNC(destroy), NULL);
gtk_container_border_width(GTK_CONTAINER(window), 10);
main_widget = table_of_checkbuttons();
gtk_widget_set_usize(main_widget, 200, 100);
gtk_widget_show(main_widget);
gtk_container_add(GTK_CONTAINER(window), main_widget);
gtk_widget_show(window);
gtk_main();
return 0;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]