Taille fenetre X11

prqp -  
ElementW Messages postés 5690 Statut Contributeur -
Bonjour,

Lorsqu'on créer une fenetre avec X11 : win = XCreateSimpleWindow(display, root, posx, posy, width, height, larg, pblack, pwhite), comment je fais pour dire que la fenetre doit prendre toute la taille de mon écran ?
NB : les noms de variables c'est les miens, mais je suppose que vous comprenez. Le width et height sert à indiquer la taille de la fenetre. Et je voudrais que width = taille écran en x et height = taille ecran en y

1 réponse

  1. ElementW Messages postés 5690 Statut Contributeur 1 293
     
    'lut
    Display *display;
    [...]
    Screen *screen = XDefaultScreenOfDisplay(display);
    int posx = 0, posy = 0;
    int width = XWidthOfScreen(screen);
    int height = XHeightOfScreen(screen);
    [...]
    Window win = XCreateSimpleWindow(display, root, posx, posy, width, height, larg, pblack, pwhite),

    Ceci créé une fenêtre de la taille de ton écran, ceci dit elle ne sera pas plein écran, il faut demander au Window Manager de le faire:
    Atom wm_state = XInternAtom(display, "_NET_WM_STATE", false);
    Atom fullscreen = XInternAtom(display, "_NET_WM_STATE_FULLSCREEN", false);
    XEvent xev;
    memset(&xev, 0, sizeof(xev));
    xev.type = ClientMessage;
    xev.xclient.window = win;
    xev.xclient.message_type = wm_state;
    xev.xclient.format = 32;
    xev.xclient.data.l[0] = 1;
    xev.xclient.data.l[1] = fullscreen;
    xev.xclient.data.l[2] = 0;
    // On affiche la fenêtre
    XMapWindow(display, win);
    // On avertit le WM
    XSendEvent (display, XDefaultRootWindow(display), false,
    				SubstructureRedirectMask | SubstructureNotifyMask, &xev);
    // On vite le tampon des messages (donc avertir réellement le WM)
    XFlush(display);
    0