Gtk Área de desenho nem sempre renderizando quando dentro de uma janela rolada

0

Eu tenho uma área de desenho dentro de um Viewport dentro de uma janela rolada. A imagem renderiza bem quando a Área de Desenho se encaixa dentro da Janela Rolada. Mas quando eu solicito um tamanho maior do que a Janela Rolar, a Área de Desenho nem sempre é redesenhada quando eu rola para cima ou para baixo, e o mesmo acontece quando a janela pai é redimensionada. O que acontece é que eu obtenho uma área do tamanho certo dentro da Janela Rolada, mas parece que não há Área de Desenho dentro, ou como se não houvesse nada desenhado na Área de Desenho, que às vezes pisca com o desenho correto aleatoriamente posições das barras de rolagem. Eu conectei um retorno de chamada ao sinal de empate que imprime "render" toda vez que é chamado, e outro retorno de chamada ao sinal de alteração de valor dos ajustes das barras de rolagem que imprimem "adj" à tela sempre que eles são rolados. A saída do terminal é a seguinte

adj
adj
adj
adj
adj
1428919598 render
adj
adj
adj

Assim, toda vez que eu vejo aj, a tela fica em branco, enquanto é desenhada corretamente quando vejo < ... > render. Por isso, ao rolar rapidamente, recebo uma imagem bruxuleante. Alguma idéia do que pode estar causando isso?

    
por Phoenix87 13.04.2015 / 10:10

1 resposta

0

Eu estava portando algum código do gtk2 para o gtk3. O problema acabou por ficar no novo sinal "draw", que agora substitui "expor-evento". Na versão mais antiga eu tive que criar o contexto no manipulador de sinal, mas o novo callback o tem como um dos argumentos, e é aquele que deve ser usado.

    
por Phoenix87 13.04.2015 / 21:48