Mavericks: como desativar a rolagem responsiva

10

A rolagem responsiva está causando muitos problemas para mim. É bom quando funciona, mas às vezes fica muito atrasado, especialmente no Chrome.

Alguém descobriu uma maneira de desativar a rolagem responsiva e fazer a rolagem se comportar como na versão 10.8? Globalmente ou por aplicativo.

Durante o vídeo WWDC "Otimizando desenho e rolagem no OS X", o engenheiro da Apple usa o que parece um arquivo AppleScript para desativar a rolagem responsiva globalmente, por isso é possível, mas não consigo descobrir como.

bogdansrc
fonte
1
A rolagem "responsiva" é absolutamente terrível para mim em um MacBook de 2009. Eu tive um ótimo desempenho de rolagem com o Mountain Lion, mas agora a rolagem é tão irregular que não consigo visualizar o que quero ver. É realmente frustrante.
OregonTrail
Isso descreve perfeitamente os problemas que estou enfrentando ... Pelo que vale a pena, estou no MacBook Pro 2012.
bogdansrc
@bogdansrc Em termos do Chrome, tentei excluí-lo e reinstalá-lo?
Simon
@ Simon sim, tentei isso. Esta também é uma nova instalação do Mavericks.
precisa saber é o seguinte

Respostas:

4

Em primeiro lugar, estou publicando isso como possível informação útil, em vez de uma solução. O que pode levar alguém na direção certa.


Encontrei isso no What's New in OSX, que explica como e como a rolagem responsiva funciona.

Na parte inferior, há também uma nota dizendo como desativá-lo por aplicativo para fins de teste.

Mas não vejo essa opção em meus próprios aplicativos criados ou em outros.

Rolagem responsiva

A rolagem responsiva é um aprimoramento do AppKit que torna a rolagem mais suave. Isso envolve duas alterações significativas na maneira como seu aplicativo desenha conteúdo:

As exibições de rolagem solicitam que as exibições filhas desenhem conteúdo extra fora de sua área de exibição normal, para que o conteúdo possa ser disponibilizado imediatamente para fins de rolagem. Esse suporte adicional de janela é armazenado na memória removível para minimizar a paginação adicional. O encadeamento de rolagem tenta redesenhar a exibição a 60 quadros por segundo, mas recua se o aplicativo não conseguir acompanhar. Eventos de rolagem são processados ​​em um encadeamento em segundo plano. A maioria dos aplicativos recebe automaticamente esse comportamento de rolagem responsivo. No entanto, algumas visualizações devem incluir explicitamente, incluindo visualizações com camada de suporte, visualização de rolagem personalizada ou subclasses de visualização de clipe que substituem drawRect :, visualizações de documento baseadas em NSSurface, visualizações de documento transparentes e visualizações de documento que substituem o método lockFocus.

Para visualizações nas quais a rolagem responsiva é ativada automaticamente, a mudança de comportamento deve ser totalmente transparente para você como desenvolvedor. No entanto, se o seu aplicativo exibir algum comportamento incomum durante a rolagem, registre erros.

Nota: Você pode desativar temporariamente a rolagem responsiva para fins de teste escolhendo Arquivo> Obter informações no seu aplicativo no Finder. Depois de alterar a configuração, você deve sair e reiniciar o aplicativo. Para mais detalhes, consulte as Notas da versão do AppKit para OS X v10.9.

Dei uma olhada nas notas de versão do appkit - Rolagem responsiva, que entram em mais detalhes.

Existem condições que devem impedir que a rolagem responsiva seja atribuída a um aplicativo. Uma delas é:

Os links do aplicativo na versão 10.7 ou anterior (o aplicativo deve ser vinculado no Mountain Lion ou superior para suportar esse recurso)

Entendo que, se o aplicativo for desenvolvido para rodar também na versão 10.6, ele não terá esse recurso adicionado.

O Chrome AFAIK será executado a partir de 10.6. Mas suspeito que o downloader esteja baixando uma versão para o seu sistema atual.

Possivelmente, uma versão criada para 10.6 apenas a desativaria no Chrome.


UPDATE * Mas como bogdansrc aponta nos comentários. Não existe uma compilação única para 10.6


Eu tentei:

defaults write ~/Library/Preferences/com.google.Chrome isCompatibleWithResponsiveScrolling -bool NO

