Bonjour,
j'ai un petit pb de curseur visible dans Writer.
LibreOffice 3.5.6-2 sous Win7 64b et 4.1.4-2 sous Debian Wheezy Xfce
Contexte :
un document Writer composé de plusieurs tableaux consécutifs. Dans
certaines cellules se trouvent des cases à cocher (ancrées comme des
caractères).
Besoin :
je voudrais que, quand l'utilisateur a coché la case, le curseur visible
se positionne à la fin du paragraphe qui suit la case cochée. De cette
manière, l'utilisateur pourrait continuer la saisie sans avoir à agir
sur la souris.
L'exemple est là : http://cjoint.com/?0GynhetAxf7
Symptôme :
La procédure _SetViewCursor(), appelée à travers UpdateChecked(),
s'exécute bien mais le curseur visible n'est pas placé au "bon" endroit
(à droite de la flèche). Il n'est même pas placé du tout.
Je constate que :
-- L24 : l'instruction oTextCur.gotoEndOfParagraph(False) fonctionne (si
je passe True, la sélection est ok)
-- L25 : un XRay sur oVCur après l'affectation renvoie des infos
cohérentes (propriété Cell en particulier)
-- l'ajout éventuel d'une instruction oVCur.setVisible(True) est sans effet
-- après exécution de la macro, la case reste entourée de pointillés, ce
qui pourrait suggérer que le focus reste sur la case à cocher, donc que
le code de la macro est ensuite parasité par un comportement interne de
Writer qui refocalise sur la case.
La macro (UpdateChecked()) est associée à l'évènement "Statut de
l'élément modifié" de la case à cocher. Par curiosité, j'ai essayé
d'autres évènements (bouton de la souris relâché, à la perte du focus),
sans plus de succès... Il me semble, a priori, que l'évènement "Statut
de l'élément modifié" est celui qui convient : dans d'autres
environnements (p.ex : Delphi), cet évènement rend la main à
l'application après que le composant ait terminé toute action interne.
NB : actuellement la macro s'exécute quel que soit l'état de la case,
cochée ou non ; c'est pour des tests donc sans importance ici.
Des idées ?
Merci d'avance. Amicalement,
--
Jean-Francois Nifenecker, Bordeaux
--
Envoyez un mail à users+unsubscr...@fr.libreoffice.org pour savoir comment vous
désinscrire
Les archives de la liste sont disponibles à
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne
pourront pas être supprimés