rpms/libgdl/F-10 libgdl-2.24.0-docking-undocking-reset.patch, NONE, 1.1 libgdl.spec, 1.12, 1.13

Debarshi Ray rishi at fedoraproject.org
Thu May 21 13:36:59 UTC 2009


Author: rishi

Update of /cvs/pkgs/rpms/libgdl/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv19334

Modified Files:
	libgdl.spec 
Added Files:
	libgdl-2.24.0-docking-undocking-reset.patch 
Log Message:
* Thu May 21 2009 Debarshi Ray <rishi at fedoraproject.org> - 2.24.0-3
- Backported fix to prevent crash when docking, undocking and trying to reset
  dock layout. (GNOME Bugzilla #566801).


libgdl-2.24.0-docking-undocking-reset.patch:

--- NEW FILE libgdl-2.24.0-docking-undocking-reset.patch ---
diff -urNp gdl-2.24.0.orig/gdl/gdl-dock-item.c gdl-2.24.0/gdl/gdl-dock-item.c
--- gdl-2.24.0.orig/gdl/gdl-dock-item.c	2009-05-21 18:46:45.000000000 +0530
+++ gdl-2.24.0/gdl/gdl-dock-item.c	2009-05-21 18:46:53.000000000 +0530
@@ -1294,60 +1294,64 @@ gdl_dock_item_dock (GdlDockObject    *ob
     if (parent)
         gdl_dock_object_freeze (parent);
 
-    /* ref ourselves since we could be destroyed when detached */
+    
     if (new_parent)
     {
+        /* ref ourselves since we could be destroyed when detached */ 
         g_object_ref (object);
         GDL_DOCK_OBJECT_SET_FLAGS (object, GDL_DOCK_IN_REFLOW);
         gdl_dock_object_detach (object, FALSE);
-    }
 
-    /* freeze the new parent, so reduce won't get called before it's
-       actually added to our parent */
-    gdl_dock_object_freeze (new_parent);
-    
-    /* bind the new parent to our master, so the following adds work */
-    gdl_dock_object_bind (new_parent, G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (object)));
-    
-    /* add the objects */
-    if (add_ourselves_first) {
-        gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object));
-        gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor));
-        splitpos = available_space - pref_size;
-    } else {
-        gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor));
-        gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object));
-        splitpos = pref_size;
-    }
+        /* freeze the new parent, so reduce won't get called before it's
+           actually added to our parent */
+        gdl_dock_object_freeze (new_parent);
+    
+        /* bind the new parent to our master, so the following adds work */
+        gdl_dock_object_bind (new_parent, G_OBJECT (GDL_DOCK_OBJECT_GET_MASTER (object)));
+    
+        /* add the objects */
+        if (add_ourselves_first) {
+            gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object));
+            gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor));
+            splitpos = available_space - pref_size;
+        } else {
+            gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (requestor));
+            gtk_container_add (GTK_CONTAINER (new_parent), GTK_WIDGET (object));
+            splitpos = pref_size;
+        }
 
-    /* add the new parent to the parent */
-    if (parent)
-        gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (new_parent));
+        /* add the new parent to the parent */
+        if (parent)
+            gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (new_parent));
 
-    /* show automatic object */
-    if (GTK_WIDGET_VISIBLE (object))
-    {
-        gtk_widget_show (GTK_WIDGET (new_parent));
-        GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_REFLOW);
+        /* show automatic object */
+        if (GTK_WIDGET_VISIBLE (object))
+        {
+            gtk_widget_show (GTK_WIDGET (new_parent));
+            GDL_DOCK_OBJECT_UNSET_FLAGS (object, GDL_DOCK_IN_REFLOW);
+        }
         gdl_dock_object_thaw (new_parent);
+
+        /* use extra docking parameter */
+        if (position != GDL_DOCK_CENTER && other_data &&
+            G_VALUE_HOLDS (other_data, G_TYPE_UINT)) {
+        
+            g_object_set (G_OBJECT (new_parent),
+                          "position", g_value_get_uint (other_data),
+                          NULL);
+        } else if (splitpos > 0 && splitpos < available_space) {
+            g_object_set (G_OBJECT (new_parent), "position", splitpos, NULL);
+        }
+    
+        g_object_unref (object);
     }
-    else // If the parent is already a DockNotebook, we don't need
-  	                                 // to create a new one.
+    else
+    {
+        /* If the parent is already a DockNotebook, we don't need
+         to create a new one. */
         gtk_container_add (GTK_CONTAINER (parent), GTK_WIDGET (requestor));
-    
-    /* use extra docking parameter */
-    if (position != GDL_DOCK_CENTER && other_data &&
-        G_VALUE_HOLDS (other_data, G_TYPE_UINT)) {
-        
-        g_object_set (G_OBJECT (new_parent),
-                      "position", g_value_get_uint (other_data),
-                      NULL);
-    } else if (splitpos > 0 && splitpos < available_space) {
-        g_object_set (G_OBJECT (new_parent), "position", splitpos, NULL);
     }
     
-    g_object_unref (object);
-
     requestor_parent = gdl_dock_object_get_parent_object (requestor);
     if (GDL_IS_DOCK_NOTEBOOK (requestor_parent))
     {


Index: libgdl.spec
===================================================================
RCS file: /cvs/pkgs/rpms/libgdl/F-10/libgdl.spec,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -r1.12 -r1.13
--- libgdl.spec	10 Mar 2009 04:35:23 -0000	1.12
+++ libgdl.spec	21 May 2009 13:36:29 -0000	1.13
@@ -1,14 +1,16 @@
 Summary:	Components and library for GNOME development tools
 Name:		libgdl
 Version:	2.24.0
-Release:	2%{?dist}
+Release:	3%{?dist}
 # Mixed source licensing scenario.
 License:	(GPLv2 and GPLv2+ and LGPLv2+)
 Group:		Development/Libraries
 URL:		http://www.gnome.org/
 Source0:	http://ftp.gnome.org/pub/GNOME/sources/gdl/2.24/gdl-%{version}.tar.gz
 
-Patch0:		%{name}-%{version}-pkgconfig.patch
+# http://bugzilla.gnome.org/566801
+Patch0:		%{name}-%{version}-docking-undocking-reset.patch
+Patch1:		%{name}-%{version}-pkgconfig.patch
 
 BuildRoot:	%(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
@@ -56,6 +58,7 @@ This package contains development files 
 %prep
 %setup -q -n gdl-%{version}
 %patch0 -p1
+%patch1 -p1
 
 %build
 %configure --disable-static --enable-gtk-doc
@@ -105,6 +108,10 @@ rm -rf $RPM_BUILD_ROOT
 %{_includedir}/%{name}-1.0/gdl
 
 %changelog
+* Thu May 21 2009 Debarshi Ray <rishi at fedoraproject.org> - 2.24.0-3
+- Backported fix to prevent crash when docking, undocking and trying to reset
+  dock layout. (GNOME Bugzilla #566801).
+
 * Tue Oct 28 2008 Debarshi Ray <rishi at fedoraproject.org> - 2.24.0-2
 - Updated Source0 URL.
 




More information about the scm-commits mailing list