删除 client 不必要的属性
This commit is contained in:
@@ -3,7 +3,6 @@ _XKB_RULES_NAMES
|
||||
WM_PROTOCOLS
|
||||
WM_TAKE_FOCUS
|
||||
WM_NAME
|
||||
WM_ICON_NAME
|
||||
WM_WINDOW_ROLE
|
||||
|
||||
UTF8_STRING
|
||||
@@ -13,7 +12,6 @@ _NET_ACTIVE_WINDOW
|
||||
_NET_CLIENT_LIST
|
||||
_NET_WM_DESKTOP
|
||||
_NET_WM_NAME
|
||||
_NET_WM_ICON_NAME
|
||||
_NET_WM_STATE
|
||||
_NET_WM_STATE_FULLSCREEN
|
||||
_NET_WM_WINDOW_TYPE
|
||||
|
||||
@@ -117,9 +117,7 @@ static inline void client_wipe(client_t *client) {
|
||||
p_delete(&client->class);
|
||||
p_delete(&client->instance);
|
||||
p_delete(&client->name);
|
||||
p_delete(&client->icon_name);
|
||||
p_delete(&client->net_name);
|
||||
p_delete(&client->net_icon_name);
|
||||
p_delete(&client->role);
|
||||
p_delete(&client);
|
||||
}
|
||||
@@ -138,9 +136,7 @@ static inline void client_tags_apply(client_t *client) {
|
||||
|
||||
static inline void client_update_names(client_t *c) {
|
||||
xwindow_get_text_property(c->window, WM_NAME, &c->name);
|
||||
xwindow_get_text_property(c->window, WM_ICON_NAME, &c->icon_name);
|
||||
xwindow_get_text_property(c->window, _NET_WM_NAME, &c->net_name);
|
||||
xwindow_get_text_property(c->window, _NET_WM_ICON_NAME, &c->net_icon_name);
|
||||
}
|
||||
|
||||
static inline void client_init_geometry(client_t *c) {
|
||||
@@ -250,9 +246,7 @@ void client_manage(xcb_window_t window,
|
||||
}
|
||||
|
||||
char **client_get_task_title(client_t *client) {
|
||||
if (client->net_icon_name) return &client->net_icon_name;
|
||||
if (client->net_name) return &client->net_name;
|
||||
if (client->icon_name) return &client->icon_name;
|
||||
if (client->name) return &client->name;
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@@ -175,16 +175,9 @@ static void property_notify(xcb_property_notify_event_t *ev) {
|
||||
if (ev->atom == WM_NAME) {
|
||||
xwindow_get_text_property(ev->window, ev->atom, &client->name);
|
||||
monitor_draw_bar(client->monitor);
|
||||
} else if (ev->atom == WM_ICON_NAME) {
|
||||
if (client->icon_name) p_delete(&client->icon_name);
|
||||
xwindow_get_text_property(ev->window, ev->atom, &client->icon_name);
|
||||
monitor_draw_bar(client->monitor);
|
||||
} else if (ev->atom == _NET_WM_NAME) {
|
||||
xwindow_get_text_property(ev->window, ev->atom, &client->net_name);
|
||||
monitor_draw_bar(client->monitor);
|
||||
} else if (ev->atom == _NET_WM_ICON_NAME) {
|
||||
xwindow_get_text_property(ev->window, ev->atom, &client->net_icon_name);
|
||||
monitor_draw_bar(client->monitor);
|
||||
} else if (ev->atom == XCB_ATOM_WM_HINTS) {
|
||||
client_update_wm_hints(client);
|
||||
monitor_draw_bar(client->monitor);
|
||||
|
||||
@@ -41,7 +41,7 @@ struct client_t {
|
||||
bool size_freeze; /* 尺寸冻结窗口一定是浮动窗口 */
|
||||
|
||||
char *class, *instance;
|
||||
char *name, *icon_name, *net_name, *net_icon_name;
|
||||
char *name, *net_name;
|
||||
char *role;
|
||||
|
||||
xcb_window_t transient_for_window;
|
||||
|
||||
Reference in New Issue
Block a user