OS X 10.9 issues
All  1-9  10-13

Previous
Next
 From:  Michael Gibson
6339.10 In reply to 6339.8 
Hi Will,

#2 is problematic because I think that XQuartz does not actually create NSWindows at all, when I looked into how it created windows before it seems to be creating low level CGWindow objects which NSWindow seems to be built on top of.

re: #3 I'd like to do that at some point using Qt but yes as you suspected there is quite a lot of Windows specific code in MoI currently for all sorts of things like process handling, threading, timers, event handling, etc... It will probably take quite a while before I'll be able to convert all of that to any different system, that's the main reason why I'm using WINE in the first place. I think I will do some investigation of this path in the MoI v4 timeframe but it's definitely not something that can just happen right now though.

#1 isn't actually a full solution itself either, because the magic mouse thing also sends scroll events (with a begin gesture event as well) when you move your finger on it like a scroll wheel and those ones need to be allowed through as a scroll wheel event rather than doing panning or rotating at all - previously this was detected by seeing that there were no active touches associated with the gesture.

It seems kind of odd that there isn't any proper API to just return the current active touch information.

Right now I guess I'll just wait and see if it's a bug that will hopefully get fixed in a future OS release.

Thanks for looking into it.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Will (ALTAIC)
6339.11 In reply to 6339.10 
Hi again Michael,

Indeed you appear to be correct about #2; I verified by injecting code into XQuartz and calling [[NSApplication sharedInstance] windows], which failed to list client application windows. From browsing XQuartz code, I did see NSWindow being used, though I'm not sure in what way. The NSEvents being captured seemed to not have valid NSWindow references, so it's pretty conclusive that it's doing something else for client windows.

The situation for #1 seems to be the same as when we first looked into this: there is no known way to get device information from an NSEvent. The hasPreciseScrollingDeltas member function will differentiate a regular scroll wheel from a trackpad scroll, but since the magic mouse uses a touch sensor, it is indistinguishable from an actual trackpad (other than the number of fingers touching, but even then, I believe the magic mouse allows two finger scrolling as well; not sure how many fingers are reported via touchesMatchingPhase since I don't have a magic mouse). It is possible Apple attaches IOHID device information to the NSEvent in the various data fields (data1, data2, userData, etc.), but it would be undocumented and I haven't looked into it.

It seems #3 would be the way to go, though it's been a long time since I've used cross-platform UI kits, so I don't have much to add. IIRC, QT requires licensing fees for commercial use. Also, I remember wxWindows/wxWidgets being pretty good, and it's development looks to be active, but nowadays there are a lot of competitors which may or may not be better.

It a real shame the OS X input API is in such bad shape. I had hoped that the iOS input API (which is nice) would replace the API in OS X 10.9, but sadly it didn't. Hopefully Apple will get it together for 10.10.

Cheers and happy holidays,
Will
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Will (ALTAIC)
6339.12 In reply to 6339.11 
FYI, I've reported the touchesMatchingPhase bug to Apple, rdar #15734852.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  Michael Gibson
6339.13 In reply to 6339.11 
Hi Will, thanks for reporting the touchesMatchingPhase to Apple to get it on their official bug list. Maybe that will help give it a better chance of getting fixed in a Mavericks update.

re:
> IIRC, QT requires licensing fees for commercial use.

This used to be the case prior to Qt4.5, but with the 4.5 release in 2009 they added an LGPL license that allowed commercial use of Qt without needing to purchase anything.


> Also, I remember wxWindows/wxWidgets being pretty good, and it's development looks to be
> active, but nowadays there are a lot of competitors which may or may not be better.

I evaluated wxWidgets back a while ago, but for my particular targeted use then of trying to use their WebKit integration I ran into an awful lot of instability in that particular area.

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
 
Show messages: All  1-9  10-13