Introdução
Após a experiência com o kernel Linux, a segunda contribuição da disciplina nos levou a um projeto mais acessível: o KDE, especificamente o visualizador Okular. Escolhemos um bug com tag "junior-job" que parecia simples: no modo de navegação, o cursor não mudava para "mão fechada" ao pressionar o botão esquerdo – ficava com um atraso e mudava para "redimensionar".
O que parecia trivial se tornou um problema sobre diferenças entre distribuições, versões do Qt e a importância de reproduzir o problema no ambiente correto.
O problema e o ambiente
Meu colega, que usa Arch Linux, reproduziu o bug imediatamente. Já no meu Debian stable, o cursor funcionava perfeitamente. A razão? Não sabemos ainda, mas talvez bug já havia sido corrigido em versões recentes, mas ainda existia no código-fonte do Okular.
Para testar a correção, usei o ambiente de desenvolvimento do KDE (kde-builder), que compila tudo com as dependências corretas
Mergulhando no código
Analisando /part/pageview.cpp, encontramos a causa:
- Um QTimer (
leftClickTimer) era iniciado com delay igual aodoubleClickInterval() + 10. - Esse timer chamava
slotShowSizeAllCursor(), que mudava o cursor paraSizeAllCursor.
A solução foi simples: remover o timer e a função, e definir o cursor diretamente no mousePressEvent() para ClosedHandCursor, sem atraso.
A contribuição
Com a correção pronta, criamos um Merge Request no GitLab do KDE. O processo foi direto: fork, branch, commit, push e MR. Os pipelines de CI rodaram os testes automaticamente.
Lições aprendidas
- Distribuições diferentes, comportamentos diferentes: o Debian stable tem bibliotecas mais antigas, o que pode ser um problema como o QT que no debian é bem desatualizado comparado com o Qt de desenvolvimento do KDE.
- Use o ambiente recomendado pelo projeto: para contribuir com KDE, o
kde-builderé essencial para garantir as versões corretas. - KDE é mais amigável que o kernel: documentação clara e ferramentas simples.
Estado atual
Nosso MR aguarda revisão dos mantenedores. A correção é pequena e bem direta, então estamos otimistas.