Commit Graph

185 Commits

Author SHA1 Message Date
Ken Thomases 92a67d4259 winemac: Don't complain that WM_MACDRV_ACTIVATE_ON_FOLLOWING_FOCUS is unrecognized. 2013-06-20 11:29:58 +02:00
Ken Thomases 300b231107 winemac: Cope with apps which return multiple DROPEFFECTs from IDropTarget::DragEnter() and DragOver(). 2013-06-18 13:16:23 +02:00
Ken Thomases f035cc73d0 winemac: Don't give windows focus on click if the click was sent to Wine.
Only clicks on the title bar (outside the close or minimize buttons) or the
grow box give windows focus.
2013-06-18 12:57:44 +02:00
Ken Thomases 3faf1a92b0 winemac: Don't bring disabled or no-activate windows forward when clicked. 2013-06-18 12:57:43 +02:00
Ken Thomases d22ac28f5e winemac: Allow clicks on owned windows to reorder them relative to other owned windows of the same owner. 2013-06-07 11:59:02 +02:00
Ken Thomases f6924b9603 winemac: Honor requests to order owned windows relative to other owned windows of the same owner. 2013-06-07 11:58:59 +02:00
Ken Thomases b96b565514 winemac: Command-clicks shouldn't give windows focus. 2013-06-07 11:58:52 +02:00
Ken Thomases e635952459 winemac: Actually switch Win32 focus away from a window that has lost Cocoa focus. 2013-06-07 11:57:50 +02:00
Ken Thomases 220b8b7946 winemac: Add an option to capture the displays for full-screen windows in addition to display mode changes.
Under HKCU\Software\Wine\Mac Driver, set string value
CaptureDisplaysForFullscreen to "y" to enable the new behavior.
2013-06-07 11:57:06 +02:00
Ken Thomases a6dc4906de winemac: Ignore window frame changes while minimized but check again when unminimized. 2013-06-04 15:01:15 +02:00
Ken Thomases 62a1907c9e winemac: Make windows key after unminimizing, if allowed.
We generally prevent Cocoa from making our windows key (focused) so that
Wine can be in control.  However, after unminimizing, Wine believes the
window is already focused but Cocoa doesn't, so key presses just cause beeps.
2013-06-04 15:01:12 +02:00
Ken Thomases b15f412e14 winemac: Allow Cocoa to make minimized windows key; it will unminimize them as necessary. 2013-06-04 15:01:08 +02:00
Ken Thomases f010a930df winemac: Improve the debug tracing in macdrv_SetWindowStyle(). 2013-06-04 15:01:03 +02:00
Ken Thomases f57db8a3de winemac: Keep old window surface for minimized windows to allow redrawing.
This improves the animation of the window unminimizing from the Dock in some
cases.  The window would often be blank or, for shaped windows, invisible
during that animation.
2013-06-04 15:00:59 +02:00
Ken Thomases b285c5706e winemac: Defer minimizing hidden windows until they are shown.
Minimizing invisible windows causes weird phantoms to appear in
Exposé, the Window menu, and the Dock.
2013-06-04 15:00:54 +02:00
Ken Thomases 841f158d81 winemac: Don't accidentally unminimize a window when trying to change z-order. 2013-06-04 15:00:31 +02:00
Ken Thomases 4c651e39e4 winemac: Don't unminimize a window on first activation during start-up. 2013-06-04 15:00:28 +02:00
Aric Stewart c6d307533b macdrv: Rework the way we handle cursor position and composition text. 2013-05-30 20:19:34 +02:00
Ken Thomases d8269a0586 winemac: Add Hide, Hide Others, and Show All items to the application menu. 2013-05-29 19:49:42 +02:00
Ken Thomases c3d2e43060 winemac: By default, make full-screen windows not float when not the active app.
Added a registry setting to control the behavior: WindowsFloatWhenInactive
with possible values "none", "all, and "nonfullscreen" which is the default.
2013-05-29 19:49:40 +02:00
Ken Thomases c8d4b1cc5e winemac: Order front in -makeKeyAndOrderFront:; we only override to control key status.
When we have windows on two different spaces and the user switches between them by
clicking our Dock icon, Cocoa inexplicably sends the switched-to window to the
back of the z-order.  It's only -makeKeyAndOrderFront: that brings it forward
again, but our override broke that.
2013-05-17 16:36:40 +02:00
Ken Thomases ef874a8eaa winemac: Don't reorder windows if they're already ordered as requested.
This avoids adjusting window levels.  It also avoid unnecessarily deinterleaving
the windows of this and other processes.
2013-05-17 16:36:35 +02:00
Ken Thomases 7a047af640 winemac: In -setFrameIfOnScreen:, don't adjust window levels if fullscreen-ness didn't change. 2013-05-17 16:36:31 +02:00
Ken Thomases 94746f1d2d winemac: In -setFrameIfOnScreen:, avoid some work if the frame didn't change. 2013-05-17 16:36:28 +02:00
Ken Thomases 27510fae8e winemac: Centralize adjusting of window levels using the window server's z-order. 2013-05-17 16:36:24 +02:00
Ken Thomases 8343e7ce4d winemac: Set up window's latent parent-child relationship before ordering the window.
Making a window a child reorders it to be immediately above or below its parent,
potentially undoing the ordering we had just done.
2013-05-17 16:36:00 +02:00
Ken Thomases 0d4a26eff5 winemac: Use window server's window list to find next window to offer focus to.
... rather than our orderedWineWindows array, which is going away.
2013-05-17 16:35:54 +02:00
Ken Thomases 6d4098ebd3 winemac: Consider minimized windows as "on screen" for our purposes. 2013-05-17 16:35:48 +02:00
Ken Thomases c3183fc007 winemac: Implement simpler way to find front Wine window.
This uses Cocoa and the window server to track windows and their z-order,
which is more reliable than our own tracking.
2013-05-17 16:35:27 +02:00
Ken Thomases 05c250dfcb winemac: Always call super in -validateMenuItem:; fixes check mark in Windows menu. 2013-05-17 12:15:22 +02:00
Ken Thomases 939d9a906f winemac: Improve positioning of input method candidate window. 2013-05-17 12:14:51 +02:00
Ken Thomases 1ac1cd69ad winemac: Fix disabling of resizable windows. 2013-05-14 17:28:30 +02:00
Ken Thomases 08e940fb1d winemac: Unminimize a window on activation if there are only minimized windows. 2013-05-08 19:35:04 +02:00
Ken Thomases 1a697e15b9 winemac: Implement SetCapture(). 2013-05-07 11:20:32 +02:00
Ken Thomases 3eee56668a winemac: Mouse drags don't imply anything about z-order of target window because of implicit capture. 2013-05-07 11:20:11 +02:00
Ken Thomases 3e3d982185 winemac: Prefer absolute mouse moves unless cursor is pinned by clipping or desktop edges.
This fixes an issue with sub-pixel-precise pointing devices on Lion and later.
Wine's notion of the cursor position would get out of sync with the actual position
because deltas don't convey the actual movement distance.
2013-05-07 11:19:43 +02:00
Ken Thomases 1c4d8938ec winemac: Apply cursor clipping to events that were in Cocoa's queue when clipping started. 2013-05-07 11:19:37 +02:00
Ken Thomases d9ae2f3e38 winemac: Consolidate scroll wheel handling into -[WineApplicationController handleScrollWheel:]. 2013-05-07 11:19:33 +02:00
Ken Thomases e15b82ad1b winemac: Consolidate mouse button handling into -[WineApplicationController handleMouseButton:]. 2013-05-07 11:19:27 +02:00
Ken Thomases 72e893237c winemac: Consolidate mouse move handling into -[WineApplicationController handleMouseMove:]. 2013-05-07 11:19:21 +02:00
Ken Thomases 76691853f5 winemac: Extract application-level handling of mouse move events to a separate method. 2013-05-07 11:19:00 +02:00
Ken Thomases 3964f805cc winemac: Change some run-time asserts to compile-time. 2013-05-06 11:37:44 +02:00
Ken Thomases 7c808ddfbc winemac: Return 0 from ToUnicodeEx() for a key release. 2013-05-03 11:47:47 +02:00
Ken Thomases 51129752bc winemac: For SetCursorPos(), reset positions of pending mouse button and scroll events.
They are effectively deemed to have happened after the SetCursorPos().
2013-04-26 11:48:53 +02:00
Ken Thomases a6722029e5 winemac: Work around mouse "pausing" after CGWarpMouseCursorPosition(). 2013-04-26 11:48:36 +02:00
Ken Thomases a34168edaa winemac: Fix an off-by-one error in macdrv_wglChoosePixelFormatARB(). 2013-04-25 11:45:11 +02:00
Ken Thomases dfa2ba390d winemac: Improve logging from wglChoosePixelFormatARB() and wglGetPixelFormatAttribivARB(). 2013-04-25 11:45:07 +02:00
Ken Thomases 1c7a2ba33b winemac: If an app opens a window shortly after its systray icon is clicked, activate it.
The Mac driver doesn't normally steal focus, but a click on the systray icon
counts as the user giving permission.
2013-04-25 11:44:42 +02:00
Ken Thomases 192b8dbf9d winemac: Implement an IME that uses the OS X input methods.
Developed with Aric Stewart.
2013-04-22 12:37:50 +02:00
Ken Thomases 72be23270e winemac: Set up and drain autorelease pool in LogErrorv() so it's safe to call from background threads. 2013-04-22 12:37:50 +02:00