'Document print status' window doesn't refresh when you cancel a print job
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
system-config-printer (Ubuntu) |
Confirmed
|
Medium
|
Unassigned |
Bug Description
Binary package hint: system-
This is system-
In the 'document print status' window, if you take a print job which is in the 'Stopped' state, and right-click and select 'Cancel', the job seems to be cancelled but the list of jobs in the window is not updated (ie the job you've just cancelled is still listed). If you again right-click on it and 'Cancel', you get the error dialog: "CUPS server error There was an error during the CUPS operation: 'client-
If you select Refresh from the document print status window's View menu, the list is updated and the cancelled job (correctly) disappears.
The window should automatically refresh itself when you do some operation like cancel; the user shouldn't have to do this manually.
Related branches
Changed in system-config-printer: | |
importance: | Undecided → Medium |
Works fine in Fedora. Wonder if it's to do with this subscriptions fix we apply:
--- cups-1. 3b1/scheduler/ subscriptions. c.eggcups 2007-07-11 22:46:42.0000 3b1/scheduler/ subscriptions. c 2007-07-18 11:34:16.000000000 +0 PRINTER_ DELETED) PRINTER_ CHANGED) JOB_CREATED) JOB_STATE) && job &&
job- >state_ value == IPP_JOB_PROCESSING) EVENT_PRINTER_ CHANGED| CUPSD_EVENT_ JOB_STATE_ CHANGED| C PRINTER_ STATE_CHANGED) )
00000 +0100
+++ cups-1.
100
@@ -1292,13 +1292,13 @@
what = "PrinterAdded";
else if (event & CUPSD_EVENT_
what = "PrinterRemoved";
- else if (event & CUPSD_EVENT_
- what = "QueueChanged";
else if (event & CUPSD_EVENT_
what = "JobQueuedLocal";
else if ((event & CUPSD_EVENT_
what = "JobStartedLocal";
+ else if (event & (CUPSD_
UPSD_EVENT_
+ what = "QueueChanged";
else
return;
@@ -1334,7 +1334,7 @@ message_ append_ iter_init( message, &iter); message_ iter_append_ string( &iter, dest->name); message_ iter_append_ uint32( &iter, job->id); message_ iter_append_ string( &iter, job->username);
dbus_
if (dest)
dbus_
- if (job)
+ if (job && strcmp (what, "QueueChanged") != 0)
{
dbus_
dbus_
I hope that a future version of CUPS will include a proper D-Bus notifier; that will make this a lot cleaner.