summaryrefslogtreecommitdiffstats
path: root/x11-libs/gtk+/files/gtk+-1.2.10-mdk-gtklist.patch
diff options
context:
space:
mode:
Diffstat (limited to 'x11-libs/gtk+/files/gtk+-1.2.10-mdk-gtklist.patch')
-rw-r--r--x11-libs/gtk+/files/gtk+-1.2.10-mdk-gtklist.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/x11-libs/gtk+/files/gtk+-1.2.10-mdk-gtklist.patch b/x11-libs/gtk+/files/gtk+-1.2.10-mdk-gtklist.patch
new file mode 100644
index 0000000..c07447b
--- /dev/null
+++ b/x11-libs/gtk+/files/gtk+-1.2.10-mdk-gtklist.patch
@@ -0,0 +1,62 @@
+--- gtk+-1.2.10/gtk/gtklist.c.gtklist Wed Jan 31 22:19:29 2001
++++ gtk+-1.2.10/gtk/gtklist.c Wed Feb 13 18:19:31 2002
+@@ -1299,7 +1299,7 @@
+ if (start_list->prev)
+ new_focus_child = start_list->prev->data;
+ else if (list->children)
+- new_focus_child = list->children->prev->data;
++ new_focus_child = list->children->data;
+
+ if (GTK_WIDGET_HAS_FOCUS (container->focus_child))
+ grab_focus = TRUE;
+@@ -1312,16 +1312,20 @@
+ widget = tmp_list->data;
+ tmp_list = tmp_list->next;
+
++ gtk_widget_ref (widget);
++
+ if (widget->state == GTK_STATE_SELECTED)
+ gtk_list_unselect_child (list, widget);
+
++ gtk_signal_disconnect_by_data (GTK_OBJECT (widget), (gpointer) list);
++ gtk_widget_unparent (widget);
++
+ if (widget == list->undo_focus_child)
+ list->undo_focus_child = NULL;
+ if (widget == list->last_focus_child)
+ list->last_focus_child = NULL;
+
+- gtk_signal_disconnect_by_data (GTK_OBJECT (widget), (gpointer) list);
+- gtk_widget_unparent (widget);
++ gtk_widget_unref (widget);
+ }
+
+ g_list_free (start_list);
+@@ -1431,6 +1435,7 @@
+ widget = tmp_list->data;
+ tmp_list = tmp_list->next;
+
++ gtk_widget_ref (widget);
+ if (no_unref)
+ gtk_widget_ref (widget);
+
+@@ -1449,14 +1454,16 @@
+ }
+ }
+
++ gtk_signal_disconnect_by_data (GTK_OBJECT (widget), (gpointer) list);
++ list->children = g_list_remove (list->children, widget);
++ gtk_widget_unparent (widget);
++
+ if (widget == list->undo_focus_child)
+ list->undo_focus_child = NULL;
+ if (widget == list->last_focus_child)
+ list->last_focus_child = NULL;
+
+- gtk_signal_disconnect_by_data (GTK_OBJECT (widget), (gpointer) list);
+- list->children = g_list_remove (list->children, widget);
+- gtk_widget_unparent (widget);
++ gtk_widget_unref (widget);
+ }
+
+ if (new_focus_child && new_focus_child != old_focus_child)