Mas o isCompatibleWithResponsiveScrolling é para uma subclasse nsview e eu realmente não espero que funcione. Também não estou tendo esse problema, então não sei dizer.

markhunte
fonte
Isto parece um truque interessante
Nova Alexandria
A suposição "funciona em 10.6 => não possui rolagem responsiva" está incorreta. É sobre qual SDK o aplicativo se vincula. Você pode ter um link de aplicativo no SDK 10.9 e funcionar bem no 10.6. Até onde eu sei, a abordagem geral é vincular o SDK mais recente; portanto, o Chrome provavelmente faz isso. Caso contrário, não teria rolagem responsiva. Não há várias versões do Chrome com base na versão do OS X que você está executando. Isso é bobagem.
precisa saber é o seguinte
O que estou basicamente tentando dizer e interpretar a partir das maçãs anotadas incorretamente ou corretamente é se o Base sdk é 10.6 e não está vinculado a nenhum acima, então, até onde eu entendo, o aplicativo não terá RS. Você começa tão bem, mas depois estraga tudo ao ser insultado com "Isso é bobo". Um simples "Não há 10.6 apenas o Chrome" seria suficiente. Os aplicativos podem criar versões para sistemas operacionais mais antigos que não serão instalados ou executados no sistema operacional mais recente. que é o que eu estava pensando.
markhunte
4

ATUALIZAÇÃO (7.XI.2013 após a chamada para o Apple Care):

Eu também precisava:

1) redefinindo a PRAM (após desligar, ligar enquanto mantém CMD + ALT + P + R até o segundo gongo), como fazer no seu mac: https://support.apple.com/kb/ht1379

2) redefinindo o SMC (após desligar, ligar enquanto mantém pressionadas as teclas SHIFT + CTRL + ALT (opção) + POWER) no seu Mac: https://support.apple.com/kb/HT3964

A CONFIGURAÇÃO ABAIXO DEVE SER: com inércia


Provavelmente NÃO é a solução permanente, mas um hack rápido e confortável em comparação com a reinicialização do sistema.

Funcionou para mim. Desculpe, as capturas de tela estão em polonês. De qualquer forma, você deve gerenciá-lo graças a imagens / ícones.

Primeira acessibilidade aberta em Preferências do sistema

insira a descrição da imagem aqui

Em configurações do touchpad / mouse, clique no botão touchpad

insira a descrição da imagem aqui

Depois, toque com / sem inércia.

insira a descrição da imagem aqui

andilabs
fonte
Eu acho que a rolagem sensível é diferente da rolagem inércia ...
DanHickstein
1
@ DanHickstein é uma espécie de solução alternativa.
precisa saber é o seguinte
Hmmmm, acho que a rolagem responsiva é algo novo para fazer a rolagem funcionar a 60 fps, como discutido aqui: developer.apple.com/library/mac/releasenotes/MacOSX/… Não tenho certeza de que tenha algo a ver com a rolagem inercial.
DanHickstein 1/11
Talvez não. Mas eu e poucos usuários percebemos que brincar com o interial permite livrar-se de problemas com o frezzing no Chrome.
precisa saber é o seguinte
2
Desativar a rolagem inercial não é uma opção para mim (eu odeio a rolagem não inercial). Além disso, a rolagem responsiva não está relacionada à rolagem inercial. Você ainda recebe rolagem responsiva com ou sem inércia.
precisa saber é o seguinte
1

Perguntei a John Siracusa no twitter:

https://twitter.com/siracusa/status/394988398009925632

@siracusa Você encontrou uma maneira de desativar a "rolagem responsiva" em dissidentes? Parece estranho

Sua resposta foi muito sucinta:

https://twitter.com/siracusa/status/394988398009925632

@davidmarsh No.

Eu acho que isso não significa que você não possa desativá-lo, apenas que John não sabe como desativá-lo.

David
fonte
2
Se John Siracusa não sabe como, é muito provável que não seja possível. arstechnica.com/apple/2013/10/os-x-10-9
1
Um engenheiro da Apple fez isso usando o que parecia um AppleScript durante a sessão WWDC "Otimizando desenho e rolagem no OS X". O vídeo está disponível em developer.apple.com/wwdc/videos . Isso não significa que ainda é possível na versão mais recente do Mavericks.
precisa saber é o seguinte