]> git.sur5r.net Git - i3/i3/blobdiff - src/render.c
handle windows whose WM_TRANSIENT_FOR points to themselve
[i3/i3] / src / render.c
index f996d9641d849bc1cd69f0fe6f93825819505aa6..2cc50d5739c9b83049b64d7b930a14a281e8da50 100644 (file)
@@ -286,7 +286,15 @@ void render_con(Con *con, bool render_fullscreen) {
                             is_transient_for = true;
                             break;
                         }
-                        transient_con = con_by_window_id(transient_con->window->transient_for);
+                        Con *next_transient = con_by_window_id(transient_con->window->transient_for);
+                        if (next_transient == NULL)
+                            break;
+                        /* Some clients (e.g. x11-ssh-askpass) actually set
+                         * WM_TRANSIENT_FOR to their own window id, so break instead of
+                         * looping endlessly. */
+                        if (transient_con == next_transient)
+                            break;
+                        transient_con = next_transient;
                     }
 
                     if (!is_transient_for)