Forum Programmation.c Xlib qui me rend malade...

Posté par  .
Étiquettes : aucune
0
27
fév.
2006
Bonjour lé zami,

je suis en train d'écrire un panel personnalisé qui est sensé me permettre des fonctionnalités telle que :
- Accès protégé à certaines tâches dépendemment des privilèges de connexion
- Algorithme de disposition des fenêtres ouvertes avec redimensionnement.

Dans mon cas, le panel entre en action si le nombre de tâches X window est supérieur à n. il devient donc visible. Si le nombre de fenêtre devient inférieur à n, le panel se cache en bas du stack.

j'utilise les structures XSetWindowAttributes et XWindowChanges pour agir sur les dimensions de mes fenêtres, et notamment les fonctions XChangeWindowAttributes(), XConfigureWindow() ou XResizeWindow() pour les appliquer.

Le problème que j'ai est que l'action ne se fait pas simultanément : un redimensionnement de la fenêtre n'est pas immédiat quoi qu'il est mémorisé. il ne s'instaure qu'après un agrandissement (bouton d'agrandir/rapetisser) du widget qui lui est associée.

Auriez vous une idée je vous prie ?

merci
  • # voir le code

    Posté par  . Évalué à 3.

    Ben oui c'est toute la difficulté de Xlib, en plus des evennements avec le serveur X, il ne faut pas oublier le window manager qui intervient dans la "boucle" quand tu deplaces ou redimentionnes les fenetres. Par defaut les requetes sont envoyées et gérées par le serveur X de manière asynchrone et buffurisés, les evenements envoyés par le serveur sont aussi buffurisés. Bref c'est pas simple. Il faut pour comprendre tout cela, bien maitriser la boucle d'evennements dans ton code et pour cela il te faut un petit moment pour les tests et les exercices.
    Je te conseille le bouquin de O'Reilly: X Lib Programming (1 tome) et X Lib Manual Reference (2 tome).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.