Sunday, July 1, 2012

[Action Script] Underlying windows don't detect clicks through transparent Windows June,2012

Users report that on OSX 10.6.8 clicks are not passed through the invisible window of my AIR application.

The application (Prioritizer) works fine on Windows and on my own MacBook but has a problem on some OSX 10.6.8 installations.

Prioritizer is a sticky notes-like app for creating an overview of projects, like a skin over your desktop wallpaper. Because it's meant to be always running, it should only show in the system tray (when on Windows) and not in the taskbar. The result is that you see little boxes with the titles of your projects alongside items on your desktop. Of course, clicking next to the projects, where desktop icons (or underlying windows) visible, should activate these windows/icons. This doesn't happen on the MacBooks of some of my users!

On my Windows laptop and my test MacBook the behavior is just as expected, under all OSX versions I tried: 10.5, 10.6, 10.6.8 and 10.7. On the users' MacBooks with OSX 10.6.8 I can reproduce the problem myself.

I have no idea if this is something I can fix, as it seems to have something to do with the permissions are granted to AIR by OSX... What do you think?

I also posted this issue on stackexchange, but so far nobody has replied even after a week. I hope over here somebody has a clue!

This is the code I wrote to make a maximized window without system chrome. I close the default window and create a new one (called trayedWindow):

ActionScript Code: function createTrayedWindow():void{        var nativeWindowOptions:NativeWindowInitOptions = new NativeWindowInitOptions();        nativeWindowOptions.type = NativeWindowType.UTILITY;        nativeWindowOptions.systemChrome = NativeWindowSystemChrome.NONE;        nativeWindowOptions.transparent = true;        trayedWindow = new NativeWindow(nativeWindowOptions);        trayedWindow.stage.align = "TL";        trayedWindow.stage.scaleMode = "noScale";                   trayedWindow.title = "Prioritizer";        trayedWindow.visible = false;        initializeInterface();    }On getprioritizer.com there are screenshots of the application which may clarify what I mean.
Underlying windows don't detect clicks through transparent Windows

Related Post



0 comments: