![]() ![]() In this case TotalFinder is in dual mode. And one TotalFinder window with tabs, window framing and gray background. In AltTab UI you see two Finder windows without frames. Please look at this more explanatory screenshot: I lay original Finder window on top of background "framing" TotalFinder window to achieve tabbed interface. ![]() Thanks for the effort in making a test app and the video. var_38 appears to be a plain C array of CG window IDs (don't forget to free it) and var_2C appears to be the count. ![]() So in theory you should be able to use CGSCopyWindowGroup with magic "movementGroup" to detect parent-child relationships. I looked at the disassembly of AppKit framework and they are doing something like this. If CGSGetParentWindowList is not helpful. (I guess you don't want to implement this functionality by hand, I mean by taking screenshots of all windows in the parent-child hierarchy, consulting CG private APIs for their relative positions and compositing them by hand). I know that may be slower than your current method but this method should give you a composite screenshot of the window and all its child windows recursively. when taking a screenshot of a window which has some child windows you probably have to fall back to CGWindowListCreateImage.in user selection do not show windows which have some parent window ( CGSGetParentWindowList should give you answer wheter particular window is a child window or not). ![]() So from what I saw in your code you need to modify two things: and maybe some others, I think CGSGetParentWindowList looks like interesting method However, it is important to note that this is then an issue that the developer(s) of said application should consider a bug in their application.Įdit: There are also private APIs to detect if a window has a parent-window, which I assume would be the case for this particular TotalFinder window, by looking at the screenshot in the first post.Įxtern CGError CGSAddWindowToWindowMovementGroup(const CGSConnection cid, CGSWindow wid, CGSWindowMovementGroup group) Įxtern CGError CGSRemoveWindowFromWindowMovementGroup(const CGSConnection cid,ĬGSWindow wid, CGSWindowMovementGroup group) Of course this has the inverse issue, where applications that report the wrong role by mistake is not classified correctly as a real window when it should be, and I have a system in place that will allow the user to specify these using various filters. In your case there might be other roles that should be considered valid windows, such as AXDialog etc. It’s not yet a full replacement of TotalFinder but it already has some of its essential features without compromising the System Integrity Protection (SIP) which, by the way, rang the death knell for TotalFinder.Windows on macOS should report a kAXWindowRole of AXWindow, and kAXWindowSubrole Then with the announced demise of TotalFinder on January 10, 2021, I started porting some of its features to FinderFix. What’s more, it relies on some very slow AppleScript calls to solve the task at hand.Īdditionally with M1 Apple silicon chips “on my door steps”, I felt the urge to write an alternative in pure modern and fast Swift in an M1 Universal Binary 2. It was showing its age with a 32-bit PowerPC universal binary and its use of quite a lot of private APIs. However, what worried me about it was that there had been no new releases since 2016. It was rudimentary, had its own warts, like having to hide it on each computer restart, but as far as resizing and setting Finder’s position was involved it just worked. The only working solution until now was FinderMinder. How do I make this thing stay the way I want it to? I don’t mind playing around with system stuff or running scripts - so long as I only have to do it once only. It’s useless and very tedious and it really aggravates me. It just reverts back to its microscopic size the next time I open it. Why doesn’t Finder remember the damn window size and location? I keep reading crap about holding down Option key while dragging but that doesn’t work. If you look for an answer to “How do I get Finder to remember its size and position?” on the web, you find literally dozens of non-working answers. If after all those years of using your Mac you are still fighting with Finder to get it to behave as you wish, look no further, FinderFix will get it to open every new window in the exact same position and size you want it to. Give extra powers to your Finder windows! ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |