Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wallpaper protocols #230

Open
1 of 5 tasks
justforlxz opened this issue May 14, 2024 · 2 comments
Open
1 of 5 tasks

wallpaper protocols #230

justforlxz opened this issue May 14, 2024 · 2 comments

Comments

@justforlxz
Copy link
Member

justforlxz commented May 14, 2024

  • Add preview wallpaper function.
  • Add set wallpaper to lockscreen
  • Add set wallpaper to screen
  • Accepts parent_window as the client ID of the lookup caller
  • Set wallpaper color type / query for color type output

https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.Wallpaper.html

@zorowk
Copy link

zorowk commented May 28, 2024

this has been done
#258

there are two questions :

  1. treeland-wallpaper cannot use qApp->screens to get the correct output name
QWaylandScreen::QWaylandScreen(QWaylandDisplay *waylandDisplay, int version, uint32_t id)
    : QtWayland::wl_output(waylandDisplay->wl_registry(), id, qMin(version, 3))
    , m_outputId(id)
    , mWaylandDisplay(waylandDisplay)
    , mOutputName(QStringLiteral("Screen%1").arg(id))

now treeland-wallpaper run treeland evironment get output name is Screen25

the client does not execute initxdgoutput, normally the following stack should be called

1   QtWaylandClient::QWaylandScreen::initXdgOutput             qwaylandscreen.cpp 
2   QtWaylandClient::QWaylandScreen::QWaylandScreen            qwaylandscreen.cpp 
3   QtWaylandClient::QWaylandIntegration::createPlatformScreen qwaylandintegration.cpp 
4   QtWaylandClient::QWaylandDisplay::registry_global          qwaylanddisplay.cpp
5   QtWayland::wl_registry::handle_global                      qwayland-wayland.cpp
... <More>
  1. treeland call QuickPersonalizationManagerPrivate::loadWallpaperSettings() load all output background
    It will traverse qApp->screens() but this time QWlrootsIntegration::addScreen(WOutput *output) has not yet put the screen data into the qt container.

@zorowk
Copy link

zorowk commented May 28, 2024

f15e0ba this will solve treeland-wallpaper problem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants