Bug 545875 – evo crashed when trying to print pages 6-7 of a 1 page
2008-08-21 Marek Kasik <mkasik@redhat.com> Bug 545875 – evo crashed when trying to print pages 6-7 of a 1 page email * gtk/gtkprintoperation.c: Clamp page ranges to correct ranges svn path=/trunk/; revision=21177
This commit is contained in:
parent
91ae7fac64
commit
547694ef0e
@ -1,3 +1,10 @@
|
||||
2008-08-21 Marek Kasik <mkasik@redhat.com>
|
||||
|
||||
Bug 545875 – evo crashed when trying to print pages 6-7 of a 1 page
|
||||
email
|
||||
|
||||
* gtk/gtkprintoperation.c: Clamp page ranges to correct ranges
|
||||
|
||||
2008-08-21 Marek Kasik <mkasik@redhat.com>
|
||||
|
||||
* ChangeLog: changelog update for previous commit
|
||||
|
@ -1926,6 +1926,46 @@ find_range (PrintPagesData *data)
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
clamp_page_ranges (PrintPagesData *data)
|
||||
{
|
||||
GtkPrintOperationPrivate *priv;
|
||||
gint num_of_correct_ranges;
|
||||
gint i;
|
||||
|
||||
priv = data->op->priv;
|
||||
|
||||
num_of_correct_ranges = 0;
|
||||
|
||||
for (i = 0; i < data->num_ranges; i++)
|
||||
if ((data->ranges[i].start >= 0) &&
|
||||
(data->ranges[i].start < priv->nr_of_pages) &&
|
||||
(data->ranges[i].end >= 0) &&
|
||||
(data->ranges[i].end < priv->nr_of_pages))
|
||||
{
|
||||
data->ranges[num_of_correct_ranges] = data->ranges[i];
|
||||
num_of_correct_ranges++;
|
||||
}
|
||||
else if ((data->ranges[i].start >= 0) &&
|
||||
(data->ranges[i].start < priv->nr_of_pages) &&
|
||||
(data->ranges[i].end >= priv->nr_of_pages))
|
||||
{
|
||||
data->ranges[i].end = priv->nr_of_pages - 1;
|
||||
data->ranges[num_of_correct_ranges] = data->ranges[i];
|
||||
num_of_correct_ranges++;
|
||||
}
|
||||
else if ((data->ranges[i].end >= 0) &&
|
||||
(data->ranges[i].end < priv->nr_of_pages) &&
|
||||
(data->ranges[i].start < 0))
|
||||
{
|
||||
data->ranges[i].start = 0;
|
||||
data->ranges[num_of_correct_ranges] = data->ranges[i];
|
||||
num_of_correct_ranges++;
|
||||
}
|
||||
|
||||
data->num_ranges = num_of_correct_ranges;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
increment_page_sequence (PrintPagesData *data)
|
||||
{
|
||||
@ -2139,6 +2179,8 @@ print_pages_idle (gpointer user_data)
|
||||
data->ranges[0].end = priv->nr_of_pages - 1;
|
||||
}
|
||||
|
||||
clamp_page_ranges (data);
|
||||
|
||||
if (priv->manual_reverse)
|
||||
{
|
||||
data->range = data->num_ranges - 1;
|
||||
|
Loading…
Reference in New Issue
Block a user