Skip to content

Detach closed Transfers window from shared transfer listeners - #18325

Closed
dkocher with Copilot wants to merge 2 commits into
masterfrom
copilot/invisible-transfer-window-issue
Closed

Detach closed Transfers window from shared transfer listeners#18325
dkocher with Copilot wants to merge 2 commits into
masterfrom
copilot/invisible-transfer-window-issue

Conversation

Copilot AI commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Closing the Transfers window on macOS could leave behind transparent window instances that still intercepted clicks. The leak was specific to the transfer window lifecycle: closed controllers remained subscribed to the shared transfer collection and continued to receive updates after teardown.

  • Transfer window lifecycle

    • keep TransferController collection listeners as fields instead of anonymous one-offs
    • unregister both the persistent reload listener and the temporary "collection loaded" listener during invalidate()
    • only register the temporary load listener while the collection is actually loading
  • Transfer row controller cleanup

    • give TransferTableDataSource an explicit collection listener lifecycle
    • unregister its transfer-removed listener during invalidate()
    • invalidate and clear cached ProgressController instances on teardown so closed windows no longer retain row controllers
  • Regression coverage

    • add a focused test that verifies TransferController and TransferTableDataSource remove their TransferCollection listeners when invalidated
@Override
public void invalidate() {
    collection.removeListener(collectionLoadedListener);
    collection.removeListener(collectionListener);
    transferTableModel.invalidate();
    super.invalidate();
}

Copilot AI review requested due to automatic review settings July 25, 2026 11:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because there is no eligible user to bill. To allow Copilot reviews on bot-authored pull requests, enable direct organization billing in your organization's Copilot settings.

@cla-assistant

cla-assistant Bot commented Jul 25, 2026

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

1 similar comment
@cla-assistant

cla-assistant Bot commented Jul 25, 2026

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Copilot AI review requested due to automatic review settings July 25, 2026 11:24

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because there is no eligible user to bill. To allow Copilot reviews on bot-authored pull requests, enable direct organization billing in your organization's Copilot settings.

Copilot AI changed the title [WIP] Fix invisible transfer windows on macOS after closing Detach closed Transfers window from shared transfer listeners Jul 25, 2026
Copilot AI requested a review from dkocher July 25, 2026 11:24
@dkocher dkocher closed this Sep 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invisible transfer windows remain on macOS after closing the Transfer window

3 participants