[Gtk-sharp-list] portability issues
Miguel de Icaza
Fri, 22 Oct 2004 12:30:10 -0400
> 1 - A simple Glade# app, built on Glade without any signals, besides
> delete_event, attached on a bunch of code who shows a Gtk.Window.
> Well, I've compiled it on Linux and tried to run it in Windows! After
> installing the combined package of Mono+Gtk-sharp i've runned it and
> everything went well, except the GtkToolItem and GtkToolButton widgets
> that weren't recognized. I'm using glade-2.6.2.
> My 1st question is: Are these widgets supported on Windows?
The issue here is that Gtk# is binding the older (and most commonly
available Gtk+). And recent Glade versions gratuitously "upgrade" your
Gtk 2.2 project to 2.4 and there is no way that am aware of turning this
Am not sure if there is a fix for this, other than "lets move to
2.4" (which we are going to do).
> All the code is running fine, since I have my own debug on each Thread
> and it's debuggin right. So I close my app, and try to run it again!
> SURPRISE! It works very well! The ProgressBar is updated and all the
> widgets works ...
That is one way of doing threads. The recommended way is to use
Basically threads and GUIs do not mix, and you should only ever do Gtk#
calls from one thread. The Enter/Leave stuff sadly will take the lock
for too long, so your best answer really is Thread.Notify.
> On Windows, I've compiled* it tried to run it and it works, but my
> Threads don't debug :(. It creates the wndSplash and then wndMain, but
> all of them without widgets and the program does not respond.
You likely have a deadlock and you are not letting Gtk process events.
Solution: dont use Gdk.Enter/Leave thread stuff. Use ThreadNotify
> My 3rd question: Any clue about this?
> *compiled: mcs -pkg:gtk-sharp wndSplash.cs wndMain.cs
Dont know what that is.