Am 28.02.2011 um 16:55 schrieb Benedikt Iltisberger:

Hey Peter,

you are right.
AXUIElementPerformAction(windowElement, kAXIncrementAction); Has no effect. I also recognized that the AXRaise seems to be not exactly what i wanted. If I raise a window for the first time it works fine. If I raise other windows after that and try to raise the first window again it sometimes doesn't become the "frontMost" window. I guess I have an error in my understanding of AXRaise.

I was not able to reproduce this behaviour. Are you sure the AXWindow element is still valid when you call it again?


You are right. This is not a suitable solution. I was just happy to see that it could work.

The keys I inquire in CGWindowListCopyWindowInfo() are: kCGWindowOwnerPID and kCGWindowNumber (but kCGWindowNumber is totally pointless here because i cannot use it for accessibility api). I try to gather all windows which belong to the same ProcessID so the user can select one and set it front most (using AXRaise).

Cheers
Benedikt



Important to know you let the user select the window, maybe from a popup button? In this case, simply gather the AXTitle attributes for the application's kAXWindowsAttribute elements. Populate the popup button (or whatever you present to the user) with these. The selection will tell you which AXWindow to raise.

Representing AXTitle attributes to the user is presumably a lot more transparent than everthing CGWindowListCopyWindowInfo() is guaranteed to provide, since kCGWindowName is only an *Optional* Window List Key, and, as the docs say: "...(Note that few applications set the Quartz window name.)"

Cheers,
Peter

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to