On Monday 13 February 2012 13:25:13 Timothy Pearson wrote:
Care to elaborate? I am willing to listen. Your original message was disregarded to some extent as you linked to changes that were made on purpose, and I usually expect people who claim something is wrong to make an attempt at stating *why( they think said something is wrong.
yes I know they are made on purpose, nevertheless they are wrong. It is quite common that developers not knowing a codebase do things incorrectly. I will now only elaborate on the two commits I outlined. In fact all commits I have seen so far would not pass a review request for KWin and as I mentioned there is at least one commit with the potential to prevent KWin from starting at all.
Let's start with 1f40ada: you modify the inline getter for keepAbove. This is not how KWin internally works to have window being as keep above. The proper method to go through is Client::setKeepAbove() which would also tell other interested parties that the window is in fact kept above. This method is quite important to use as it also takes care of putting the window into the correct layer of the stacking order. I think you solved that by hacking the stacking order.
The simplest way to achieve what you actually wanted would have been to make your "modal system notification" an override redirect window.
This would have caused the modal system notifications to lose their window handles/decorations and drag/resize abilities, unless I have been reading the FreeDesktop WM specifications incorrectly. Example: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html#id2528706
In the case you want them to have window decorations, yes override redirect does not work.
Still it's wrong what you did there :-) It's not how KWin works.
The second commit I pointed out was 9cc1e2c1: I think others already commented in my blog comments why this one is rather bad from a users point of view (introducing new config options without removing the obsoleted ones). But well the main issue from my point of view is that it modified an enum in a public header by not appending to the end, but in the middle. I think you can imagine what happens to 3rd party offerings compiled against the previous version.
We are not too concerned about ABI compatibility here, but since the requested change is so trivial I suppose I can push it through.
yes I noticed but that is quite severe as it can result in KWin no longer starting (not this commit but other ones). So you have to be aware of ABI compatibility or at least have to take care to not load incompatible libraries.
Anything else?
Sure, as I mentioned all commits would not pass review, hardly anyone is only close to correct. You are not a window manager developer - that's nothing bad. Hardly anyone is actually developing window managers. It took me more than a year to understand KWin. It is no surprise that you - given the amount of code you have to handle, are not able to properly develop it. Think about that we develop the window manager in a peer reviewed style and hardly any commit just enters the tree. Also we have hundreds of developers testing our code right from the day it enters master, have thousands of beta testers and much much more infrastructure to handle the development of critical code pathes.
That's why it would be important to switch to KWin. It would seriously improve the quality for your users and as it has been stated here more than once, that's what you care about :-)
Cheers Martin