> On Feb. 25, 2016, 8:26 a.m., Martin Gräßlin wrote:
> > I don't like the introduction of the SCRAPBOOK. The repository is not the 
> > place for dead and old code. That's what git already supports with keeping 
> > the whole history.
> > 
> > We have some autotests for kwindowsystem. Could you try whether the tests 
> > work also on OSX?
> 
> René J.V. Bertin wrote:
>     I agree to a certain extent. Git's history feature isn't exactly 
> comparable to a history book in which you can go look around to see if at 
> some point maybe someone contributed some code that was never finished. At 
> the very least you'd need to leave comments in the code that "here used to be 
> some junk DNA that maybe could have led to a whole better world" (and in that 
> case, why not just leave in the code #ifdeffed-out ...)
>     
>     As to the autotests: they're built only when `X11_FOUND`. Are you in fact 
> asking me to port them?
> 
> Martin Gräßlin wrote:
>     > At the very least you'd need to leave comments in the code that "here 
> used to be some junk DNA that maybe could have led to a whole better world" 
> (and in that case, why not just leave in the code #ifdeffed-out ...)
>     
>     eh no, we are not StarOffice. We have a version control system. No need 
> to reference old code.
>     
>     > they're built only when X11_FOUND. Are you in fact asking me to port 
> them?
>     
>     No, of course not. There are some which might not be X11 specific. E.g. 
> kwindowsystem_threadtest.cpp. It would be good to know which ones can work on 
> OSX
> 
> René J.V. Bertin wrote:
>     I'll see for the autotests.
>     
>     My point is that you cannot expect that a future developer will study the 
> old commit diffs to check if maybe they contained latent/experimental code 
> that implemented an idea s/he was planning to test.
>     The experimental code I've moved is exactly of that nature; it aimed to 
> implement a mechanism by which a table would be maintained of all windows 
> belonging to all running applications. You pointed out correctly that it 
> wouldn't compile and on my end I am not sure whether such a feature would 
> actually be useful (never got feedback on the question I asked about that). 
> So yeah, when the idea of cleaning out inactive code came up and you didn't 
> seem adverse to the idea of keeping code snippets in another place for future 
> reference I came up with the SCRAPBOOK idea.
>     Apparently I should have left in the code until I got the green light, 
> and then remove it in an additional commit that does only that, with a 
> sufficiently detailed commit message that the revision history could actually 
> be of some real help here. I can't say I feel like moving all that code back 
> to where it came from, so if you don't want the SCRAPBOOK file I guess it'll 
> just do down the drain.

Re: kwindowsystem_threadtest : that's the only one that doesn't require 
rewriting outside of the autotests CMake file. And it confirms a fear I had: 
there currently is no such thing as an internal list of owned windows, despite 
some efforts to maintain internal structures that allow to return something 
useful in certain situations (that I'll really need to look into again).
Maintaining such a list of windows feels a bit like a chicken-and-egg problem; 
can I rely on a Qt signal or do I need to use a lower-level API. The fact that 
most Qt/KDE applications do not have a Window menu like most Cocoa applications 
do 
(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/WinPanel/Tasks/UsingWindowsMenu.html)
 may be an indication that Qt does something peculiar.

Anyway, supposing I'm going to sit down and try to come up with a mechanism to 
maintain a list of the running app's open windows (`WId`s). Can I presume that 
the list will be created (= plugin loaded) when there are no windows yet, 
meaning I only have to listen to window creation events? Or will I need to 
fetch the current list, add that, and then listen for window open events? I 
know how to go from a `WId` to the underlying Cocoa instance, but the other way 
round may be quite a bit more tricky.


- René J.V.


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126291/#review92753
-----------------------------------------------------------


On Feb. 23, 2016, 10:54 p.m., René J.V. Bertin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/126291/
> -----------------------------------------------------------
> 
> (Updated Feb. 23, 2016, 10:54 p.m.)
> 
> 
> Review request for KDE Software on Mac OS X and KDE Frameworks.
> 
> 
> Repository: kwindowsystem
> 
> 
> Description
> -------
> 
> KWindowSystem has been lacking a platform plugin for OS X. This RR presents a 
> "backport" of the modified KDE4 KWindowSystem implementation that has been 
> used in the MacPorts kdelibs4 port for the last 2 or 3 (or more) years.
> 
> I have made some initial steps to remove deprecated Carbon API calls, but 
> this is clearly a work in progress.
> 
> Open questions include
> - is there any justification to run an event handler (or Cocoa observer) to 
> keep track of running applications, possibly even listing all their open 
> windows?
> - is there any use for the Qt event listener framework (cf. the 
> NETEventFilter in the X11 plugin)? I haven't yet had time to try to figure 
> out what this "could be good for", and am very open to suggestions in this 
> departments.
> - one application for such an event filter would be a listener that catches 
> the opening and closing of all windows by the running process, and keeps 
> track of their `WId`s. A new method could then be added (to `KWindowInfo`?) 
> to distinguish `WId`s created by the running application from "foreign" ones 
> (useful also on Wayland and MS Windows).
> 
> `KWindowSystem::setMainWindow` should become a front for payload provided by 
> the plugins. I'll leave that to the regular/official maintainer(s) of this 
> framework.
> 
> This code could probably do with *lots* of comments; I'll try to add them as 
> questions about this or that bit of code arise.
> 
> 
> Diffs
> -----
> 
>   src/debug_p.h 5ef8996 
>   src/debug_p.cpp 72abfb7 
>   src/kwindowsystem.cpp 407a67d 
>   src/platforms/osx/CMakeLists.txt 4fc3347 
>   src/platforms/osx/SCRAPBOOK PRE-CREATION 
>   src/platforms/osx/cocoa.json PRE-CREATION 
>   src/platforms/osx/kkeyserver.cpp 3ddb921 
>   src/platforms/osx/kwindowinfo.cpp e8555bb 
>   src/platforms/osx/kwindowinfo.mm PRE-CREATION 
>   src/platforms/osx/kwindowinfo_mac_p.h c8f307e 
>   src/platforms/osx/kwindowinfo_p_cocoa.h PRE-CREATION 
>   src/platforms/osx/kwindowsystem.cpp 1758829 
>   src/platforms/osx/kwindowsystem_mac_p.h PRE-CREATION 
>   src/platforms/osx/kwindowsystem_macobjc.mm PRE-CREATION 
>   src/platforms/osx/kwindowsystem_p_cocoa.h PRE-CREATION 
>   src/platforms/osx/plugin.h PRE-CREATION 
>   src/platforms/osx/plugin.cpp PRE-CREATION 
> 
> Diff: https://git.reviewboard.kde.org/r/126291/diff/
> 
> 
> Testing
> -------
> 
> On OS X 10.9.5 with Qt 5.5.1 and frameworks 5.16.0 .
> 
> 
> Thanks,
> 
> René J.V. Bertin
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to