Added minimal support for floating windows.
diff --git a/Mac/Lib/FrameWork.py b/Mac/Lib/FrameWork.py
index 82017f1..b3bf55f 100644
--- a/Mac/Lib/FrameWork.py
+++ b/Mac/Lib/FrameWork.py
@@ -27,6 +27,11 @@
 
 import EasyDialogs
 
+try:
+	MyFrontWindow = FrontNonFloatingWindow
+except NameError:
+	MyFrontWindow = FrontWindow
+
 kHighLevelEvent = 23	# Don't know what header file this should come from
 SCROLLBARWIDTH = 16		# Again, not a clue...
 
@@ -348,7 +353,7 @@
 				return
 		else:
 			# See whether the front window wants it
-			w = FrontWindow()
+			w = MyFrontWindow()
 			if w and self._windows.has_key(w):
 				window = self._windows[w]
 				try:
@@ -393,7 +398,7 @@
 	
 	def do_suspendresume(self, event):
 		(what, message, when, where, modifiers) = event
-		wid = FrontWindow()
+		wid = MyFrontWindow()
 		if wid and self._windows.has_key(wid):
 			window = self._windows[wid]
 			window.do_activate(message & 1, event)
@@ -497,7 +502,7 @@
 			for i in range(len(menu.items)):
 				label, shortcut, callback, kind = menu.items[i]
 				if type(callback) == types.StringType:
-					wid = Win.FrontWindow()
+					wid = MyFrontWindow()
 					if wid and self.parent._windows.has_key(wid):
 						window = self.parent._windows[wid]
 						if hasattr(window, "domenu_" + callback):
@@ -589,7 +594,7 @@
 				menuhandler = callback
 			else: 
 				# callback is string
-				wid = Win.FrontWindow()
+				wid = MyFrontWindow()
 				if wid and self.bar.parent._windows.has_key(wid):
 					window = self.bar.parent._windows[wid]
 					if hasattr(window, "domenu_" + callback):
@@ -634,7 +639,7 @@
 		id = (reply & 0xffff0000) >> 16
 		item = reply & 0xffff
 		if not window:
-			wid = Win.FrontWindow()
+			wid = MyFrontWindow()
 			try:
 				window = self.bar.parent._windows[wid]
 			except:
@@ -797,7 +802,7 @@
 		# If we're not frontmost, select ourselves and wait for
 		# the activate event.
 		#
-		if FrontWindow() <> window:
+		if MyFrontWindow() <> window:
 			window.SelectWindow()
 			return
 		# We are. Handle the event.
@@ -846,7 +851,7 @@
 		if DEBUG: print "control hit in", window, "on", control, "; pcode =", pcode
 
 	def do_inContent(self, partcode, window, event):
-		if FrontWindow() <> window:
+		if MyFrontWindow() <> window:
 			window.SelectWindow()
 			return
 		(what, message, when, where, modifiers) = event
diff --git a/Mac/Tools/IDE/PyEdit.py b/Mac/Tools/IDE/PyEdit.py
index 2117fc4..fcbdc09 100644
--- a/Mac/Tools/IDE/PyEdit.py
+++ b/Mac/Tools/IDE/PyEdit.py
@@ -17,6 +17,12 @@
 import marshal
 import re
 
+if hasattr(Win, "FrontNonFloatingWindow"):
+	MyFrontWindow = Win.FrontNonFloatingWindow
+else:
+	MyFrontWindow = Win.FrontWindow
+
+
 try:
 	import Wthreading
 except ImportError:
@@ -1189,7 +1195,7 @@
 			return string.join(string.split(modname, '.'), '_')
 
 def findeditor(topwindow, fromtop = 0):
-	wid = Win.FrontWindow()
+	wid = MyFrontWindow()
 	if not fromtop:
 		if topwindow.w and wid == topwindow.w.wid:
 			wid = topwindow.w.wid.GetNextWindow()
