2016-07-04 1 views
0

Donc, je veux rendre ma fenêtre non déplaçable et redimensionnable, est-il possible de le faire? Voici mon code de création de fenêtre actuel.Comment faire une position fixe et la taille de la fenêtre dans X11

testbwidgetptr->basewin = XCreateWindow(BOTIFDisplay, 
       tmp->drawarea, 
       testbwidgetptr->bwidgetx, 
       testbwidgetptr->bwidgety, 
       testbwidgetptr->bwidgetwidth, 
       testbwidgetptr->bwidgetheight, 
       0, CopyFromParent, InputOutput, 
       CopyFromParent, valuemask, &winatt); 
XSetWindowBackground(BOTIFDisplay, testbwidgetptr->basewin, WhiteDot); 
+0

Vous pouvez essayer ceci: http://stackoverflow.com/a/26848220/1793220 –

Répondre

0

Je veux faire ma fenêtre mobile et non redimensionnable

Dans X11 la gestion des fenêtres, le client ne reçoit pas de définir ce qu'ils veulent. Ils peuvent demander le gestionnaire de fenêtre pour faire ceci ou cela (ou ne pas faire cela), mais à la fin c'est toujours au gestionnaire de fenêtres. En fait, les spécifications indiquent clairement que l'application cliente doit composer avec la taille que le gestionnaire de fenêtres lui attribue - donc la réponse est: non, vous ne pouvez pas le faire si vous voulez que votre fenêtre soit gérée. Comme souligné dans un commentaire, vous pouvez définir override_redirect sur votre fenêtre. Cela indique au gestionnaire de fenêtres de ne pas gérer votre fenêtre, ce qui signifie que le gestionnaire de fenêtres ne l'interférera pas. Cependant, en théorie, n'importe quel client pourrait encore redimensionner votre fenêtre (bien que cela soit extrêmement improbable).

Cependant, vous devriez faire attention à ce sujet. Contourner le gestionnaire de fenêtres signifie également que vous perdez beaucoup de choses: les décorations de fenêtres, la gestion de la mise au point, etc. vont disparaître. En particulier, la manipulation de la mise au point doit être effectuée par vous.

En résumé, vous devriez vraiment considérer si override_redirect est vraiment ce que vous voulez utiliser. Dans la plupart des cas, vous devez simplement créer un client capable de traiter des tailles de fenêtre et des positions arbitraires.