|
|
@ -305,6 +305,7 @@ weston_wm_window_read_properties(struct weston_wm_window *window) |
|
|
|
int offset; |
|
|
|
int offset; |
|
|
|
} props[] = { |
|
|
|
} props[] = { |
|
|
|
{ XCB_ATOM_WM_CLASS, XCB_ATOM_STRING, F(class) }, |
|
|
|
{ XCB_ATOM_WM_CLASS, XCB_ATOM_STRING, F(class) }, |
|
|
|
|
|
|
|
{ XCB_ATOM_WM_NAME, XCB_ATOM_STRING, F(name) }, |
|
|
|
{ XCB_ATOM_WM_TRANSIENT_FOR, XCB_ATOM_WINDOW, F(transient_for) }, |
|
|
|
{ XCB_ATOM_WM_TRANSIENT_FOR, XCB_ATOM_WINDOW, F(transient_for) }, |
|
|
|
{ wm->atom.wm_protocols, TYPE_WM_PROTOCOLS, F(protocols) }, |
|
|
|
{ wm->atom.wm_protocols, TYPE_WM_PROTOCOLS, F(protocols) }, |
|
|
|
{ wm->atom.net_wm_window_type, XCB_ATOM_ATOM, F(type) }, |
|
|
|
{ wm->atom.net_wm_window_type, XCB_ATOM_ATOM, F(type) }, |
|
|
@ -352,6 +353,9 @@ weston_wm_window_read_properties(struct weston_wm_window *window) |
|
|
|
case XCB_ATOM_STRING: |
|
|
|
case XCB_ATOM_STRING: |
|
|
|
/* FIXME: We're using this for both string and
|
|
|
|
/* FIXME: We're using this for both string and
|
|
|
|
utf8_string */ |
|
|
|
utf8_string */ |
|
|
|
|
|
|
|
if (*(char **) p) |
|
|
|
|
|
|
|
free(*(char **) p); |
|
|
|
|
|
|
|
|
|
|
|
*(char **) p = |
|
|
|
*(char **) p = |
|
|
|
strndup(xcb_get_property_value(reply), |
|
|
|
strndup(xcb_get_property_value(reply), |
|
|
|
xcb_get_property_value_length(reply)); |
|
|
|
xcb_get_property_value_length(reply)); |
|
|
|