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

Répondre à