[gnumeric] Avoid crashing when printing sheet object widgets from ssconvert. [#705638]
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnumeric] Avoid crashing when printing sheet object widgets from ssconvert. [#705638]
- Date: Thu, 8 Aug 2013 01:54:33 +0000 (UTC)
commit 6c880d2699d19fe5adeaef4f032c71d96fb77e2a
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date: Wed Aug 7 19:53:18 2013 -0600
Avoid crashing when printing sheet object widgets from ssconvert. [#705638]
2013-08-07 Andreas J. Guelzow <aguelzow pyrshep ca>
* src/sheet-object-widget.c (sheet_widget_draw_cairo): avoid using
gtk_offscreen_window_new without a default screen (see bugs #705638
and #705640)
ChangeLog | 6 ++++++
NEWS | 1 +
src/sheet-object-widget.c | 20 ++++++++++++--------
3 files changed, 19 insertions(+), 8 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 60cec0c..bfb4474 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-08-07 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+ * src/sheet-object-widget.c (sheet_widget_draw_cairo): avoid using
+ gtk_offscreen_window_new without a default screen (see bugs #705638
+ and #705640)
+
2013-08-07 Morten Welinder <terra gnome org>
* src/ssconvert.c (main): Initialize gtk+ without opening any
diff --git a/NEWS b/NEWS
index 42bf9cc..e64dddb 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,7 @@ Andreas:
* Show input messages. [#705310]
* Fix Excel XML import. [#705223]
* Fix documentation. [#705541]
+ * Avoid crashing when printing sheet object widgets from ssconvert. [#705638]
Jean:
* Fix text wrap inside sheet objects. [#704417]
diff --git a/src/sheet-object-widget.c b/src/sheet-object-widget.c
index 5763909..164265f 100644
--- a/src/sheet-object-widget.c
+++ b/src/sheet-object-widget.c
@@ -225,14 +225,18 @@ static void
sheet_widget_draw_cairo (SheetObject const *so, cairo_t *cr,
double width, double height)
{
- GtkWidget *win = gtk_offscreen_window_new ();
- GtkWidget *w = SOW_CLASS(so)->create_widget (GNM_SOW (so));
-
- gtk_container_add (GTK_CONTAINER (win), w);
- gtk_widget_set_size_request (w, width, height);
- gtk_widget_show_all (win);
- gtk_container_propagate_draw (GTK_CONTAINER (win), w, cr);
- gtk_widget_destroy (win);
+ /* See bugs #705638 and #705640 */
+ if (NULL != gdk_screen_get_default ()) {
+ GtkWidget *win = gtk_offscreen_window_new ();
+ GtkWidget *w = SOW_CLASS(so)->create_widget (GNM_SOW (so));
+
+ gtk_container_add (GTK_CONTAINER (win), w);
+ gtk_widget_set_size_request (w, width, height);
+ gtk_widget_show_all (win);
+ gtk_container_propagate_draw (GTK_CONTAINER (win), w, cr);
+ gtk_widget_destroy (win);
+ } else
+ g_warning (_("Because of GTK bug #705640, a sheet object widget is not being printed."));
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]