Conversation
2a8768e to
e3e3906
Compare
MacOS applications like Terminal and Finder can create new tabs within the same window. To Hammerspoon each tab looks like an independent window, with a unique frame. A window with no tabs will have a tabCount of 0. A new tab for an existing window will have a tabCount equal to the total number of tabs (eg. 2 for the first new tab). The tabCount for existing tabs will be set back to 0. This means we need to capture and track each new tab when it is created. We cannot identify a tab later. Setting the frame for a tab that is not the top active tab has no effect. There is currently no good way to tell which tab of a window is on top (but not focused). For now, set the frame of the first tab for each window and call raise() to bring the tab to the front before setting the frame. This will switch the tab to the first one everytime the space is re-tiled (eg on window move). Change the window_list to hold a list of tabs for each row, of each column, of each space. Windows with no tabs will be a list of 1. Tabs will have their own key in the index_table. This means that multiple index_table entries can now have the same space/column/row index values. Create some new helper functions: getFocusedWindow(), getRow(), trace().
e3e3906 to
a2e985c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A window with no tabs will have a tabCount of 0. A new tab for an existing window will have a tabCount equal to the total number of tabs (eg. 2 for the first new tab). The tabCount for existing tabs will be set back to 0. This means we need to capture and track each new tab when it is created. We cannot identify a tab later.
Create a getFocusedWindow() helper function.