banshee r3424 - in trunk/banshee: . src/Libraries/Hyena.Gui/Hyena.Gui
- From: abock svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r3424 - in trunk/banshee: . src/Libraries/Hyena.Gui/Hyena.Gui
- Date: Tue, 11 Mar 2008 23:02:14 +0000 (GMT)
Author: abock
Date: Tue Mar 11 23:02:14 2008
New Revision: 3424
URL: http://svn.gnome.org/viewvc/banshee?rev=3424&view=rev
Log:
2008-03-11 Aaron Bockover <abock gnome org>
* src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs: Do not crash
if the native Cairo pop/push group functions do not exist
Modified:
trunk/banshee/ChangeLog
trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs
Modified: trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs
==============================================================================
--- trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs (original)
+++ trunk/banshee/src/Libraries/Hyena.Gui/Hyena.Gui/CairoExtensions.cs Tue Mar 11 23:02:14 2008
@@ -300,14 +300,24 @@
return false;
}
+ private static bool native_push_pop_exists = true;
+
[DllImport ("libcairo.so.2")]
private static extern void cairo_push_group (IntPtr ptr);
private static CairoInteropCall cairo_push_group_call = new CairoInteropCall ("PushGroup");
public static void PushGroup (Cairo.Context cr)
{
- if (!CallCairoMethod (cr, ref cairo_push_group_call)) {
- cairo_push_group (cr.Handle);
+ if (!native_push_pop_exists) {
+ return;
+ }
+
+ try {
+ if (!CallCairoMethod (cr, ref cairo_push_group_call)) {
+ cairo_push_group (cr.Handle);
+ }
+ } catch {
+ native_push_pop_exists = false;
}
}
@@ -317,8 +327,16 @@
public static void PopGroupToSource (Cairo.Context cr)
{
- if (!CallCairoMethod (cr, ref cairo_pop_group_to_source_call)) {
- cairo_pop_group_to_source (cr.Handle);
+ if (!native_push_pop_exists) {
+ return;
+ }
+
+ try {
+ if (!CallCairoMethod (cr, ref cairo_pop_group_to_source_call)) {
+ cairo_pop_group_to_source (cr.Handle);
+ }
+ } catch (EntryPointNotFoundException) {
+ native_push_pop_exists = false;
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]