r22978 - in /desktop/lenny/gtk+2.0/debian: changelog patches/096_cups_mainloop_events.patch patches/series

joss at users.alioth.debian.org joss at users.alioth.debian.org
Fri Feb 5 22:49:42 UTC 2010


Author: joss
Date: Fri Feb  5 22:49:40 2010
New Revision: 22978

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=22978
Log:
096_cups_mainloop_events.patch: stolen upstream. Fixes a very nasty 
bug that prevents printing big documents. GNOME #591846, LP #359975.

Added:
    desktop/lenny/gtk+2.0/debian/patches/096_cups_mainloop_events.patch
Modified:
    desktop/lenny/gtk+2.0/debian/changelog
    desktop/lenny/gtk+2.0/debian/patches/series

Modified: desktop/lenny/gtk+2.0/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/lenny/gtk%2B2.0/debian/changelog?rev=22978&op=diff
==============================================================================
--- desktop/lenny/gtk+2.0/debian/changelog [utf-8] (original)
+++ desktop/lenny/gtk+2.0/debian/changelog [utf-8] Fri Feb  5 22:49:40 2010
@@ -1,3 +1,10 @@
+gtk+2.0 (2.12.12-1~lenny2) stable-proposed-updates; urgency=low
+
+  * 096_cups_mainloop_events.patch: stolen upstream. Fixes a very nasty 
+    bug that prevents printing big documents. GNOME #591846, LP #359975.
+
+ -- Josselin Mouette <joss at debian.org>  Mon, 01 Feb 2010 15:19:03 +0100
+
 gtk+2.0 (2.12.12-1~lenny1) stable-proposed-updates; urgency=low
 
   [ Josselin Mouette ]

Added: desktop/lenny/gtk+2.0/debian/patches/096_cups_mainloop_events.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/lenny/gtk%2B2.0/debian/patches/096_cups_mainloop_events.patch?rev=22978&op=file
==============================================================================
--- desktop/lenny/gtk+2.0/debian/patches/096_cups_mainloop_events.patch (added)
+++ desktop/lenny/gtk+2.0/debian/patches/096_cups_mainloop_events.patch [utf-8] Fri Feb  5 22:49:40 2010
@@ -1,0 +1,103 @@
+From 3b336186ee4d55799f4290c672d6bccd787c70fa Mon Sep 17 00:00:00 2001
+From: Marek Kasik <mkasik at redhat.com>
+Date: Sun, 30 Aug 2009 01:32:01 +0000
+Subject: Add CUPS events as soon as possible when printing
+
+CUPS events are added in prepare part of the main loop. These
+events are initialized before their addition (#434318, #586466).
+---
+diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c
+index f84c920..e930980 100644
+--- a/modules/printbackends/cups/gtkprintbackendcups.c
++++ b/modules/printbackends/cups/gtkprintbackendcups.c
+@@ -803,15 +803,11 @@ request_password (gpointer data)
+   return FALSE;
+ }
+ 
+-static gboolean
+-cups_dispatch_watch_check (GSource *source)
++static void
++cups_dispatch_add_poll (GSource *source)
+ {
+   GtkPrintCupsDispatchWatch *dispatch;
+   GtkCupsPollState poll_state;
+-  gboolean result;
+-
+-  GTK_NOTE (PRINTING,
+-            g_print ("CUPS Backend: %s <source %p>\n", G_STRFUNC, source)); 
+ 
+   dispatch = (GtkPrintCupsDispatchWatch *) source;
+ 
+@@ -820,26 +816,41 @@ cups_dispatch_watch_check (GSource *source)
+   if (dispatch->request->http != NULL)
+     {
+       if (dispatch->data_poll == NULL)
+-	{
++        {
+ 	  dispatch->data_poll = g_new0 (GPollFD, 1);
+-	  g_source_add_poll (source, dispatch->data_poll);
+-	}
+-      else
+-	{
++
+ 	  if (poll_state == GTK_CUPS_HTTP_READ)
+ 	    dispatch->data_poll->events = G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_PRI;
+ 	  else if (poll_state == GTK_CUPS_HTTP_WRITE)
+ 	    dispatch->data_poll->events = G_IO_OUT | G_IO_ERR;
+ 	  else
+ 	    dispatch->data_poll->events = 0;
+-	}
+ 
+ #ifdef HAVE_CUPS_API_1_2
+-      dispatch->data_poll->fd = httpGetFd (dispatch->request->http);
++          dispatch->data_poll->fd = httpGetFd (dispatch->request->http);
+ #else
+-      dispatch->data_poll->fd = dispatch->request->http->fd;
++          dispatch->data_poll->fd = dispatch->request->http->fd;
+ #endif
++          g_source_add_poll (source, dispatch->data_poll);
++        }
+     }
++}
++
++static gboolean
++cups_dispatch_watch_check (GSource *source)
++{
++  GtkPrintCupsDispatchWatch *dispatch;
++  GtkCupsPollState poll_state;
++  gboolean result;
++
++  GTK_NOTE (PRINTING,
++            g_print ("CUPS Backend: %s <source %p>\n", G_STRFUNC, source)); 
++
++  dispatch = (GtkPrintCupsDispatchWatch *) source;
++
++  poll_state = gtk_cups_request_get_poll_state (dispatch->request);
++
++  cups_dispatch_add_poll (source);
+     
+   if (poll_state != GTK_CUPS_HTTP_IDLE && !dispatch->request->need_password)
+     if (!(dispatch->data_poll->revents & dispatch->data_poll->events)) 
+@@ -868,6 +879,7 @@ cups_dispatch_watch_prepare (GSource *source,
+ 			     gint    *timeout_)
+ {
+   GtkPrintCupsDispatchWatch *dispatch;
++  gboolean result;
+ 
+   dispatch = (GtkPrintCupsDispatchWatch *) source;
+ 
+@@ -876,7 +888,11 @@ cups_dispatch_watch_prepare (GSource *source,
+ 
+   *timeout_ = -1;
+   
+-  return gtk_cups_request_read_write (dispatch->request);
++  result = gtk_cups_request_read_write (dispatch->request);
++
++  cups_dispatch_add_poll (source);
++
++  return result;
+ }
+ 
+ static gboolean
+--
+cgit v0.8.3.1

Modified: desktop/lenny/gtk+2.0/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/lenny/gtk%2B2.0/debian/patches/series?rev=22978&op=diff
==============================================================================
--- desktop/lenny/gtk+2.0/debian/patches/series [utf-8] (original)
+++ desktop/lenny/gtk+2.0/debian/patches/series [utf-8] Fri Feb  5 22:49:40 2010
@@ -21,3 +21,4 @@
 070_mandatory-relibtoolize.patch
 091_workaround_no_gtk_init_incorrect_display.patch
 095_gtk-im-module-setting.patch
+096_cups_mainloop_events.patch




More information about the pkg-gnome-commits mailing list