mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2024-12-23 16:55:37 +00:00
9ff7ec8b2c
GObject upstream has started disabling support for installing interfaces in GTypes after they have already been initialized (class_init) [1], so we need to add GInterfaces a bit earlier (*before* class_init starts). As GLib.Object.OverrideProperty() cannot to be called before class_init (because it receives a GObjectClass, not a GType) or after (because otherwise class_init would complain about properties of an interface not being defined), then we need to call it during class_init. [1] http://bugzilla.gnome.org/687659 A good side-effect of this fix is that we no longer use the hacky uint field 'idx' to track the properties count for each class; now it gets moved to the ClassInitializer class, and thus can be non-static, which makes a bit more sense (we leave the old OverrideProperty overload for backwards compatibility). Simplest way to test this is launching the sample/treemodeldemo.exe and sample/custom-scrollable.exe in Ubuntu 13.04 beta (which has GLib 2.36). Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=11510 |
||
---|---|---|
atk | ||
audit | ||
cairo | ||
doc | ||
gdk | ||
generator | ||
gio | ||
glib | ||
gtk | ||
gtkdotnet | ||
pango | ||
parser | ||
sample | ||
sources | ||
.gitignore | ||
AssemblyInfo.cs.in | ||
AUTHORS | ||
autogen.sh | ||
ChangeLog.old | ||
configure.ac | ||
COPYING | ||
gapi.xsd | ||
gtk-sharp-2.0-dev.wxs.in | ||
gtk-sharp-2.0-lib.wxs.in | ||
gtk-sharp.sln | ||
gtk-sharp.snk | ||
HACKING | ||
Makefile.am | ||
Makefile.include | ||
NEWS | ||
policy.config.in | ||
README | ||
README.generator | ||
TODO |
The Gtk# website can be found at: http://www.mono-project.com/GtkSharp Gtk# is a .NET language binding for the GTK+ toolkit and assorted GNOME libraries. Gtk# is free software, licensed under the GNU LGPL. Building & Installing Gtk#: --------------------------- Install the gtk-3 development headers first. On Debian, this can be done using: apt-get install libgtk-3-dev The build is the traditional: ./configure make make install You may want to consider using configure's prefix option to install Gtk# using the same prefix as Mono. That way all of your .NET assemblies get placed in the same place, and you don't need to do any extra "configuring" to make it so mono (and mint) can find your assemblies. In other words, doing something like: ./configure --prefix=/the/path/that/was/used/for/mono make make install (Of course, replace "/the/path/that/was/used/for/mono" with whatever path which was used for Mono. This might have been "/usr", "/usr/local", or something similar.) If you are compiling from GIT, you will need libtool and the auto* tools and will need to replace the configure above with autogen.sh. The gui-thread-check profiler module. ------------------------------------- Since version 3 of gtk# a profiler called "gui-thread-check" is included as part of the install for debugging purposes. (It's located in the subfolder gtk/gui-thread-check .) This 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 SourceEditorWidget.SetLastActiveEditor SourceEditorWidget.get_TextEditor SourceEditorWidget.get_Document SourceEditorWidget.HandleParseInformationUpdaterWorkerThreadDoWork BackgroundWorker.OnDoWork BackgroundWorker.ProcessWorker Discussion & Support: --------------------- A mailing list for Gtk# discussion is available. You can subscribe to the mailing list by visiting: http://lists.ximian.com/mailman/listinfo/gtk-sharp-list And following the instructions (on that page) to subscribe. Messages are posted on this mailing list by sending them to: gtk-sharp-list@ximian.com (The mailing list requires you to subscribe in order to post messages.) An archive of this mailing list can be found at: http://lists.ximian.com/archives/public/gtk-sharp-list/ Also, people can get help with and discuss Gtk# on IRC via the #gtk# or #mono channels on the irc.gnome.org IRC server. People looking for general help with C# should visit the #c# channel on irc.freenode.net IRC server. Developers: ----------- For developers wishing to "get started" with Gtk#, they are encouraged to read the Mono Hand Book: http://www.mono-project.com/Monkeyguide Hackers: -------- For those who wish to help with the development of Gtk#, they should read the file named: HACKING. Also, anyone wishing to hack Gtk# is encouraged to join the Gtk# mailing list. And to visit the #gtk# IRC channel (on irc.gnome.org).