diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | gtk/gtkinputdialog.c | 8 |
2 files changed, 15 insertions, 0 deletions
@@ -1,3 +1,10 @@ +2007-04-26 Tor Lillqvist <tml@novell.com> + + * gtk/gtkinputdialog.c (gtk_input_dialog_fill_axes) + (gtk_input_dialog_fill_keys): Remove old child of scrolled window + before adding a new one when switching what input device is being + handled. (#399425) + 2007-04-26 Matthias Clasen <mclasen@redhat.com> * modules/printbackends/lpr/gtkprintbackendlpr.c diff --git a/gtk/gtkinputdialog.c b/gtk/gtkinputdialog.c index c78a454a1d..48f9c6090c 100644 --- a/gtk/gtkinputdialog.c +++ b/gtk/gtkinputdialog.c @@ -532,6 +532,7 @@ gtk_input_dialog_fill_axes(GtkInputDialog *inputd, GdkDevice *info) GtkWidget *option_menu; GtkWidget *label; GtkWidget *viewport; + GtkWidget *old_child; /* remove all the old items */ if (inputd->axis_list) @@ -544,6 +545,9 @@ gtk_input_dialog_fill_axes(GtkInputDialog *inputd, GdkDevice *info) gtk_table_set_col_spacings (GTK_TABLE (inputd->axis_list), 12); viewport = gtk_viewport_new (NULL, NULL); + old_child = gtk_bin_get_child (GTK_BIN (inputd->axis_listbox)); + if (old_child != NULL) + gtk_widget_destroy (old_child); gtk_container_add (GTK_CONTAINER (inputd->axis_listbox), viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), GTK_SHADOW_NONE); gtk_widget_show (viewport); @@ -680,6 +684,7 @@ gtk_input_dialog_fill_keys(GtkInputDialog *inputd, GdkDevice *info) GtkWidget *button; GtkWidget *hbox; GtkWidget *viewport; + GtkWidget *old_child; char buffer[32]; @@ -695,6 +700,9 @@ gtk_input_dialog_fill_keys(GtkInputDialog *inputd, GdkDevice *info) gtk_table_set_col_spacings (GTK_TABLE (inputd->keys_list), 12); viewport = gtk_viewport_new (NULL, NULL); + old_child = gtk_bin_get_child (GTK_BIN (inputd->keys_listbox)); + if (old_child != NULL) + gtk_widget_destroy (old_child); gtk_container_add (GTK_CONTAINER (inputd->keys_listbox), viewport); gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewport), GTK_SHADOW_NONE); gtk_widget_show (viewport); |