浏览代码

Wayland: Fix map before XDG decoration configure

If the xdg_toplevel has a decoration, we need to wait for its first
configure event as well before we are allowed to attach the first
buffer.

It seems racy to assume that this will always happen inside the first
surface configure sequence, so this commit makes that condition
explicit.  This may turn out to have been overly defensive.
Camilla Löwy 3 年之前
父节点
当前提交
3203599cac
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      src/wl_window.c

+ 7 - 2
src/wl_window.c

@@ -569,8 +569,13 @@ static void xdgSurfaceHandleConfigure(void* userData,
 
     if (!window->wl.visible)
     {
-        window->wl.visible = GLFW_TRUE;
-        _glfwInputWindowDamage(window);
+        // Allow the window to be mapped only if it either has no XDG
+        // decorations or they have already received a configure event
+        if (!window->wl.xdg.decoration || window->wl.xdg.decorationMode)
+        {
+            window->wl.visible = GLFW_TRUE;
+            _glfwInputWindowDamage(window);
+        }
     }
 }