romangg added a comment.

  According to protocol the logical size and position events should only be send
  
  (i) on creation of an xdg_output object and
  (ii) when the size or position changed.
  
  There is currently no check in the server interface, if the size and position 
really changed when the compositor tries to send the event. Looking at the KWin 
patch, this is currently done sometimes when there has been no change.
  
  Maybe there should be a comparison of old and new value in KWayland to 
prohibit sending out events on unchanged values (this would mean saving the 
current values in `XdgOutputV1Interface::Private`).

INLINE COMMENTS

> xdgoutput_interface.cpp:83
> +    QSize size;
> +    bool done = false;
> +    QList<XdgOutputV1Interface*> resources;

This variable is only relevant until the compositor has sent for the first time 
the done event via `XdgOutputInterface::done()`. Afterwards it is always true. 
Is it meant this way? If yes, could we use another name making this fact more 
explicit, like: `doneOnce`?

On the other side what if a compositor never sends the done event via 
`XdgOutputInterface::done()` because the xdg output never changes its logical 
size or position after the compositor publishes the xdg output to clients and 
it expects clients to receive the current values on connecting to the resource?

REPOSITORY
  R127 KWayland

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

To: davidedmundson, romangg
Cc: #frameworks, michaelh, bruns

Reply via email to