diff --git a/Source/atk/generated/Atk_Range.cs b/Source/atk/generated/Atk_Range.cs index 374243bd8..34b141c1b 100644 --- a/Source/atk/generated/Atk_Range.cs +++ b/Source/atk/generated/Atk_Range.cs @@ -104,7 +104,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gdk/generated/Gdk_FrameTimings.cs b/Source/gdk/generated/Gdk_FrameTimings.cs index e8200758e..5256903a5 100644 --- a/Source/gdk/generated/Gdk_FrameTimings.cs +++ b/Source/gdk/generated/Gdk_FrameTimings.cs @@ -132,7 +132,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gdk/generated/Gdk_PixbufFormat.cs b/Source/gdk/generated/Gdk_PixbufFormat.cs index 12bce512a..7adfd0a11 100644 --- a/Source/gdk/generated/Gdk_PixbufFormat.cs +++ b/Source/gdk/generated/Gdk_PixbufFormat.cs @@ -166,7 +166,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/generator/OpaqueGen.cs b/Source/generator/OpaqueGen.cs index c0e252620..6088323f0 100644 --- a/Source/generator/OpaqueGen.cs +++ b/Source/generator/OpaqueGen.cs @@ -167,7 +167,11 @@ public override void Generate (GenerationInfo gen_info) sw.WriteLine ("\t\t\tif (!Owned)"); sw.WriteLine ("\t\t\t\treturn;"); sw.WriteLine ("\t\t\tFinalizerInfo info = new FinalizerInfo (Handle);"); - sw.WriteLine ("\t\t\tGLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler));"); + sw.WriteLine ("\t\t\tif (ForceFinalizeInMainThread) {"); + sw.WriteLine ("\t\t\t\tGLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler));"); + sw.WriteLine ("\t\t\t} else {"); + sw.WriteLine ("\t\t\t\tinfo.Handler();"); + sw.WriteLine ("\t\t\t}"); sw.WriteLine ("\t\t}"); sw.WriteLine (); } diff --git a/Source/gio/generated/GLib_FileAttributeInfoList.cs b/Source/gio/generated/GLib_FileAttributeInfoList.cs index 8d25eb62e..6fa05de23 100644 --- a/Source/gio/generated/GLib_FileAttributeInfoList.cs +++ b/Source/gio/generated/GLib_FileAttributeInfoList.cs @@ -103,7 +103,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gio/generated/GLib_FileAttributeMatcher.cs b/Source/gio/generated/GLib_FileAttributeMatcher.cs index c5266d704..447d1f2dc 100644 --- a/Source/gio/generated/GLib_FileAttributeMatcher.cs +++ b/Source/gio/generated/GLib_FileAttributeMatcher.cs @@ -136,7 +136,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gio/generated/GLib_IOModuleScope.cs b/Source/gio/generated/GLib_IOModuleScope.cs index 78b8b7084..dc4c82fe5 100644 --- a/Source/gio/generated/GLib_IOModuleScope.cs +++ b/Source/gio/generated/GLib_IOModuleScope.cs @@ -58,7 +58,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gio/generated/GLib_Resource.cs b/Source/gio/generated/GLib_Resource.cs index 9ba4db09a..c198b206d 100644 --- a/Source/gio/generated/GLib_Resource.cs +++ b/Source/gio/generated/GLib_Resource.cs @@ -152,7 +152,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gio/generated/GLib_SrvTarget.cs b/Source/gio/generated/GLib_SrvTarget.cs index 1707fd154..dd38bb907 100644 --- a/Source/gio/generated/GLib_SrvTarget.cs +++ b/Source/gio/generated/GLib_SrvTarget.cs @@ -124,7 +124,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/glib/Opaque.cs b/Source/glib/Opaque.cs index 955285f6a..2b38859bd 100644 --- a/Source/glib/Opaque.cs +++ b/Source/glib/Opaque.cs @@ -30,6 +30,8 @@ namespace GLib { public class Opaque : IWrapper, IDisposable { + public static bool ForceFinalizeInMainThread = true; + IntPtr _obj; bool owned; diff --git a/Source/gtk/generated/Gtk_CssSection.cs b/Source/gtk/generated/Gtk_CssSection.cs index 5b9f55263..152011278 100644 --- a/Source/gtk/generated/Gtk_CssSection.cs +++ b/Source/gtk/generated/Gtk_CssSection.cs @@ -143,7 +143,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_Gradient.cs b/Source/gtk/generated/Gtk_Gradient.cs index 6f0ccae0f..cb6f63310 100644 --- a/Source/gtk/generated/Gtk_Gradient.cs +++ b/Source/gtk/generated/Gtk_Gradient.cs @@ -99,7 +99,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_IconSet.cs b/Source/gtk/generated/Gtk_IconSet.cs index bcc7d8358..9ce2ee1cf 100644 --- a/Source/gtk/generated/Gtk_IconSet.cs +++ b/Source/gtk/generated/Gtk_IconSet.cs @@ -139,7 +139,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_IconSource.cs b/Source/gtk/generated/Gtk_IconSource.cs index 4b4c63629..0abcb5cd9 100644 --- a/Source/gtk/generated/Gtk_IconSource.cs +++ b/Source/gtk/generated/Gtk_IconSource.cs @@ -240,7 +240,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_KineticScrolling.cs b/Source/gtk/generated/Gtk_KineticScrolling.cs index ad5c7003c..a1db3ef0a 100644 --- a/Source/gtk/generated/Gtk_KineticScrolling.cs +++ b/Source/gtk/generated/Gtk_KineticScrolling.cs @@ -58,7 +58,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_MenuTracker.cs b/Source/gtk/generated/Gtk_MenuTracker.cs index 4ec778e71..fc13a5afc 100644 --- a/Source/gtk/generated/Gtk_MenuTracker.cs +++ b/Source/gtk/generated/Gtk_MenuTracker.cs @@ -65,7 +65,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_PaperSize.cs b/Source/gtk/generated/Gtk_PaperSize.cs index e398637cd..d64273dc9 100644 --- a/Source/gtk/generated/Gtk_PaperSize.cs +++ b/Source/gtk/generated/Gtk_PaperSize.cs @@ -288,7 +288,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_RecentInfo.cs b/Source/gtk/generated/Gtk_RecentInfo.cs index d62fc06de..c2beeb373 100644 --- a/Source/gtk/generated/Gtk_RecentInfo.cs +++ b/Source/gtk/generated/Gtk_RecentInfo.cs @@ -317,7 +317,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_SelectionData.cs b/Source/gtk/generated/Gtk_SelectionData.cs index 6fa816a33..60b531aa4 100644 --- a/Source/gtk/generated/Gtk_SelectionData.cs +++ b/Source/gtk/generated/Gtk_SelectionData.cs @@ -222,7 +222,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_SymbolicColor.cs b/Source/gtk/generated/Gtk_SymbolicColor.cs index 1ae848159..7bca13327 100644 --- a/Source/gtk/generated/Gtk_SymbolicColor.cs +++ b/Source/gtk/generated/Gtk_SymbolicColor.cs @@ -138,7 +138,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_TargetList.cs b/Source/gtk/generated/Gtk_TargetList.cs index bd29701c9..4d520b244 100644 --- a/Source/gtk/generated/Gtk_TargetList.cs +++ b/Source/gtk/generated/Gtk_TargetList.cs @@ -124,7 +124,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_TextAttributes.cs b/Source/gtk/generated/Gtk_TextAttributes.cs index 84cb67c2c..60689f9bb 100644 --- a/Source/gtk/generated/Gtk_TextAttributes.cs +++ b/Source/gtk/generated/Gtk_TextAttributes.cs @@ -375,7 +375,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_TreePath.cs b/Source/gtk/generated/Gtk_TreePath.cs index 9126ba2e1..80d42c7ed 100644 --- a/Source/gtk/generated/Gtk_TreePath.cs +++ b/Source/gtk/generated/Gtk_TreePath.cs @@ -201,7 +201,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_TreeRowReference.cs b/Source/gtk/generated/Gtk_TreeRowReference.cs index 89f5219bf..ee880de08 100644 --- a/Source/gtk/generated/Gtk_TreeRowReference.cs +++ b/Source/gtk/generated/Gtk_TreeRowReference.cs @@ -136,7 +136,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/gtk/generated/Gtk_WidgetPath.cs b/Source/gtk/generated/Gtk_WidgetPath.cs index f9bf09c46..3a4ac1dfb 100644 --- a/Source/gtk/generated/Gtk_WidgetPath.cs +++ b/Source/gtk/generated/Gtk_WidgetPath.cs @@ -396,7 +396,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_AttrIterator.cs b/Source/pango/generated/Pango_AttrIterator.cs index 0f6c05154..15d9de07d 100644 --- a/Source/pango/generated/Pango_AttrIterator.cs +++ b/Source/pango/generated/Pango_AttrIterator.cs @@ -69,7 +69,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_AttrList.cs b/Source/pango/generated/Pango_AttrList.cs index 6b3662d39..68a8ad543 100644 --- a/Source/pango/generated/Pango_AttrList.cs +++ b/Source/pango/generated/Pango_AttrList.cs @@ -107,7 +107,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_Coverage.cs b/Source/pango/generated/Pango_Coverage.cs index 23de4fc7a..16f9c09b7 100644 --- a/Source/pango/generated/Pango_Coverage.cs +++ b/Source/pango/generated/Pango_Coverage.cs @@ -110,7 +110,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_FontDescription.cs b/Source/pango/generated/Pango_FontDescription.cs index 775473832..10fbdddb0 100644 --- a/Source/pango/generated/Pango_FontDescription.cs +++ b/Source/pango/generated/Pango_FontDescription.cs @@ -323,7 +323,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_FontMetrics.cs b/Source/pango/generated/Pango_FontMetrics.cs index afee711f0..1ea6e22ac 100644 --- a/Source/pango/generated/Pango_FontMetrics.cs +++ b/Source/pango/generated/Pango_FontMetrics.cs @@ -160,7 +160,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_GlyphString.cs b/Source/pango/generated/Pango_GlyphString.cs index ff8a35993..9a6159d41 100644 --- a/Source/pango/generated/Pango_GlyphString.cs +++ b/Source/pango/generated/Pango_GlyphString.cs @@ -157,7 +157,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_Item.cs b/Source/pango/generated/Pango_Item.cs index 9a910c6d3..5345fa6f9 100644 --- a/Source/pango/generated/Pango_Item.cs +++ b/Source/pango/generated/Pango_Item.cs @@ -138,7 +138,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_LayoutIter.cs b/Source/pango/generated/Pango_LayoutIter.cs index 7c21c04ab..98cec5bef 100644 --- a/Source/pango/generated/Pango_LayoutIter.cs +++ b/Source/pango/generated/Pango_LayoutIter.cs @@ -259,7 +259,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_LayoutLine.cs b/Source/pango/generated/Pango_LayoutLine.cs index 06853317a..da6b233e8 100644 --- a/Source/pango/generated/Pango_LayoutLine.cs +++ b/Source/pango/generated/Pango_LayoutLine.cs @@ -161,7 +161,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } } diff --git a/Source/pango/generated/Pango_TabArray.cs b/Source/pango/generated/Pango_TabArray.cs index 584c578ef..b674667fd 100644 --- a/Source/pango/generated/Pango_TabArray.cs +++ b/Source/pango/generated/Pango_TabArray.cs @@ -117,7 +117,11 @@ public bool Handler () if (!Owned) return; FinalizerInfo info = new FinalizerInfo (Handle); - GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + if (ForceFinalizeInMainThread) { + GLib.Timeout.Add (50, new GLib.TimeoutHandler (info.Handler)); + } else { + info.Handler(); + } }