]> git.sur5r.net Git - i3/i3/blobdiff - src/window.c
Merge branch 'master' into next
[i3/i3] / src / window.c
index 4b8b6614a863ed507ef40c7cecb6037402cecaa2..270314eabb6cdca2a5d00a1809ee5323a09b5365 100644 (file)
@@ -4,6 +4,8 @@
  * i3 - an improved dynamic tiling window manager
  * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
  *
+ * window.c: Updates window attributes (X11 hints/properties).
+ *
  */
 #include "all.h"
 
@@ -14,7 +16,7 @@
  */
 void window_update_class(i3Window *win, xcb_get_property_reply_t *prop, bool before_mgmt) {
     if (prop == NULL || xcb_get_property_value_length(prop) == 0) {
-        DLOG("empty property, not updating\n");
+        DLOG("WM_CLASS not set.\n");
         FREE(prop);
         return;
     }
@@ -66,8 +68,8 @@ void window_update_name(i3Window *win, xcb_get_property_reply_t *prop, bool befo
         return;
     }
     /* Convert it to UCS-2 here for not having to convert it later every time we want to pass it to X */
-    int len;
-    char *ucs2_name = convert_utf8_to_ucs2(new_name, &len);
+    size_t len;
+    xcb_char2b_t *ucs2_name = convert_utf8_to_ucs2(new_name, &len);
     if (ucs2_name == NULL) {
         LOG("Could not convert _NET_WM_NAME to UCS-2, ignoring new hint\n");
         FREE(new_name);
@@ -77,7 +79,7 @@ void window_update_name(i3Window *win, xcb_get_property_reply_t *prop, bool befo
     FREE(win->name_x);
     FREE(win->name_json);
     win->name_json = new_name;
-    win->name_x = ucs2_name;
+    win->name_x = (char*)ucs2_name;
     win->name_len = len;
     win->name_x_changed = true;
     LOG("_NET_WM_NAME changed to \"%s\"\n", win->name_json);
@@ -103,7 +105,7 @@ void window_update_name(i3Window *win, xcb_get_property_reply_t *prop, bool befo
  */
 void window_update_name_legacy(i3Window *win, xcb_get_property_reply_t *prop, bool before_mgmt) {
     if (prop == NULL || xcb_get_property_value_length(prop) == 0) {
-        DLOG("prop == NULL\n");
+        DLOG("WM_NAME not set (_NET_WM_NAME is what you want anyways).\n");
         FREE(prop);
         return;
     }
@@ -123,6 +125,7 @@ void window_update_name_legacy(i3Window *win, xcb_get_property_reply_t *prop, bo
         return;
     }
 
+    LOG("WM_NAME changed to \"%s\"\n", new_name);
     LOG("Using legacy window title. Note that in order to get Unicode window "
         "titles in i3, the application has to set _NET_WM_NAME (UTF-8)\n");
 
@@ -149,7 +152,7 @@ void window_update_name_legacy(i3Window *win, xcb_get_property_reply_t *prop, bo
  */
 void window_update_leader(i3Window *win, xcb_get_property_reply_t *prop) {
     if (prop == NULL || xcb_get_property_value_length(prop) == 0) {
-        DLOG("prop == NULL\n");
+        DLOG("CLIENT_LEADER not set.\n");
         FREE(prop);
         return;
     }
@@ -173,7 +176,7 @@ void window_update_leader(i3Window *win, xcb_get_property_reply_t *prop) {
  */
 void window_update_transient_for(i3Window *win, xcb_get_property_reply_t *prop) {
     if (prop == NULL || xcb_get_property_value_length(prop) == 0) {
-        DLOG("prop == NULL\n");
+        DLOG("TRANSIENT_FOR not set.\n");
         FREE(prop);
         return;
     }
@@ -197,7 +200,7 @@ void window_update_transient_for(i3Window *win, xcb_get_property_reply_t *prop)
  */
 void window_update_strut_partial(i3Window *win, xcb_get_property_reply_t *prop) {
     if (prop == NULL || xcb_get_property_value_length(prop) == 0) {
-        DLOG("prop == NULL\n");
+        DLOG("_NET_WM_STRUT_PARTIAL not set.\n");
         FREE(prop);
         return;
     }
@@ -222,7 +225,7 @@ void window_update_strut_partial(i3Window *win, xcb_get_property_reply_t *prop)
  */
 void window_update_role(i3Window *win, xcb_get_property_reply_t *prop, bool before_mgmt) {
     if (prop == NULL || xcb_get_property_value_length(prop) == 0) {
-        DLOG("prop == NULL\n");
+        DLOG("WM_WINDOW_ROLE not set.\n");
         FREE(prop);
         return;
     }