Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD General Discussion
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4789
Location: Pensacola, FL, USA

PostPosted: Thu Aug 28, 2008 7:47 pm   

[2.36] Stay on Top error
 
Okay so my settings are set to stay on top, as are my help files.
Usually not a problem.
But today when i was making a new highlight trigger.. left the settings editor open to type the following at the command line.

#HELP %colorword

I was going for %colorname (i get it mixed up alot), but %colorword doesn't have a help file (since it doesn't exist), and after trying to find it, the help program throws out a notice box, where you have to click ok.
This normally wouldnt be a problem, except the notice box ended up hidden under my stay on top settings editor.

Since the notice is coded to NOT give up its focus (within CMUD), I could not click on the settings editor to minimize/close it to get at the notice box to click OK.

Resulted in CMUD still running fine, but being completely inaccessible to me. Had to kill with task manager.

Could the notice boxes be allowed to give up thier focus?
Maybe allow them to show up under the Window menu, if the get lost.
_________________
Discord server
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Thu Aug 28, 2008 11:09 pm   
 
This is a long-time bug in Windows. The Stay-on-top "feature" used in the Help window (and any other window that you turn it on) is not a standard Windows feature. Windows only has a single "z-order" list of windows and when you get a popup window (that tries to put itself on top), Windows gets confused because there are multiple "on top" windows and it doesn't properly pick which one should go on top. If this happens with any modal dialog (like an error message or any other modal popup) then you get the problem that you described.

Usually doing Alt-Tab and selecting another application and then doing Alt-Tab and coming back to CMUD will fix it, but not always. In those other cases, all you can do usually is press the ESC key which will usually cancel whatever error popup has the focus.

This doesn't just happen in CMUD. I've got many applications that this happens with. In fact, it happens in Vista itself! If you run an application that prompts for Admin elevation in Vista, but click on another application before the UAC popup, then the UAC popup goes being everything else. If you try to click back on the application that is trying to get elevated, you cannot control it because it's waiting for the UAC response. Fortunately in this case the UAC window has a task bar and you can Alt-Tab to it to answer it's question and continue. But most popups do not create a task bar icon so then this trick doesn't work.

This same problem has been in zMUD for more than 10 years. I've explained this problem numerous times in this forum (and the zMUD forum). I've spent inordinate amounts of time trying to fix it or somehow kludge Windows to fix it and have never found a good solution.

There is no way to force Windows to prevent error popups from taking the focus...that's the whole point of modal dialog boxes in Windows. There is no way to give them a task bar. If it's a window that CMUD has control over, then CMUD has a way to fix this in some cases. But when it's an error popup from Windows (like in your example), there doesn't seem to be any way to force Windows to properly put the error on top of all other windows.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Thu Aug 28, 2008 11:11 pm   
 
Btw, not to nag you specifically, but to remind everyone posting in the forums that an easy search of the forums will show *numerous* posts about this issue. I just typed "stay on top" into the search box in the upper-right and it found all sorts of past topics about this bug.

So remember, search *does* work sometimes and can be very useful.
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4789
Location: Pensacola, FL, USA

PostPosted: Fri Aug 29, 2008 12:38 am   
 
im not talking about the stay on top specifically, im asking about the popup error message that a #HELP with an invalid topic creates in conjuction with it.

Not aly is it stay on top, but it wont give up focus, that not giving up the focus is the issue, not the stay on top
_________________
Discord server
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Fri Aug 29, 2008 5:25 pm   
 
Did you read my post? I said:
Quote:
There is no way to force Windows to prevent error popups from taking the focus...that's the whole point of modal dialog boxes in Windows. There is no way to give them a task bar. If it's a window that CMUD has control over, then CMUD has a way to fix this in some cases. But when it's an error popup from Windows (like in your example), there doesn't seem to be any way to force Windows to properly put the error on top of all other windows.

ALL error popups in Windows are modal dialogs (which means they take the focus and won't give it up). There is no way to change this in Windows.

The only solution to this on your computer is to turn off the Stay On Top option for your Help window, Settings Editor, or other windows. Or, like I already said above, just press the ESC key when this happens to get rid of the error popup.
Reply with quote
Anaristos
Sorcerer


Joined: 17 Jul 2007
Posts: 821
Location: California

PostPosted: Sat Aug 30, 2008 5:52 pm   
 
That problem occurs with any modal dialog box, AFAIK. If, for instance, you try to create a log file and the file dialog box appears and you move away from CMUD, when you return, the box will be "beneath" the CMUD window and, yes, TASK MANAGER time. Btw, I just tried it to make sure I was giving a good example, and voila, I have to go kill CMUD.
_________________
Sic itur ad astra.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: Sun Aug 31, 2008 5:34 pm   
 
Yes, as I said, any dialog that is part of Windows and not something created specifically for CMUD will have this problem. This means any Windows error popup, or any built-in Windows dialog, such as any of the File/Open or File/Save dialogs. As long as CMUD has control over the window (like opening the Package Editor window), then I can do stuff to fix the z-order of the stay-on-top windows. But as soon as Windows opens it's own dialogs, there isn't any way for me to handle the z-order anymore. Windows itself tries to do it and that's where the bug comes in.

And like I said, even for the File/Open dialogs, you can just press ESC to cancel them. You don't need to always kill CMUD with the task manager.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD General Discussion All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net