En utilisant GTK, j'essaie de superposer une invite "Plus" (mais cela pourrait aussi bien être n'importe quel objet dessin) dans le coin d'un GtkTextView
contenu dans un GtkScrolledWindow
. Je dessine l'invite dans le gestionnaire pour le signal expose
de la vue de texte. Cela fonctionne, mais quand je fais défiler la fenêtre je reçois des artefacts: l'invite est déplacée avec le contenu de la vue de texte et non effacée. Afin de se débarrasser des artefacts, je déclenche un redessin après chaque défilement. Cela fonctionne principalement, mais vous pouvez toujours voir l'invite sauter de haut en bas lorsque vous faites défiler rapidement. Est-il un moyen d'empêcher cela? Ce serait bien si l'invite "flottait" en haut de la vue de texte.Peinture sur GtkScrolledWindow ou GtkEventBox
J'ai essayé d'entourer la fenêtre défilée dans un GtkEventBox
et de peindre l'invite par-dessus, mais cela n'a pas fonctionné non plus; les barres de défilement et la vue de texte peignent toujours sur l'invite, même lorsque vous définissez la fenêtre de la boîte d'événement devant les fenêtres de ses enfants.
MISE À JOUR
Si je connecte le GtkEventBox
« s avec rappel g_signal_connect_after()
exposer, il est appelé après l'exposé callbacks du GtkScrolledWindow
et GtkTextView
. La vue de texte dessine toujours sur la boîte d'événement cependant. Je pense que c'est parce que le défilement se produit de manière asynchrone. Quelqu'un a-t-il une idée de comment je peux empêcher que mon dessin soit écrasé?
une mise à jour
donc je suppose que ce que je réellement besoin est un signal pour se connecter lorsque le défilement asynchrone est terminée. Si je peux savoir quand cela est, alors je peux déclencher un autre événement d'exposition sur le GtkEventBox
. Comment puis-je recevoir une notification lorsque le défilement est terminé?
Êtes-vous sûr que votre callback 'GtkEventBox' d'exposition est appelé après le' GtkScrolledWindow'? Un couple de printf clarifiera le doute ... – ntd
Bonne idée; Je l'ai testé. Voir modifier à la question. – ptomato