Ken Thomases
ae47323604
winemac: Track whether our windows would be visible if the process weren't hidden.
...
The -[NSWindow isVisible] method returns FALSE when the process is hidden,
but that's not what we need to know in some cases.
This fixes full-screen games which minimize their window when they lose
focus. Command-Tabbing away hides the process. Because the window was not
visible, the code didn't actually minimize it. When switching back to the
process, no event was sent to the Wine back-end telling it the window had
been restored, so it never resumed drawing to it.
2013-12-31 12:31:21 +01:00
Ken Thomases
66736b4ab3
winemac: Implement support for maximizing windows.
...
The user is prevented from moving or resizing a maximized window. The zoom
button is still present and enabled for a maximized window but requests that
it be restored rather than simply resizing it, which is what it does for
normal windows.
If a window is not resizable (lacks WS_THICKFRAME) but has a maximize box
(WS_MAXIMIZEBOX), then the zoom button requests that it be maximized rather
than resizing it.
2013-12-30 19:01:50 +01:00
Ken Thomases
3a03dcf097
winemac: Avoid moving owned windows when programmatically moving the owner.
...
Cocoa normally maintains the relative position of owned windows with respect
to the owner, which differs from Windows.
2013-11-15 12:00:12 +01:00
Ken Thomases
f4f50c9e4a
winemac: Implement support for Cocoa-style full-screen mode.
...
Based in large part on a patch submitted by Kevin Eaves.
2013-10-11 11:04:53 +02:00
Ken Thomases
c043587d56
winemac: Tell Wine when Cocoa has brought a window to the front.
2013-10-08 15:39:01 +02:00
Ken Thomases
54291ad3d1
winemac: Let Wine always drive window minimization; Cocoa just requests it.
2013-09-30 20:36:34 +02:00
Ken Thomases
d7f4d67514
winemac: Fix hiding windows that are minimized using -close instead of -orderOut:.
...
Cocoa won't order a minimized window out of the screen list using -orderOut:.
This leaves a window that should be hidden still visible in the Dock, where
it can be unminimized.
2013-09-27 10:39:13 +02:00
Ken Thomases
4e0e9ca84a
winemac: When programmatically focusing a window, don't generate WINDOW_LOST_FOCUS event for previously focused window.
...
That event can confuse things if the program switches focus from A to B and
then back to A and then processes events. It will get an event saying that
A lost focus in Cocoa, check that A does indeed have current focus in Wine,
and so switch focus away from it (to the desktop window). (It then gets an
event that B lost focus, but that does nothing at that point.)
2013-09-26 20:05:41 +02:00
Ken Thomases
a3197b8ad0
winemac: At the start of a resize operation, get window min/max size info and pass it to Cocoa.
2013-09-18 22:23:09 +02:00
Ken Thomases
84903c5db3
winemac: Track latent child windows (the inverse of the latent parent window relationship).
...
This allows the relationship to be restored when the window becomes eligible
again.
2013-08-30 11:18:35 +02:00
Ken Thomases
a39b02c3e7
winemac: Dispatch key-up events directly to window to be sure to get them.
...
For keys pressed in combination with Command, -[NSApplication sendEvent:]
simply doesn't pass the key-up event through to the window. We have to
track which keys we've told Wine are pressed because Cocoa may consume
key-downs that trigger menus or system behaviors.
2013-07-09 10:30:45 +02:00
Ken Thomases
a723af61ac
Revert "winemac: Dispatch key events directly to window to be sure to get key-up events.".
...
This reverts commit 0d20ac02f7
.
2013-07-09 10:30:43 +02:00
Ken Thomases
0d20ac02f7
winemac: Dispatch key events directly to window to be sure to get key-up events.
...
For keys pressed in combination with Command, -[NSApplication sendEvent:]
simply doesn't pass the key-up event through to the window.
2013-06-28 11:40:41 +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
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
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
27510fae8e
winemac: Centralize adjusting of window levels using the window server's z-order.
2013-05-17 16:36:24 +02:00
Ken Thomases
1ac1cd69ad
winemac: Fix disabling of resizable windows.
2013-05-14 17:28:30 +02:00
Ken Thomases
72e893237c
winemac: Consolidate mouse move handling into -[WineApplicationController handleMouseMove:].
2013-05-07 11:19:21 +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
94dc91a45d
winemac: During live resize, force occasional redisplay due to spontaneous redrawing.
2013-04-02 12:47:27 +02:00
Ken Thomases
0a56ef356a
winemac: Handle mouse moves in -[WineApplication sendEvent:] instead of WineWindow.
2013-02-25 10:40:38 +01:00
Ken Thomases
d26a6bf451
winemac: Implement ChangeDisplaySettingsEx().
2013-02-18 10:35:46 +01:00
Ken Thomases
be6af9a169
winemac: Implement support for full-screen windows.
2013-02-18 10:34:46 +01:00
Ken Thomases
572324bae3
winemac: Implement MOUSE_MOVED(_ABSOLUTE) events.
2013-02-07 12:04:49 +01:00
Ken Thomases
77de57683f
winemac: Generate KEY_PRESS/RELEASE events from Cocoa key events.
2013-02-05 11:06:43 +01:00
Ken Thomases
8a0c8d9264
winemac: Implement support for minimizing windows.
2013-02-05 11:05:23 +01:00
Ken Thomases
7863a230ec
winemac: Implement a WINDOW_GOT_FOCUS event for when Cocoa tries to focus a window.
2013-01-28 14:03:40 +01:00
Ken Thomases
6cde62ac18
winemac: Take control over when a window can become focused away from Cocoa.
2013-01-28 14:03:18 +01:00
Ken Thomases
177b67e6bd
winemac: Make each Mac driver window track the HWND it's associated with.
2013-01-21 12:51:18 +01:00
Ken Thomases
207c4d193f
winemac: Associate an event queue with each thread that creates windows and with each window.
2013-01-21 12:51:17 +01:00
Ken Thomases
c0d43fb51f
winemac: Implement layered windows: SetLayeredWindowAttributes() and UpdateLayeredWindow().
2013-01-15 12:17:02 +01:00
Ken Thomases
2d4bcc47be
winemac: Implement SetWindowRgn.
2013-01-15 12:16:52 +01:00
Ken Thomases
7d6ebfa742
winemac: Implement window surface rendering.
2013-01-15 12:16:44 +01:00
Ken Thomases
b6544d19dd
winemac: Implement support for owned windows.
2013-01-11 18:14:07 +01:00
Ken Thomases
429732ce1a
winemac: Implement support for WS_EX_TOPMOST windows.
2013-01-11 18:14:07 +01:00
Ken Thomases
9d29ea42e1
winemac: Implement support for no-activate windows.
2013-01-11 18:14:07 +01:00
Ken Thomases
064186e739
winemac: Implement support for WS_DISABLED windows.
2013-01-11 18:14:07 +01:00
Ken Thomases
8da2cb1698
winemac: Implement basic window functionality.
2013-01-09 17:39:38 +01:00