I am pretty sure this issue has been discussed before, but I cannot
locate the thread. Question: how do you get rid of orphan windows when they are no longer responsive to the user (either via mouse or keyboard) AND they don't show up in the Process Monitor? Thanks for the help. Cheers, S. __________________________________________________ Stefano Franchi Department of Philosophy Ph: (64) 9 373-7599 x83940 University Of Auckland Fax: (64) 9 373-8768 Private Bag 92019 [hidden email] Auckland New Zealand __________________________________________________ Stefano Franchi Department of Philosophy Ph: (64) 9 373-7599 x83940 University Of Auckland Fax: (64) 9 373-8768 Private Bag 92019 [hidden email] Auckland New Zealand |
inspect -> ApplicationDialogController allInstances.
Next, inspect the instance that you wish to kill. Close the original inspector. In the second inspector, send: self locked: true. self closeAndUnschedule. Hope this helps. Mark
|
In reply to this post by stefano-franchi
From: Stefano Franchi [mailto:[hidden email]]
> Question: how do you get rid of orphan windows when they are no longer > responsive to the user (either via mouse or keyboard) AND they don't > show up in the Process Monitor? There are plenty of ways, but the following is pretty effective: search for them with ScheduledWindow allGeneralInstances, and send their controllers #closeAndUnschedule. If there are windows that are no longer visible but do not get garbage collected, try the following: "Get rid of windows that are hanging around" WindowManager purgeDeadWindows. WindowManager allInstances do: [:wm | wm purgeInvalidWindows]. WindowManager restoreAll. ScheduledWindow purgeInvalidWindows. HTH, Steve |
In reply to this post by stefano-franchi
Mark's answer is useful assuming the windows in questions are dialogs
(they frequently are). IIRC, you actually have to send "self locked: false", not "self locked: true". HTH, Steve > -----Original Message----- > From: markPetersen [mailto:[hidden email]] > Sent: 28. maaliskuuta 2007 21:33 > To: [hidden email] > Subject: Re: Orphan windows > > > inspect -> ApplicationDialogController allInstances. > > Next, inspect the instance that you wish to kill. > > Close the original inspector. > > In the second inspector, send: > > self locked: true. > self closeAndUnschedule. > > Hope this helps. > Mark > > > Stefano Franchi wrote: > > > > I am pretty sure this issue has been discussed before, but I cannot > > locate the thread. > > > > Question: how do you get rid of orphan windows when they are no > > responsive to the user (either via mouse or keyboard) AND they don't > > show up in the Process Monitor? > > > > Thanks for the help. > > > > Cheers, > > > > S. > > > > > > > > > > __________________________________________________ > > Stefano Franchi > > Department of Philosophy Ph: (64) 9 373-7599 > > University Of Auckland Fax: (64) 9 373-8768 > > Private Bag 92019 [hidden email] > > Auckland > > New Zealand > > > > > > __________________________________________________ > > Stefano Franchi > > Department of Philosophy Ph: (64) 9 373-7599 x83940 > > University Of Auckland Fax: (64) 9 373-8768 > > Private Bag 92019 [hidden email] > > Auckland > > New Zealand > > > > > > > > -- > View this message in context: http://www.nabble.com/Orphan-windows- > tf3481132.html#a9718401 > Sent from the VisualWorks mailing list archive at Nabble.com. |
In reply to this post by Steven Kelly
Another good way to find all of those dead windows:
Screen default stackedWindows - it will give all Types of windows including menus and other transients HTH --Mark Steven Kelly wrote: > From: Stefano Franchi [mailto:[hidden email]] > >>Question: how do you get rid of orphan windows when they are no longer >>responsive to the user (either via mouse or keyboard) AND they don't >>show up in the Process Monitor? > > > There are plenty of ways, but the following is pretty effective: search > for them with ScheduledWindow allGeneralInstances, and send their > controllers #closeAndUnschedule. > > If there are windows that are no longer visible but do not get garbage > collected, try the following: > > "Get rid of windows that are hanging around" > WindowManager purgeDeadWindows. > WindowManager allInstances do: [:wm | wm purgeInvalidWindows]. > WindowManager restoreAll. > ScheduledWindow purgeInvalidWindows. > > HTH, > Steve > > > |
Maybe Cincom could investigate this and make a menu option to do whatever works?
Runar Jordahl |
In reply to this post by Steven Kelly
I had gotten this info from CinCom SupportWeb a while back and just copy/pasted it here. I've used it myself on several occasions. Steve, interesting that you suggest "self locked: false", which seems logical, but I think I've only used "self locked: true". Now you make me wonder. At any rate, better solutions seem to be available for other windows as well.
Mark
|
In reply to this post by stefano-franchi
Yeah Gidday!
The only way to kill these bastards (so the Australians don't have to ask where the "Bloody Hell They" are) without ya gumboots, is reboot yaur image mate. I fiind that when eever I ruun, integrityCheck self isDevelopment ifTrue: [VisualLauncher raiseOrOpen]. self sourceCodeIntegrityCheck; cleanImage; log: 'Checking structure...'; treeStructureCheck; log: 'Checking duplicate keys...'; duplicateKeysCheck; log: 'Checking identifiers...'; identifiersCheck; log: 'Checking orphans...'; orphansCheck. self log: 'Integrity checking completed successfully.'. self warn: 'System has passed integrity check.' Tha only way, in spite of the cleany, cleany image routeine... cleanImage "When all else fails need to zap the windows... ApplicationWindow allInstances do: [: window | window controller closeAndUnschedule]. " 3 timesRepeat: [ScheduledWindow purgeInvalidWindows. UI.WindowManager purgeDeadWindows; restoreAll. "Remove references to TextView which holds onto InspectorShells" Tools.Trippy.InspectorShell.SharedTextHolder breakDependents. Trippy.Clipboard default empty. TransientWindow initialize. "flush menu cache" "CurrentWindow appeared to be holding onto reference?" Parcel flushClassParcelMap; computeParcelMap. self globalGarbageCollect] is to do all of the above and reboot yah image, mate. FKW. Fred DAG (Directed Acyclic Graph) PS Yeah Right! PSS :) >-----Original Message----- >From: Stefano Franchi [mailto:[hidden email]] >Sent: 29 March 2007 3:39 a.m. >To: 'vwnc' >Cc: Stefano Franchi >Subject: Orphan windows > >I am pretty sure this issue has been discussed before, but I cannot >locate the thread. > >Question: how do you get rid of orphan windows when they are no longer >responsive to the user (either via mouse or keyboard) AND they don't >show up in the Process Monitor? > >Thanks for the help. > >Cheers, > >S. > > > > >__________________________________________________ >Stefano Franchi >Department of Philosophy Ph: (64) 9 373-7599 x83940 >University Of Auckland Fax: (64) 9 373-8768 >Private Bag 92019 [hidden email] >Auckland >New Zealand > > >__________________________________________________ >Stefano Franchi >Department of Philosophy Ph: (64) 9 373-7599 x83940 >University Of Auckland Fax: (64) 9 373-8768 >Private Bag 92019 [hidden email] >Auckland >New Zealand |
Free forum by Nabble | Edit this page |