r10990 - in /desktop/unstable/gnome-session/debian: changelog patches/01_clever_save.diff

joss at users.alioth.debian.org joss at users.alioth.debian.org
Tue May 15 19:21:22 UTC 2007


Author: joss
Date: Tue May 15 19:21:21 2007
New Revision: 10990

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=10990
Log:
* 01_clever_save.diff: stolen from upstream's SVN. Be more clever when 
  saving the session, so that e.g. multiple xterms are not forgotten.
  Closes: #364463.

Added:
    desktop/unstable/gnome-session/debian/patches/01_clever_save.diff
Modified:
    desktop/unstable/gnome-session/debian/changelog

Modified: desktop/unstable/gnome-session/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-session/debian/changelog?rev=10990&op=diff
==============================================================================
--- desktop/unstable/gnome-session/debian/changelog (original)
+++ desktop/unstable/gnome-session/debian/changelog Tue May 15 19:21:21 2007
@@ -1,8 +1,14 @@
-gnome-session (2.18.0-2) UNRELEASED; urgency=low
-
+gnome-session (2.18.0-2) unstable; urgency=low
+
+  [ Sven Arvidsson ]
   * Add the only missing manpage (Closes: #252006)
 
- -- Sven Arvidsson <sa at whiz.se>  Sat, 05 May 2007 23:42:52 +0200
+  [ Josselin Mouette ]
+  * 01_clever_save.diff: stolen from upstream's SVN. Be more clever when 
+    saving the session, so that e.g. multiple xterms are not forgotten.
+    Closes: #364463.
+
+ -- Josselin Mouette <joss at debian.org>  Tue, 15 May 2007 20:45:31 +0200
 
 gnome-session (2.18.0-1) unstable; urgency=low
 

Added: desktop/unstable/gnome-session/debian/patches/01_clever_save.diff
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-session/debian/patches/01_clever_save.diff?rev=10990&op=file
==============================================================================
--- desktop/unstable/gnome-session/debian/patches/01_clever_save.diff (added)
+++ desktop/unstable/gnome-session/debian/patches/01_clever_save.diff Tue May 15 19:21:21 2007
@@ -1,0 +1,52 @@
+--- trunk/gnome-session/save.c	2007/05/09 15:55:29	4341
++++ trunk/gnome-session/save.c	2007/05/11 17:13:40	4349
+@@ -501,24 +501,35 @@
+ 
+   for (node = clients; node != NULL; node = node->next)
+     {
+-      GSList *sl;
+       Client *client = node->data;
+-
+-      for (sl = node->next; sl != NULL; sl = sl->next)
++      GSList *props = client->properties;
++      GSList *sl;
++      
++      /* Only trigger duplicate removal when the current client will
++       * be resumed through XSMP. We'll remove all autostarted clients matching
++       * the current client. See bug 341286 comment 12 for the whole rationale.
++       */
++      if (client->match_rule != MATCH_ID)
++        continue;
++
++      /* Always start from the beginning, as there may be an autostarted
++       * client in the list before us */
++      sl = clients;
++      while (sl)
+         {
+-	  Client *tmp_client = sl->data;
+-	  GSList *props, *tmp_props;
++          Client *tmp_client = sl->data;
++          GSList *tmp_props = tmp_client->properties;
+ 
+-	  props = client->properties;
+-	  tmp_props = tmp_client->properties;
++          sl = sl->next;
+ 
+-	  if (compare_restart_command (props, tmp_props))
+-	    {
+-	      REMOVE (clients, tmp_client);
+-	      free_client (tmp_client);
+-	      sl = node;
+-	    }
+-	}
++          /* Remove any autostarted clients matching us */
++          if ((tmp_client->match_rule == MATCH_PROP) &&
++              compare_restart_command (props, tmp_props))
++            {
++              REMOVE (clients, tmp_client);
++              free_client (tmp_client);
++            }
++        }
+     }
+ 
+   return clients;




More information about the pkg-gnome-commits mailing list