]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkinputdialog.c
Bug 535862 – gtk_action_create_icon can't create icons from the icon
[~andy/gtk] / gtk / gtkinputdialog.c
index 54fb113b3e378816c59cb7886d87bb9f5c5d2a1f..48f9c6090c0cd90d755da5300894552bb3627717 100644 (file)
 
 
 #include <config.h>
-#include <glib/gprintf.h>
 #include <stdlib.h>
 #include "gdk/gdkkeysyms.h"
+#include "gtkinputdialog.h"
 #include "gtkbutton.h"
 #include "gtkentry.h"
 #include "gtkhbox.h"
-#include "gtkhseparator.h"
-#include "gtkinputdialog.h"
 #include "gtklabel.h"
-#include "gtklistitem.h"
 #include "gtkmain.h"
 #include "gtkmarshalers.h"
 #include "gtkmenu.h"
@@ -55,7 +52,6 @@
 
 #undef GTK_DISABLE_DEPRECATED
 #include "gtkoptionmenu.h"
-#define GTK_DISABLE_DEPRECATED
 
 #include "gtkintl.h"
 #include "gtkalias.h"
@@ -485,8 +481,10 @@ gtk_input_dialog_set_axis (GtkWidget *w,
   else
     old_use = GDK_AXIS_IGNORE;
 
-  if (axis == old_axis)
+  if (axis == old_axis) {
+    g_free (new_axes);
     return;
+  }
 
   /* we must always have an x and a y axis */
   if ((axis == -1 && (use == GDK_AXIS_X || use == GDK_AXIS_Y)) ||
@@ -534,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)
@@ -546,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);
@@ -682,6 +684,7 @@ gtk_input_dialog_fill_keys(GtkInputDialog *inputd, GdkDevice *info)
   GtkWidget *button;
   GtkWidget *hbox;
   GtkWidget *viewport;
+  GtkWidget *old_child;
 
   char buffer[32];
   
@@ -697,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);