Well, I was hoping for a bit more activity, guess I'll give it a go then.
Is the Linux implementation acceptable for us?
From what I've read in the previous discussion, the current implementation is pretty much the only way. We need a window and we need to hook into the window's event processing. One thing I'm not certain about is, whether the busy-waiting loop with sleep-calls is required. Can this be better solved with waiting for events?
For Linux, should we instead try to use the global vector of windows that already exist in the window class? And how do we get access to the event processing of the given window?
While this would allow us to reuse an existing window, I feel like it would require more work and I'm not sure if it's even possible.
To get access to the global vector, we'd somehow have to get access to the window class, which can be done by using friend, but then not every implementation needs that access.
Since the window in that list probably process their own events already, how do we get in the middle of that to check for the clipboard events? If there's a method, how can we ensure that our intervention doesn't a bad side-effect on the normal event processing?
For Windows, there's currently no window handle used, should the implementation be adapted to use a window handle? And how should the clipboard class get access to an active window handle?
I would like an implementation that uses a proper window handle, since a) this is what the MSDN requires and b) because other libraries do so as well. However, since using NULL seems to work as well, I'd be fine keeping the current implementation for now. If we ever run into weird behavior and/or figure out under want circumstances NULL doesn't cut it anymore, we can always try to find a different implementation, after all, the implementation shouldn't change the public API.
For Linux and Windows, what should happen if there's no active window available?
Since I'm fine with the current Linux implementation, such a scenario doesn't exist.
If we ever do decide to change the Windows implementation, I wonder if a hidden window/window handle is a thing on Windows?
I didn't review the PR yet, so I can't comment on the implementation. But that's not the goal of this thread anyway.
Well it's part of the goal of this thread. We have a (probably?) fixed API and now have a possible implementation. So on one hand we're still discussing some general concepts, on the other hand, we have a working implementation that we can discuss
Are there drawbacks of creating a hidden window? If there are none, I'd say it's good enough.
We're already creating hidden windows on Linux and it hasn't had a negative effect so far. Not sure however if a window that is isolated like the one in sf::Clipboard could have any drawbacks.