kernel: Fix return of RecursionLock>>#critical:

In case the lock is not locked by the current process yet
>>#critical: will not return value of the block. This is
different to how Semaphore>>#critical: works. Fix it and
add a testcase for both cases.

2014-06-21  Holger Hans Peter Freyther  <holger@freyther.de>

	* kernel/RecursionLock.st: Return the result of >>#critical:

2014-06-21  Holger Hans Peter Freyther  <holger@freyther.de>

	* kernel/RecursionLockTests.st: Add test for RecursionLock
gtk: Prepare for GTK+ 3.0 by not using members directly

GTK+ 3.0 enabled G_SEAL which means direct member access is
not possible anymore. This means we should use the getters
and setters provided by GTK. The good thing is that we can
remove some of our custom getters/setters. In the case of
GtkAllocation the API works differently to what we had so
we need to add a compat call.
GtkPlacer is only used with Blox and I didn't attempt to
run the GTK+ version of it.

2014-05-26  Holger Hans Peter Freyther  <holger@freyther.de>

	* MoreFuncs.st: Remove GtkWidget>>#setFlags:,
	GtkWidget>>#unsetFlags:, GtkWidget>>#getFlags,
	GtkScrolledWindow>>#getHscrollbarVisible and
	GtkScrolledWindow>>#getVscrollbarVisible. Change the
	return type to double in GtkAdjustment>>#getUpper,
	GtkAdjustment>>#getLower and GtkAdjustment>>#getPageSize.
	Change GtkWidget>>#getAllocation to use >>#getAllocation:
	on GCed memory.
	* example_entry.st: Use the new setters in Gtk.
	* gst-gtk.c: Remove gstGtkGetFlags, gstGtkSetFlags,
	gstGtkUnsetFlags. gstGtkWidgetGetAllocation.
	Map gstGtkGetState, gstGtkGetWindow, gstGtkAdjustmentGetLower,
	gstGtkAdjustmentGetUpper, gstGtkAdjustmentGetPageSize,
	gstGtkDialogGetVBox and gstGtkDialogGetActionArea
	directly to GTK+.
	* placer.c: Modernize the GTK+ api usage
Revert "visualgst: Flush task queue when pressing "CTRL + .""

This reverts commit 44cd50ba385bf87fabd56927edce143eee2fc6dc. The
snooper code doesn't appear to work correctly and seems to deadlock
when a message is being added to the transcript.

(ip 6)<unwind> BlockClosure>>#ensure:
(ip 6)[] in RecursionLock>>#critical:
(ip 30)[] in Semaphore>>#critical:
(ip 6)<unwind> BlockClosure>>#ensure:
(ip 8)Semaphore>>#critical:
(ip 14)RecursionLock>>#critical:
(ip 6)TextCollector>>#next:putAll:startingAt:
(ip 14)String(SequenceableCollection)>>#nextPutAllOn:
(ip 8)TextCollector(Stream)>>#nextPutAll:
(ip 12)SmallInteger(Integer)>>#displayOn:
(ip 8)TextCollector(Stream)>>#display:
(ip 100)MethodContext>>#printOn:line:
(ip 8)MethodContext>>#printOn:
(ip 30)MethodContext(ContextPart)>>#backtraceOn:
(ip 8)MethodContext(ContextPart)>>#backtrace
(ip 6)[] in KeySnooper>>#initialize
(ip 16)WrongClass(Exception)>>#activateHandler:
(ip 24)WrongClass(Exception)>>#signal
(ip 40)WrongClass class>>#signalOn:mustBe:
(ip 24)WrongClass class>>#signalOn:mustBe:
(ip 10)GdkEventKey(CObject)>>#address:
(ip 8)GdkEventKey class(CObject class)>>#address:
(ip 8)[] in KeySnooper>>#initialize
(ip 12)<unwind> BlockClosure>>#on:do:
(ip 10)[] in KeySnooper>>#initialize
(ip 0)<bottom>

2014-07-20  Holger Hand Peter Freyther  <holger@freyther.de>

	* Misc/KeySnooper.st: Remove the file.
	* Misc/TaskQueue.st: Remove the >>#flush selector.
	* GtkLauncher.st: Remove invocation of KeySnooper.
gst-sunit: Spawn the event loop last to avoid crashes

It was possible that while we started to show the VisualGST
window GTK+ would call back into Smalltalk and we would run
the Glib dispatch while showing the window. This lead to a
timer expiring on a non-fully realized window and leading to
a crash inside GTK+/X11.

Run the event loop after we have intitialized all of the
VisualGST code.

2014-07-20  Holger Hans Peter Freyther  <holger@freyther.de>

	* scripts/Test.st: Spawn the event loop last.