Author: rpmcruz
Date: Sat Nov 15 00:27:58 2008
New Revision: 53342
URL: http://svn.opensuse.org/viewcvs/yast?rev=53342&view=rev
Log:
* src/ygtktimezone.c: bug fix 445158: crashing when timezone map
is missing.
Modified:
trunk/gtk/ChangeLog
trunk/gtk/src/ygtktimezonepicker.c
Modified: trunk/gtk/ChangeLog
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/ChangeLog?rev=53342&r1=53341&r2=53342&view=diff
==============================================================================
--- trunk/gtk/ChangeLog (original)
+++ trunk/gtk/ChangeLog Sat Nov 15 00:27:58 2008
@@ -7,6 +7,9 @@
* src/YGPackageSelector.cc & src/yzyppwrapper.h/cc: show disk
changed size.
+ * src/ygtktimezone.c: bug fix 445158: crashing when timezone map
+ is missing.
+
2008-11-10 Ricardo Cruz
* src/YGWidget.h/cc & YG*.cc: bug fix 443214: bad event handling
Modified: trunk/gtk/src/ygtktimezonepicker.c
URL: http://svn.opensuse.org/viewcvs/yast/trunk/gtk/src/ygtktimezonepicker.c?rev=53342&r1=53341&r2=53342&view=diff
==============================================================================
--- trunk/gtk/src/ygtktimezonepicker.c (original)
+++ trunk/gtk/src/ygtktimezonepicker.c Sat Nov 15 00:27:58 2008
@@ -170,8 +170,8 @@
picker->map_height = gdk_pixbuf_get_height (picker->map_pixbuf);
}
else {
- g_warning ("Couldn't load map: %s\n%s\n", filename, error->message);
- picker->map_width = picker->map_height = 1;
+ g_warning ("Couldn't load map: %s\n%s\n", filename, error ? error->message : "(unknown)");
+ picker->map_width = 300; picker->map_height = 50;
}
char buf [4096];
@@ -454,6 +454,17 @@
int width, height;
gdk_window_get_size (event->window, &width, &height);
+ if (!picker->map_pixbuf) {
+ // show alt text if no image was loaded
+ PangoLayout *layout;
+ layout = gtk_widget_create_pango_layout (widget,
+ "Timezone map could not be found.\nVerify the integrity of the yast2-theme-* package.");
+ cairo_move_to (cr, 10, 10);
+ pango_cairo_show_layout (cr, layout);
+ g_object_unref (layout);
+ goto cleanup;
+ }
+
gdk_cairo_set_source_pixbuf (cr, picker->map_pixbuf, 0, 0);
cairo_matrix_t matrix;
cairo_matrix_init_translate (&matrix, picker->map_x - (width/2)/picker->scale,
@@ -525,6 +536,7 @@
cairo_new_path (cr);
}
+cleanup:
cairo_destroy (cr);
gtk_paint_shadow (widget->style, event->window, GTK_STATE_NORMAL,
GTK_SHADOW_IN, &event->area, widget, "frame", 0, 0, width, height);
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org