environment: BUILD_SUBMITTER: dalligi CI: "true" CI_API_GRAPHQL_URL: https://gitlab.freedesktop.org/api/graphql CI_API_V4_URL: https://gitlab.freedesktop.org/api/v4 CI_COMMIT_AUTHOR: Consolatis <40171-Consolatis@users.noreply.gitlab.freedesktop.org> CI_COMMIT_BEFORE_SHA: b28b26910654d67f5b6bd2d4d500948089f467f9 CI_COMMIT_BRANCH: backport-0.18.2 CI_COMMIT_DESCRIPTION: |4- As struct wlr_drag is destroyed on drop and in the process resets the focus, a xwayland dnd listener would also reset xwm->drag_focus. This prevents the xcb replies from being processed and also prevents the transfer if a compositor would not additionally request new focus in its wlr_drag destroy handler (which is something usually only done when in a focus-follows-mouse setting). This patch creates a new xwm->drop_focus pointer which is a copy of xwm->drag_focus at drop time. The xcb reply handler and transfer logic now use the new xwm->drop_focus for their authorization checks. (cherry picked from commit 546c5d000d2696f423cd870780bf2378b6cc6a6b) CI_COMMIT_MESSAGE: | xwayland: fix xdg->xwayland drag-and-drop As struct wlr_drag is destroyed on drop and in the process resets the focus, a xwayland dnd listener would also reset xwm->drag_focus. This prevents the xcb replies from being processed and also prevents the transfer if a compositor would not additionally request new focus in its wlr_drag destroy handler (which is something usually only done when in a focus-follows-mouse setting). This patch creates a new xwm->drop_focus pointer which is a copy of xwm->drag_focus at drop time. The xcb reply handler and transfer logic now use the new xwm->drop_focus for their authorization checks. (cherry picked from commit 546c5d000d2696f423cd870780bf2378b6cc6a6b) CI_COMMIT_REF_NAME: backport-0.18.2 CI_COMMIT_REF_PROTECTED: "false" CI_COMMIT_REF_SLUG: backport-0-18-2 CI_COMMIT_SHA: 0c437f6e988d97f459841364c9be59b79884fee4 CI_COMMIT_SHORT_SHA: 0c437f6e CI_COMMIT_TIMESTAMP: "2024-12-11T09:29:55-05:00" CI_COMMIT_TITLE: 'xwayland: fix xdg->xwayland drag-and-drop' CI_CONFIG_PATH: .gitlab-ci.yml CI_DEFAULT_BRANCH: master CI_JOB_ID: "68049893" CI_JOB_NAME: freebsd CI_JOB_NAME_SLUG: freebsd CI_JOB_STAGE: test CI_JOB_STARTED_AT: "2024-12-11T14:30:46Z" CI_JOB_URL: https://gitlab.freedesktop.org/bl4ckb0ne/wlroots/-/jobs/68049893 CI_NODE_TOTAL: "1" CI_OPEN_MERGE_REQUESTS: wlroots/wlroots!4906 CI_PAGES_DOMAIN: pages.freedesktop.org CI_PAGES_URL: https://bl4ckb0ne.pages.freedesktop.org/wlroots CI_PIPELINE_CREATED_AT: "2024-12-11T14:30:19Z" CI_PIPELINE_ID: "1327891" CI_PIPELINE_IID: "277" CI_PIPELINE_NAME: "" CI_PIPELINE_SOURCE: push CI_PIPELINE_URL: https://gitlab.freedesktop.org/bl4ckb0ne/wlroots/-/pipelines/1327891 CI_PROJECT_CLASSIFICATION_LABEL: "" CI_PROJECT_DESCRIPTION: A modular Wayland compositor library CI_PROJECT_ID: "12159" CI_PROJECT_NAME: wlroots CI_PROJECT_NAMESPACE: bl4ckb0ne CI_PROJECT_NAMESPACE_ID: "10077" CI_PROJECT_PATH: bl4ckb0ne/wlroots CI_PROJECT_PATH_SLUG: bl4ckb0ne-wlroots CI_PROJECT_REPOSITORY_LANGUAGES: c,meson,glsl,makefile,shell CI_PROJECT_ROOT_NAMESPACE: bl4ckb0ne CI_PROJECT_TITLE: wlroots CI_PROJECT_URL: https://gitlab.freedesktop.org/bl4ckb0ne/wlroots CI_PROJECT_VISIBILITY: public CI_REGISTRY: registry.freedesktop.org CI_REGISTRY_USER: gitlab-ci-token CI_RUNNER_DESCRIPTION: dalligi SourceHut bridge CI_RUNNER_ID: "2241" CI_RUNNER_TAGS: '["dalligi"]' CI_SERVER_FQDN: gitlab.freedesktop.org CI_SERVER_HOST: gitlab.freedesktop.org CI_SERVER_NAME: GitLab CI_SERVER_PORT: "443" CI_SERVER_PROTOCOL: https CI_SERVER_REVISION: 8a31863db02 CI_SERVER_SHELL_SSH_HOST: gitlab.freedesktop.org CI_SERVER_SHELL_SSH_PORT: "22" CI_SERVER_URL: https://gitlab.freedesktop.org CI_SERVER_VERSION: 17.6.1 CI_SERVER_VERSION_MAJOR: "17" CI_SERVER_VERSION_MINOR: "6" CI_SERVER_VERSION_PATCH: "1" CI_TEMPLATE_REGISTRY_HOST: registry.gitlab.com GITLAB_CI: "true" GITLAB_FEATURES: "" GITLAB_USER_EMAIL: simon@bl4ckb0ne.ca GITLAB_USER_ID: "9835" GITLAB_USER_LOGIN: bl4ckb0ne GITLAB_USER_NAME: Simon Zeni image: freebsd/latest packages: - devel/evdev-proto - devel/libudev-devd - devel/meson - devel/pkgconf - graphics/glslang - graphics/lcms2 - graphics/libdrm - graphics/libliftoff - graphics/mesa-libs - graphics/vulkan-headers - graphics/vulkan-loader - graphics/wayland - graphics/wayland-protocols - x11/libinput - x11/libxcb - x11/libxkbcommon - x11/pixman - x11/xcb-util-errors - x11/xcb-util-renderutil - x11/xcb-util-wm - x11-servers/xwayland - sysutils/libdisplay-info - sysutils/seatd - gmake - hwdata sources: - https://gitlab-ci-token:glcbt-64_sgAtffFU29QySwsjvVrL@gitlab.freedesktop.org/bl4ckb0ne/wlroots.git#0c437f6e988d97f459841364c9be59b79884fee4 tasks: - wlroots: | cd wlroots meson setup build --fatal-meson-warnings -Dauto_features=enabled ninja -C build sudo ninja -C build install - tinywl: | cd wlroots/tinywl gmake