GtkSharp/NEWS
2014-06-06 15:48:07 +02:00

282 lines
11 KiB
Plaintext

===============================================================================
Gtk# 2.99.3 - 2014-06-06
===============================================================================
Gtk# 2.99.3 is a beta release of C# bindings for GTK 3.x.
This version of Gtk# provides bindings for the API exposed by these libraries:
* cairo 1.10.0
* glib 2.28.0
* pango 1.28.3
* atk 1.32.0
* gdk-pixbuf 2.22.1
* gtk+ 3.0.0
There is no API stability guarantee for now, but we try to keep breaking
changes to a minimum.
This version of Gtk# can be installed in parallel with Gtk# 2.x, and should not
have any impact on applications using Gtk# 2.x.
New features and enhancements
-----------------------------
* Windows installer: this is the first release of a Gtk# Windows installer
with GTK+ 3.x. It includes 32-bit native binaries of GTK+ 3.6.4, provided
at http://www.gtk.org/download/win32.php
* generator: Add support for fixed length arrays as method parameters
* build: Add a pkg-config file for gdk-sharp-3.0
* Add samples to show the Spinner widget, and to demonstrate CSS theming
Changes
-------
* generator: Create a directory for each namespace of generated code
* cairo: Remove FormatStrideForWidth and PathExtents methods from Context
* glib: Add GVariant to fundamental types and allow conversion to and from
GValue
Bug fixes
---------
* Various fixes to build on Windows with MinGW and the .NET compiler
* generator: Fix generation of SetGValue method
* generator: Add new keyword to GType property if it hides parent
* generator: Fix handle being passed when type is a struct
* generator: Fix signature of static method overloads
* gtk: Add ListStore.SetValue overload for long type
===============================================================================
Gtk# 2.99.2 - 2013-12-04
===============================================================================
Gtk# 2.99.2 is the third beta release of C# bindings for GTK 3.x.
This version of Gtk# provides bindings for the API exposed by these libraries:
* cairo 1.10.0
* glib 2.28.0
* pango 1.28.3
* atk 1.32.0
* gdk-pixbuf 2.22.1
* gtk+ 3.0.0
There is no API stability guarantee for now, but we try to keep breaking
changes to a minimum.
This version of Gtk# can be installed in parallel with Gtk# 2.x, and should not
have any impact on applications using Gtk# 2.x.
New features and enhancements
-----------------------------
* Lots of improvements to the code generator, to support GAPI XML converted
from GObject Introspection XML (GIR).
* generator: Remove redundant class name from method name
* generator: Implement attribute to hide method parameters
* cairo: Throw ObjectDisposedException when trying to use an object that has
been disposed
* glib: Add Mutex, RecMutex and Cond types
* glib: Add GPollFD and GSource types
* glib: Add GDate and GDateTime classes
* glib: Map MainContext type and expose members
Changes
-------
* Move the fixup tool from the parser to the generator folder
* generator: Provide a GType static property for adapters and rename existing
GType property to GInterfaceGType
* gio: Rename ApplicationFlags.FlagsNone to ApplicationFlags.None
* gio: Delete unused DBusInterfaceVTable class
* gio: Fix up returns type for several GSettings.List* methods
* glib: Install properties before class_init finishes
* glib: Remove obsolete Argv-related methods in Marshaller
* gtk: Fix TreeView.GetTooltipContext method signature (bxc#14678)
Bug fixes
---------
* generator: Dispose ownable method parameters in VM callback (bxc#237)
* generator: Dispose ownable parameters in signal callbacks (bxc#237)
* atk: Add metadata fixup to avoid crash due to ABI change
* cairo: Fix leaks when managed objects are finalized
* glib: Fix copy-paste error in Object.FindClassProperty()
* gtk: Fix Application to be more robust when embedding mono
* gui-thread-check: Add two more methods to the whitelist
===============================================================================
Gtk# 2.99.1 - 2013-09-23
===============================================================================
Gtk# 2.99.1 is the second release of C# bindings for GTK 3.x. This is a beta
release, primarily intended for applications developers who want to start
porting their application to GTK 3.x.
This version of Gtk# provides bindings for the API exposed by these libraries:
* cairo 1.10.0
* glib 2.28.0
* pango 1.28.3
* atk 1.32.0
* gdk-pixbuf 2.22.1
* gtk+ 3.0.0
There is no API stability guarantee for now, but we will try to keep breaking
changes to a minimum.
This version of Gtk# can be installed in parallel with Gtk# 2.x, and should not
have any impact on applications using Gtk# 2.x.
New features and enhancements
-----------------------------
* Support for async/await in the GTK main thread
If you use the async/await keywords in your Gtk# app, things will now
work as expected with the GTK main thread. For example:
static async void DoWork () // called in the GTK main thread
{
// Do some stuff with the UI...
label.Text = "Starting Work";
// Run something asynchronously, UI is not frozen
int res = await DoLongOperation ();
// Do some more UI stuff, it'll run on the GTK main thread
label.Text = "Work done";
}
* gui-thread-check profiler module
This mono profiler module can be used to check if a GTK# application is
trying to invoke gtk or gdk methods from a thread which is not the main
GUI thread.
To use it, run your application with the command:
mono --profile=gui-thread-check yourapp.exe
If the profiler is properly installed, you'll see an output like this:
*** Running with gui-thread-check *** GUI THREAD INITIALIZED:
*** 2861676352
While the application is running, if the profiler detects a non-gui
thread invoking gtk methods, it will print a warning message together
with a stack trace. For example:
*** GTK CALL NOT IN GUI THREAD: Widget.gtk_widget_get_parent
Widget.get_Parent
SomeWidget.DoSomething
BackgroundWorker.OnDoWork
BackgroundWorker.ProcessWorker
* cairo: Rework the handling of native resources, to reduce memory leaks.
In general, the caller is responsible for disposing IDisposable objects
returned from any method.
* cairo: Add mechanism to debug missing Dispose calls, enabled by setting a
new MONO_CAIRO_DEBUG_DISPOSE environment variable.
* Provide and use an XML schema definition to validate GAPI XML files.
* Use generic collections in the generated code, in custom code and in the
generator itself.
* Improve handling of command-line parameters in the generator.
* glib: Install interfaces before they are initialized, to match the behavior
now required by glib 2.36 and above.
Changes
-------
* Generate all interfaces with the "I" prefix, to match .NET coding
convention. For example, Scrollable is now IScrollable.
* gdk: Remove AddClientMessageFilter method from Gdk.Display and Gdk.Global
* cairo: Add SetSourceColor method to Cairo.Context.
* gio: Correct return types for methods returning GList*, in various classes
* gio: Rename Content class to ContentType and adjust method names
* gio: Move the module-related static functions into the IOModule class,
adjust their names and fix the return types
* gio: Move the scheduler-related static functions into IOSchedulerJob
* gio: Move ErrorQuark method to GioGlobal
* gio: Create IOError class, with FromErrno and FromWin32Error methods
* gio: Rename the Dbus class to DBus, to have consistent capitalization
* gio: Rename all GDbus* properties to GDBus*, with correct capitalization
* gio: Rename the DBus.AddressGet* methods to DBus.Get*
* gio: Move static methods from Simple to SimpleAsyncResult class
* gio: Hide GioGlobal.RegistryBackendGetType method
* gio: Mark the ISeekable interface as consume-only
* gio: Correct GSettings.GetStrv and SetStrv values to be string[]
* gtk: Mark the whole Style class as obsolete
* gtk: Fix return types for several methods: GtkCellArea.GetFocusSiblings,
GtkMenu.GetForAttachWidget, GtkWindowGroup.ListWindows
* gtk: Make the Group property for Radio* widgets a properly typed array
* gtk: Fix return types for IterList* methods in WidgetPath
* gtk: Change the second parameter in AccelMap.LookupEntry to be an out param
Bug fixes
---------
* generator: Add validation check for return values that are arrays
* cairo: Fix rectangles returned by StrokeExtents and FillExtents methods
* cairo: Fix various text API calls to use the correct types
* glib: Fix crash when freeing lists with elements typed as interfaces
* gdk: Allow passing a null Gdk.Event
* gtk: Fix return type of IRecentChooser.GetUris to an array of strings
===============================================================================
Gtk# 2.99.0 - 2012-10-23
===============================================================================
Gtk# 2.99.0 is the first release of C# bindings for GTK 3.x. This is a beta
release, primarily intended for applications developers who want to start
porting their application to GTK 3.x.
This version of Gtk# provides bindings for the API exposed by these libraries:
* cairo 1.10.0
* glib 2.28.0
* pango 1.28.3
* atk 1.32.0
* gdk-pixbuf 2.22.1
* gtk+ 3.0.0
There is no API stability guarantee for now, but we will try to keep breaking
changes to a minimum.
This version of Gtk# can be installed in parallel with Gtk# 2.x, and should not
have any impact on applications using Gtk# 2.x.
Changes
-------
* All the new APIs provided by GTK 3.0 and friends are now available.
* Gtk# now provides bindings for cairo 1.10 in cairo-sharp.dll. In the future
we might go back to using the Mono.Cairo.dll binding included in Mono.
* Bindings for Gio are now included, instead of requiring a separate
gio-sharp package.
* GLib.Object now uses the Dispose pattern. Subclasses that need to do
resource clean-up should implement a Dispose(bool) method.
* Custom code is now provided solely using partial classes. The Foo.custom
files that were used before are now proper Foo.cs files.
* Various enhancements to the parser and the generator.
Bug fixes
---------
* generator: Properly handle boolean attributes when parsing the GAPI XML
* glib: do not call g_thread_ functions in GLib >= 2.31
* gtk: Fix resurrection cycles in container subclasses (bxc#3801)
Lots of other bug fixes are included, in particular all the relevant fixes from
the stable 2.12 branch.