2015-01-04 3 views
1

Я пишу минималистическую библиотеку для создания окна в xcb. Я хочу иметь возможность создавать окно без изменения размеров. Я обнаружил, что можно дать подсказки оконного менеджера с:XCB - Как установить WM_SIZE_HINTS?

xcb_void_cookie_t xcb_change_property (xcb_connection_t *c,  /* Connection to the X server */ 
             uint8_t   mode,  /* Property mode */ 
             xcb_window_t  window, /* Window */ 
             xcb_atom_t  property, /* Property to change */ 
             xcb_atom_t  type,  /* Type of the property */ 
             uint8_t   format, /* Format of the property (8, 16, 32) */ 
             uint32_t   data_len, /* Length of the data parameter */ 
             const void  *data); /* Data */ 

Я попытался изменить WM_NORMAL_HINTS и WM_SIZE_HINTS с этой функцией, но, как я знаю, какие данные я должен положить в * параметр данных? Является ли тип XCB_ATOM_INTEGER или что-то еще?

+0

Вы искали документацию о том, что 'WM_SIZE_HINTS' являются/содержат? –

+0

Я не нахожу ничего полезного. Я много часов пробовал. – bakkaa

+0

http://cgit.freedesktop.org/xcb/util-wm/tree/icccm/icccm.c#n725 и http://cgit.freedesktop.org/xcb/util-wm/tree/icccm/xcb_icccm.h # n763 и т. д. Также * очень * первая ссылка в поиске 'WM_SIZE_HINTS' http://tronche.com/gui/x/xlib/ICC/client-to-window-manager/wm-normal-hints.html –

ответ

3

Вот решение:

#include <xcb/xcb.h> 
#include <xcb/xcb_icccm.h> 

#define WIDTH 900 
#define HEIGHT 600 

int main(){ 
    //... 
    //Connect to X Server and 
    //Create a window 
    //... 

    xcb_size_hints_t hints; 

    xcb_icccm_size_hints_set_min_size(&hints, WIDTH, HEIGHT); 
    xcb_icccm_size_hints_set_max_size(&hints, WIDTH, HEIGHT); 

    xcb_icccm_set_wm_size_hints(connection, window, XCB_ATOM_WM_NORMAL_HINTS, &hints); 
    return 0; 
} 
+0

Большое спасибо за обмен! – Noitidart

 Смежные вопросы

  • Нет связанных вопросов^_^