diff --git a/Mac/Tools/IDE/Wapplication.py b/Mac/Tools/IDE/Wapplication.py
index 40eb0c6..fdcd9fb 100644
--- a/Mac/Tools/IDE/Wapplication.py
+++ b/Mac/Tools/IDE/Wapplication.py
@@ -6,9 +6,14 @@
 from Carbon import Events
 import traceback
 from types import *
-
 from Carbon import Menu; MenuToolbox = Menu; del Menu
 
+if hasattr(Win, "FrontNonFloatingWindow"):
+	MyFrontWindow = Win.FrontNonFloatingWindow
+else:
+	MyFrontWindow = Win.FrontWindow
+
+
 KILLUNKNOWNWINDOWS = 0  # Set to 0 for debugging.
 
 class Application(FrameWork.Application):
@@ -115,7 +120,7 @@
 					break
 	
 	def do_frontWindowMethod(self, attr, *args):
-		wid = Win.FrontWindow()
+		wid = MyFrontWindow()
 		if wid and self._windows.has_key(wid):
 			window = self._windows[wid]
 			if hasattr(window, attr):
@@ -146,7 +151,7 @@
 		if keycode in self.fkeymaps.keys():		# JJS
 			ch = self.fkeymaps[keycode]
 			modifiers = modifiers | FrameWork.cmdKey
-		wid = Win.FrontWindow()
+		wid = MyFrontWindow()
 		if modifiers & FrameWork.cmdKey and not modifiers & FrameWork.shiftKey:
 			if wid and self._windows.has_key(wid):
 				self.checkmenus(self._windows[wid])
@@ -175,7 +180,7 @@
 		Qd.InitCursor()
 		(what, message, when, where, modifiers) = event
 		self.checkopenwindowsmenu()
-		wid = Win.FrontWindow()
+		wid = MyFrontWindow()
 		if wid and self._windows.has_key(wid):
 			self.checkmenus(self._windows[wid])
 		else:
@@ -209,7 +214,7 @@
 	def checkopenwindowsmenu(self):
 		if self._openwindowscheckmark:
 			self.openwindowsmenu.menu.CheckMenuItem(self._openwindowscheckmark, 0)
-		window = Win.FrontWindow()
+		window = MyFrontWindow()
 		if window:
 			for item, wid in self._openwindows.items():
 				if wid == window:
@@ -441,7 +446,7 @@
 	
 	def _getmenuhandler(self, callback):
 		menuhandler = None
-		wid = Win.FrontWindow()
+		wid = MyFrontWindow()
 		if wid and self.bar.parent._windows.has_key(wid):
 			window = self.bar.parent._windows[wid]
 			if hasattr(window, "domenu_" + callback):
diff --git a/Mac/Tools/IDE/Wwindows.py b/Mac/Tools/IDE/Wwindows.py
index f0ac92b..653499b 100644
--- a/Mac/Tools/IDE/Wwindows.py
+++ b/Mac/Tools/IDE/Wwindows.py
@@ -7,6 +7,11 @@
 import traceback
 from types import InstanceType, StringType
 
+if hasattr(Win, "FrontNonFloatingWindow"):
+	MyFrontWindow = Win.FrontNonFloatingWindow
+else:
+	MyFrontWindow = Win.FrontWindow
+
 
 class Window(FrameWork.Window, Wbase.SelectableWidget):
 	
@@ -488,9 +493,9 @@
 	
 	def do_key(self, event):
 		(what, message, when, where, modifiers) = event
-		w = Win.FrontWindow()
-		if w <> self.wid:
-			return
+		#w = Win.FrontWindow()
+		#if w <> self.wid:
+		#	return
 		c = chr(message & Events.charCodeMask)
 		if modifiers & Events.cmdKey:
 			self.app.checkmenus(self)
@@ -552,7 +557,7 @@
 		raise TypeError, 'string expected'
 	import W
 	app = W.getapplication()
-	wid = Win.FrontWindow()
+	wid = MyFrontWindow()
 	if wid and app._windows.has_key(wid):
 		window = app._windows[wid]
 		if hasattr(window, "insert"):