Ken Thomases
47337ed14c
winemac: Make a file-scope variable static.
2013-08-01 11:42:32 +02:00
Charles Davis
05a68dbc55
winemac.drv: Also return the number of pixel formats if the caller didn't supply a PIXELFORMATDESCRIPTOR.
2013-07-27 12:14:46 -05: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
4f23821f08
winemac: Add registry setting to control setting display gamma ramp.
2013-07-09 10:28:43 +02:00
Ken Thomases
9e878cb92c
winemac: Add registry setting to disable vertical sync.
2013-07-02 10:07:57 +02:00
Ken Thomases
b7c7d09470
winemac: Add registry setting to control glFlush() skipping for single-buffer contexts and disable it by default.
2013-07-02 10:05:35 +02:00
Ken Thomases
967a49fcb2
winemac: Force swap interval to 0 for single-buffered contexts to avoid vsync'ed flushes.
2013-07-02 10:05:07 +02:00
Ken Thomases
d30705bdfe
winemac: Use screen color space for windows covered by OpenGL views.
2013-07-02 10:04:59 +02:00
Ken Thomases
941ce31adb
winemac: Fix ordering of windows owned by same owner when on inactive desktop space.
2013-06-28 11:40:55 +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
3c7bc8202c
winemac: Avoid overdriving single-buffered GL if possible; the system throttles us.
...
Use glFlushRenderAPPLE(), if available, instead of glFlush() calls less
than 1/60th of a second since the last.
2013-06-21 11:57:42 +02:00
Ken Thomases
a8efa5271b
winemac: Fix off-by-one errors when indexing into pixel_formats array with 1-based pixel format number.
2013-06-21 11:56:37 +02:00
Alexandre Julliard
410b728c7b
winemac.drv: Don't register IME classes before the dll is initialized.
2013-06-20 22:14:35 +02:00
Ken Thomases
153f3e27c4
winemac: Forcibly release mouse capture for clicks in Mac menu bar or app deactivation.
2013-06-20 11:31:25 +02:00
Ken Thomases
1d10457aee
winemac: Also activate if a window is ordered front shortly after tray icon clicked.
...
... in addition to if one is focused.
2013-06-20 11:30:16 +02:00
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
Alexandre Julliard
04ad06353d
user32: Move the common parts of ScrollDC into user32 and the null driver.
2013-04-19 16:16:16 +02:00
Francois Gouget
2baecad2c5
Assorted spelling fixes.
2013-04-18 19:13:16 +02:00
Ken Thomases
e7d5f329e5
winemac: Refactor WineApplication class to separate most logic into a controller class.
2013-04-16 12:10:36 +02:00
Ken Thomases
2e226b9ad8
winemac: Don't order the window on-screen in -[WineWindow adjustWindowLevel].
2013-04-11 12:06:41 +02:00
Ken Thomases
cba4bcb47f
winemac: Handle failure to get clipboard format name; don't use uninitialized buffer.
2013-04-09 11:25:05 +02:00
Ken Thomases
401b75e3e9
winemac: Scale large system tray icons down to fit status bar.
2013-04-05 11:59:12 +02:00
Ken Thomases
787a937ed8
winemac: Add debug tracing for queried icon size.
2013-04-05 11:59:03 +02:00
Ken Thomases
c2bbdc4b86
winemac: Clip surface drawn region to new visible rect on window resize.
...
This prevents stale drawing from being revealed if the window later grows.
2013-04-05 11:57:32 +02:00
Ken Thomases
f37153ac7d
winemac: Initialize window surface to Mac-standard window background color instead of black.
2013-04-05 11:57:13 +02:00
Ken Thomases
26a74c664d
winemac: Tell Cocoa to preserve our window content during live resizing.
2013-04-05 11:56:32 +02:00
Ken Thomases
fd1e187ac7
winemac: Handle a Cocoa quit request as a single-process session shutdown.
...
This lets programs ask the user to save documents, etc., and possibly cancel
the quit.
2013-04-04 12:16:31 +02:00
Ken Thomases
ca2d7140fb
winemac: Add a delivery limit to events.
...
Some events are application-wide, not specific to a thread. Such an event
needs to be broadcast to all GUI-attached threads because we don't know which
are handling events, but we don't want the event to be processed in each.
Often it should only be processed by the first to pull it from its queue.
2013-04-04 12:14:56 +02:00
Ken Thomases
1ee93853c2
winemac: Make macdrv_event structs heap-allocated and reference-counted.
2013-04-04 12:14:33 +02:00
Ken Thomases
b55d7aae10
winemac: Constify some macdrv_event pointer parameters.
2013-04-04 12:13:45 +02:00
Ken Thomases
5dac8a90cc
winemac: Drain the autorelease pool within loop in OnMainThread().
2013-04-04 12:13:38 +02:00
Ken Thomases
94dc91a45d
winemac: During live resize, force occasional redisplay due to spontaneous redrawing.
2013-04-02 12:47:27 +02:00
C.W. Betts
95daa45dbc
winemac: Implement getting and setting screen saver state on OS X.
2013-03-29 17:52:17 +01:00
Ken Thomases
a767ee99fa
winemac: Track drawn surface region to reduce black flicker for new or resized windows.
2013-03-29 17:17:22 +01:00
Ken Thomases
0e8b305023
winemac: Draw surface region rects separately instead of clipping one big draw.
2013-03-29 17:17:22 +01:00
Ken Thomases
f7406e74ae
winemac: Invalidate window shadow on every draw for transparent windows.
2013-03-29 17:17:22 +01:00
Ken Thomases
7ab76484c4
winemac: Add proper locking in macdrv_surface_set_region().
2013-03-29 17:17:22 +01:00
Ken Thomases
4fba2995b6
winemac: Don't override -[NSOpenGLContext clearDrawable], just use our own method.
2013-03-28 12:19:01 +01:00
Ken Thomases
5c8d6a0b93
winemac: Synthesize 8- and 16-bpp display modes if the system doesn't provide any.
...
macdrv_ChangeDisplaySettingsEx() ignores the requested bpp, anyway, so we
can report any values we think programs will want.
2013-03-28 12:18:51 +01:00
Ken Thomases
81d1bfd65d
winemac: Set the ordering of color modes explicitly to reduce chance of picking an odd one.
2013-03-27 20:12:28 +01:00
Ken Thomases
484cf761fc
winemac: Use kCGLPFANoRecovery for accelerated pixel formats in create_context().
2013-03-27 20:12:28 +01:00
Ken Thomases
4ec2809e73
winemac: Keep stable surface for layered windows using UpdateLayeredWindow().
2013-03-26 16:40:23 +01:00
Ken Thomases
678f086904
winemac: Support CFSTR_SHELLURLW (UniformResourceLocator) clipboard format, mapped to public.url.
2013-03-26 12:12:28 +01:00
Ken Thomases
36343f520b
winemac: Specify import and export functions explicitly in builtin_format_names[].
2013-03-26 12:12:26 +01:00
Ken Thomases
e633f79f61
winemac: Implement GetDeviceGammaRamp() and SetDeviceGammaRamp().
2013-03-26 12:07:03 +01:00
Ken Thomases
3158fd764d
winemac: Don't read an array at index -1 in debugstr_pf().
2013-03-25 14:09:25 +01:00
Ken Thomases
6ee486644a
winemac: Allow Command-[Shift-]Tab to switch apps even when the displays are captured.
2013-03-25 14:03:02 +01:00
Ken Thomases
9714e6ee63
winemac: Implement rudimentary support for system tray icons as Mac status items.
2013-03-25 14:02:56 +01:00
Ken Thomases
b1de532393
winemac: Set application Dock icon from first icon resource in process's .exe file.
2013-03-25 14:01:04 +01:00
Ken Thomases
462721a115
winemac: Move create_cgimage_from_icon_bitmaps() into new module, image.c.
2013-03-25 14:01:01 +01:00