Main window goes behind all windows (V1.45 Win)
Archives Forums/MaxGUI Bug Reports/Main window goes behind all windows (V1.45 Win)| 
 | ||
| Hello! When I open a window inside a window and then exit it, the main window goes behind all windows which is annoying. I am almost sure it is a bug. Here it is the code: 
	Import MaxGui.Drivers
	'open a window
	Global window:TGadget = CreateWindow( "ZX Life Shield Professional", 100, 100, 640, 480, Null, WINDOW_TITLEBAR|WINDOW_RESIZABLE|WINDOW_MENU|WINDOW_CLIENTCOORDS|WINDOW_CENTER)
	SetMaxWindowSize(window:TGadget, 640, 480)
	SetMinWindowSize(window:TGadget, 640, 480)
	LoadGuiFont:TGuiFont("verdana",13,bold=False,italic=False,underline=False,strikethrough=False)
	SetGadgetPixmap window:TGadget, image_appicon
	' Open and hide window of WORD SPLIT
	Global window_split_word:TGadget = CreateWindow( "WORD Split", 100, 100, 200+100-10-10, 200-30-40-10-5-5, Null, WINDOW_TITLEBAR|WINDOW_CLIENTCOORDS|WINDOW_HIDDEN|WINDOW_CENTER)
	LoadGuiFont:TGuiFont("verdana",13,bold=False,italic=False,underline=False,strikethrough=False)
	SetGadgetPixmap window_split_word:TGadget, image_appicon
	CreateLabel("Which value to split (0-65535)?",20,20-5-2,240,16+4,window_split_word)
	Global name_split_word=CreateTextField:TGadget(20,20-5-2+20,140-10,16+4,window_split_word)
	Global okay_button_split_word:TGadget=CreateButton("OK",20,20-5-2+20+20+10,40-3+15,16+4,window_split_word,BUTTON_OK)
	Global cancel_button_split_word:TGadget=CreateButton("Cancel",20+50+10,20-5-2+20+20+10,40-3+15,16+4,window_split_word,BUTTON_CANCEL)
	ActivateWindow window
	' Show window of WORD SPLIT
	DisableGadget window
	ShowGadget window_split_word
	ActivateGadget name_split_word
	split_word()
	HideGadget window_split_word
	EnableGadget window
	' Wait for a key and then exit
	Print "Press ESCAPE to exit"
	Repeat
	Until KeyDown(KEY_ESCAPE)
	End
	
Function split_word()
	Repeat
		WaitEvent()
		t = EventID()
		' CLOSE WINDOW
		If t = EVENT_WINDOWCLOSE
			Return
		EndIf
		' CANCEL
		If EventSource()=cancel_button_split_word
			Return
		EndIf
		' OKAY
		If EventSource()=okay_button_split_word
			flag=0
			If Len(GadgetText(name_split_word))=0
				AppTitle="Warning"
				Notify "Value missing!", True
				flag=1
			EndIf
			If flag=0
				v=Int(GadgetText(name_split_word))
				If v<0 Or v>65535
					AppTitle="Warning"
					Notify "Value out of range!", True
					flag=1
				EndIf
			EndIf
			If flag=0
				v1=Int(v/256)
				v2=v-256*Int(v/256)
				Print "WORD "+String(v)+" in the ZX Spectrum is ("+String(v2)+","+String(v1)+")"
				Return
				flag=1
			EndIf
		EndIf
	Forever
End Function
Thanks! Kind regards, >Marco A.G.Pinto -------------------- | 
| 
 | ||
| Here you go: You do kill the focus of the mainwindow and enabling a gadget does not give focus again. | 
| 
 | ||
| Thanks! I will try it in the morning. It is 1am and I am dead tired. Kind regards, >Marco A.G.Pinto -------------------- | 
| 
 | ||
| @jsp Sorry to bother again. I tried the code you suggested and my main window still goes behind windows on the desktop. I am using V1.45 on Windows 7 x64. Thanks! Kind regards, >Marco A.G.Pinto -------------------- | 
| 
 | ||
| @jsp I was able to fix the bug by placing inside the function just before the RETURNs: EnableGadget window ActivateGadget window ActivateWindow window But, why doesn't it work in the main body of my utility? It is strange... Kind regards, >Marco A.G.Pinto -------------------- | 
| 
 | ||
| Did you change your escape code to the one I have provided in my example? | 
| 
 | ||
| Buaaaaaaaaaaaaaaa.... I don't know about the escape code. But I found that the workaround I mentioned above does what I wanted. Thanks! Kind regards, |