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>
|
2008-08-21 Marek Kasik <mkasik@redhat.com>
|
||||||
|
|
||||||
* ChangeLog: changelog update for previous commit
|
* 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
|
static gboolean
|
||||||
increment_page_sequence (PrintPagesData *data)
|
increment_page_sequence (PrintPagesData *data)
|
||||||
{
|
{
|
||||||
@ -2139,6 +2179,8 @@ print_pages_idle (gpointer user_data)
|
|||||||
data->ranges[0].end = priv->nr_of_pages - 1;
|
data->ranges[0].end = priv->nr_of_pages - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clamp_page_ranges (data);
|
||||||
|
|
||||||
if (priv->manual_reverse)
|
if (priv->manual_reverse)
|
||||||
{
|
{
|
||||||
data->range = data->num_ranges - 1;
|
data->range = data->num_ranges - 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user