Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[macOS] Application-level hide/show (NSApp hide/unhide)

Aberta
#59 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
52/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
cpp, macos, objective-c
Domínio
api, desktop

Direção de pesquisa

Start with src/platform/macos/window_macos.mm and the existing Window::Hide() behavior, then trace the Application API entry point. Check the macOS hide-twice and global-shortcut cases described in the issue; done means Application::Hide(), Show(), and IsHidden() expose the requested NSApp behavior without breaking window reopening or shortcut handling.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement

On macOS, Window::Hide() uses orderOut: (src/platform/macos/window_macos.mm). That's right for hiding one window, but the application stays "shown" as far as the system is concerned. The Dock menu keeps offering "Hide", clicking the Dock icon doesn't bring the window back, and the previously active app doesn't get focus back.

Apps that live in the tray or menu bar usually want app-level hiding. Proposal: add Application::Hide() / Application::Show() (and IsHidden()), backed by [NSApp hide:] / [NSApp unhide:] on macOS. Also check the hide-twice case on macOS 14+, and hiding while a global shortcut handler is running.

Background, from window_manager (moving onto nativeapi in 0.6.0):

  • leanflutter/window_manager#431: the Dock menu doesn't understand hide()
  • leanflutter/window_manager#530: a PR that switched hide() to NSApp.hide(nil)
  • possibly related: leanflutter/window_manager#501 (window can't be reopened after hiding twice on macOS 14+), #543 (crash on hide() with hotkey_manager)
Linguagem predominante
C++
Estrelas
34
Forks
7
Merge médio
3d 1h
PRs com merge (30d)
1

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de libnativeapi/nativeapi

Todas as issues de libnativeapi/nativeapi

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.