It is particularly noticeable when I display an image full screen in Preview, or when I am working on a photo in Photoshop (or Lightroom, Capture One, etc.). I can see 'ghostly' elements of a Safari window (e.g. address bar, Back button, etc.) at the top of the window, behind the image. Sometimes the 'ghost' window can also cause light patches to appear in other areas of the screen as well.
Stranger still, I took a screenshot of the problem, and it doesn't show up in the screenshot file! So, I am attaching photos taken with my phone. These show examples of an image in full screen in Preview and a Photoshop window. In all cases, there is no actual Safari window open behind them.
Every once in a while an application will "crash" or otherwise stop working, typically this is Brave, but not always. The problem is that when they stop working I'm left with a "ghost" window that lingers and cannot be interacted with. If I do a "Windows Key" + D it minimizes with all other active windows and comes back when I show the desktop again. It does not respond to clicks and cannot be removed. What I'm looking for is some command to reset whatever is causing that "ghost" app to persist.
I waited for it to happen again and tried xkill. Unfortunately the click goes right thru the visualization of the ghost window and targets plasma, thus killing it. Plasma then restarts itself and the ghost window remains. I also checked for any running brave tasks and nothing exists. It acts as if it's just a visual artifact.
I started researching the compositor and KDE Desktop Effects. As it turns out, it appears to be related to the "Translucency" Desktop Effect enabled within KDE. If I go in and disable Translucency within the Desktop Effects applet, the ghost window vanishes. I can then re-enable Translucency and it's gone for good. Very strange.
I'm running a script that opens a program with title 'Abc' and does stuff, waits for it to do stuff, and then closes and repeats. Every once in a while the program will freeze with no visible or differentiating text, and my built in time-out mechanism doesn't work (for some reason). I noticed that when the program freezes the Window Info tool shows that the title remains the same, and that the Class changes to 'Ghost'. Which seems reasonable.
So, why is the extra constraint actually making the condition easier to be met? I thought that the WinExist advanced options are supposed to be an AND condition, meaning the TITLE has to match AND the CLASS has to match.
It is associated with a process, the code you just gave is pretty much what I'm currently doing. What I need to know now is how to get WinExists() to wait until the window I'm specifying actually exists (both title and class). I have a feeling that WinExists("[TITLE:Abc;... is TRUE when it just sees a title of 'Abc'. I need it to wait until both the title is 'Abc' and the class is 'Ghost'.
This feature is called window ghosting. Basically what happens is if the window manager decides the window is hung, it will capture the contents of it's client area, and create a window on the screen with the class 'ghost', with the contents it was able to capture, and the window styles of the original window(in most cases, iirc). So the window you see on screen when the app is not responding is not actually the app's window, just a replacement that will hang around until the thread responsible for that window starts responding again. The menubar is gone because the fake window does not have a menu, just extra space for it which is painted white. A disabled menubar would probably cause support problems.
@monoceres: No, you missed the point. The Ghost class window belongs to the window manager, not the process that hung. There is likely a way to get the hung process ID, but it has nothing to do with the Ghost window.
You call the IsHungAppWindow function to determine if Microsoft Windows considers that a specified application is not responding. An application is considered to be not responding if it is not waiting for input, is not in startup processing, and has not called PeekMessage within the internal timeout period of 5 seconds.
This was a very good suggestion. It seems to have worked perfectly. In summary: instead of checking for the CLASS of a hung window to be 'Ghost', I should use the windows API to have it determine whether the window is actually hung. My side script can then kill the process.
It interferes especially when trying to type formulas. I cannot close it because it is not considered a file but the application. I have looked for personal.xlsb, which I don't have in any startup folder. I have turned on and off DDE. I have done a full scrape off and reinstall and the behavior continues.
The only work around that works is to open the laptop monitor so I can move it out of the way. However, it will continue to get in the way. If I reboot i can go a while without experiencing it, but it always comes back to haunt me.
However, it occurred to me that it was jumping to whatever monitior had the active window. I downloaded the new NVIDIA driver package - the big one, not the minor push updates - and haven't seen it since. That was only two days ago.
I am crossing my fingers, but I started to notice a 'flash' related to duplicating windows and viewing on different screens. I updated my NVIDIA driver to the new package - the full packages don't seem to come over push mechanisms. And I have not seen the problem in the days since I upgraded.
I've tried all the various "things to try" that many people have posted here and elsewhere . . . all to no avail. No matter what I tried, the 'ghost' was always there IF I opened Excel full-screen (i.e. maximized). If I had foresight of mind to close Excel non-maximized, then when I'd re-open it things were fine (no ghost).
BUT . . . . what DID work for me . . . was setting the properties for the Excel icon (on my Quick Launch Bar, would be same for your desktop app-launch icon) to "Run As Administrator" . . . see attached screen-shot.
When I hit different features, it seems that the pop-up window that is supposed to prompt you for using the feature pops open invisibly. I know that it is open because when I click anywhere it makes the ping sound that windows does when you do something wrong. The only way to exit the screen is to hit ESC. No amount of trickery can get it to open, it won't do it for me in new windows, no restarting or different file types etc etc etc. I've done a fully uninstall and reinstall as well.
So the issue is compounded first by the fact that I'm attempting to use the version that installs through the windows app store since it comes through our company firewall, so I can't just install the newest desktop version unfortunately.
I enabled tracking and ran some tests but no errors come up. I don't think it's technically flagging it as an error, since it seems to think the window is open when it opens, as it disables any clicking outside of the window.
I used the modified Info.plist-trick to create a bootable Windows 8 USB-drive and create a Bootcamp partition. After this was done, I tried to install Windows, but I ran into the problem of Windows not accepting the pre-made partition, so I deleted it and rebooted once again into the Windows installer to install it.
Next thing I did was try to run the Windows installer again, but from this point on, the installer would crash in a BSOD, almost instantly restarting my PC shortly after. I thought it had to be the disk0s4-partition that is causing all of this, so I made another effort deleting it - and I made it using the disk utility on my OS X. Having only one partition left, I tried rebooting, only to see that the "EFI boot" was still there. (note: this is not by USB-Drive, it has a hard-drive icon whereas the USB drive has a USB one)
I don't really know what to do from here to fix all this. I have no idea where this "EFI boot" is coming from (there is only one partition and a lot of unallocated space on my HD) and why my Windows installer is crashing.
You have successfully removed all windows partitions from your disk, but you have not yet removed all files added during your attempt to install windows. What is left are files in your EFI partition. The ghost is being caused by the file efi/boot/bootx64.efi stored in the EFI partition.
Generally the "modified Info.plist-trick" is just that. It is a trick. As far as I know, you can put the Windows installation files on the USB flash drive, but can not boot from this drive to install Windows. Generally, only the 2012 and newer models can boot the Windows installer from a USB port. If you succeeded, then your model must be the exception.
If you have an internal working optical drive, then this the preferred method to install Windows. If you need to buy a DVD, you are better off with a RW DVD. It will take longer to burn, but it is reusable. It is not sufficient to just burn the iso file to a DVD. You must burn the image stored in the iso file to the DVD.
There are two methods for installing operation systems on Macs. The first is the legacy BIOS/MBR method and the second is the EFI/GPT method. It is my understanding that the 2011 models are suppose to install Windows using the legacy BIOS/MBR method. From your post, I assume you were trying the EFI/GPT method.
You can choose which partition or media to boot from by holding down the alt/option key at startup. If a Windows installation DVD is in the Macs optical drive, you will get a DVD icon labeled "Windows". You can select this to install Windows using the BIOS/MBR method. There also may be a DVD icon labeled something like "EFI". You probably do not want to select this icon, since this will install using the EFI/GPT method.
A word of caution. If you using the BIOS/MBR method for Windows, you can not use any Windows software to change the disk partitioning. This must only be done from OS X. However, you can use Windows to format a partition.
Description of the issue:
Strange empty Brave windows spontaneously appear. They are visible only when using Mission Control in Mac OS X version 10.15.5. (See screenshots.) Clicking on one goes to a normal populated Brave window.