D27861: WIP: Rework xdg-shell implementation

David Edmundson noreply at phabricator.kde.org
Tue May 12 11:56:16 BST 2020


davidedmundson added a comment.


  Generally very nice and tidy. Will be even more so once we remove PlasmaShellsurface.
  
  I have some  minor comments.
  
  I probably need to give it a second pass as it was quite overwhelming. Remember to drop the "WIP:" when ready

INLINE COMMENTS

> wayland_server.cpp:149
>  {
> -    if (!Workspace::self()) {
> -        // it's possible that a Surface gets created before Workspace is created
> -        return;
> +    if (client->readyForPainting()) {
> +        emit shellClientAdded(client);

This can never be true.
It's a protocol error on XDGShell to map before configure

> waylandxdgshellintegration.cpp:81
> +
> +void WaylandXdgShellIntegration::createClient(XdgSurfaceInterface *surface)
> +{

This method seems rather pointless. We are in specialisations for  registerXdgTopLevel / popup    then we call a generic method just to switch on whether it's a popup or a toplevel.

> xdgshellclient.cpp:116
>  {
> +    qDeleteAll(m_configureEvents);
> +}

We leak the m_lastAckedConfigure if someone calls ackConfigure and gets deleted before commit.

I'm guessing you didn't use unique_ptr because of the QQueue, but storing via a qsharedpointer would work nicely.

> xdgshellclient.cpp:1428
> +    connect(shellSurface, &PlasmaShellSurfaceInterface::panelBehaviorChanged, this, [this] {
> +        updateShowOnScreenEdge();
> +        workspace()->updateClientArea();

I can't see panelTakesFocusChanged.

I strongly suspect this will break Kai's reply notifications.

Arguably the event name doesn't match the usage, but this isn't the time and place for that.

REPOSITORY
  R108 KWin

REVISION DETAIL
  https://phabricator.kde.org/D27861

To: zzag, #kwin
Cc: anthonyfieroni, univerz, davidedmundson, kwin, Orage, cacarry, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, mkulinski, ragreen, jackyalcine, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, ahiemstra, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kwin/attachments/20200512/6c5001a6/attachment-0001.htm>


More information about the kwin mailing list