Commit Graph

118 Commits

Author SHA1 Message Date
Ken Thomases dd59ab26fe winemac: Only update window minimized state when it has changed from what processed events told us it was.
This fixes a problem where windows could spontaneously re-minimize after
being unminimized.  Cocoa would see the window unminimize.  It would queue
a WINDOW_DID_UNMINIMIZE event.  While that event was pending, Wine might do
something which caused set_cocoa_window_properties() to be called and tell
Cocoa to conform itself to the current Win32 state.  The current Win32 state
still had the window minimized, so Cocoa would re-minimize the window.  It
would even discard the WINDOW_DID_UNMINIMIZE event.
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 6bae7cf796 winemac: Implement support for global hot keys.
Partially based on a patch for winex11 previously submitted by Vincent Povirk.
2013-09-27 10:41:05 +02:00
Ken Thomases 4ad9d5f04a winemac: Send WM_ENTER/EXITSIZEMOVE messages at start/end of a resizing operation. 2013-09-18 22:23:09 +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 7ed00f6d97 winemac: Add support for mouse-move and right- and middle-click events on systray icons in the Mac status bar. 2013-09-06 11:59:13 +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 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
Aric Stewart c6d307533b macdrv: Rework the way we handle cursor position and composition text. 2013-05-30 20:19:34 +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 939d9a906f winemac: Improve positioning of input method candidate window. 2013-05-17 12:14:51 +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 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 f37153ac7d winemac: Initialize window surface to Mac-standard window background color instead of black. 2013-04-05 11:57:13 +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 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 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 7993bd3d90 winemac: Implement support for drag-and-drop. 2013-03-14 12:03:32 +01:00
Ken Thomases 4ae5b106f8 winemac: Enable pasteboard functions to operate on arbitrary pasteboards.
... not just the general pasteboard (although the general pasteboard is
still the default).
2013-03-14 12:02:36 +01:00
Ken Thomases 449e2655c2 winemac: Add support for delay-rendered (a.k.a. promised) clipboard data. 2013-03-11 10:53:38 +01:00
Ken Thomases 69e631e04e winemac: Add support for "query" events which wait for synchronous responses. 2013-03-11 10:53:32 +01:00
Ken Thomases bf824ed38c winemac: Implement setting of clipboard data with support for text formats. 2013-03-11 10:53:26 +01:00
Ken Thomases 764a8edb09 winemac: Implement GetClipboardData() with support for text formats. 2013-03-11 10:53:21 +01:00
Ken Thomases 6b2b3e69f7 winemac: Implement CountClipboardFormats() with support for text formats. 2013-03-11 10:52:59 +01:00
Ken Thomases 3f3ee6393d winemac: Implement OpenGL support. 2013-03-06 12:56:12 +01:00
Ken Thomases 9b0fdc645f winemac: Implement ClipCursor(). 2013-02-25 10:40:39 +01:00
Ken Thomases 5c933c89ad winemac: Implement SetCursorPos(). 2013-02-25 10:40:39 +01:00
Ken Thomases 38f7a4d518 winemac: Implement GetCursorPos(). 2013-02-25 10:40:38 +01:00
Ken Thomases a49df4b317 winemac: Implement SetCursor() and DestroyCursorIcon(). 2013-02-25 10:40:37 +01:00
Ken Thomases d26a6bf451 winemac: Implement ChangeDisplaySettingsEx(). 2013-02-18 10:35:46 +01:00
Ken Thomases bc75a9baff winemac: Implement DISPLAYS_CHANGED event for when display configuration has changed. 2013-02-18 10:34:55 +01:00
Ken Thomases 3748c39308 winemac: Implement MOUSE_SCROLL events. 2013-02-11 11:46:10 +01:00
Ken Thomases 572324bae3 winemac: Implement MOUSE_MOVED(_ABSOLUTE) events. 2013-02-07 12:04:49 +01:00
Ken Thomases 3fcb69b7ca winemac: Implement Beep(). 2013-02-06 20:28:28 +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 d0e1a02515 winemac: Rebuild key map when Mac keyboard layout changes. 2013-02-05 11:06:27 +01:00
Ken Thomases b78eee3172 winemac: Build a map from Mac virtual key codes to Win32 vkeys and scan codes based on Mac keyboard layout. 2013-02-05 11:06:02 +01:00
Ken Thomases 8a0c8d9264 winemac: Implement support for minimizing windows. 2013-02-05 11:05:23 +01:00
Ken Thomases b564d97229 winemac: Implement an APP_DEACTIVATED event. 2013-01-28 14:03:51 +01:00
Ken Thomases 3c5973139f winemac: Implement a WINDOW_LOST_FOCUS event. 2013-01-28 14:03:45 +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 bd269786a5 winemac: Implement a MOUSE_BUTTON event for mouse clicks. 2013-01-28 14:02:45 +01:00
Ken Thomases a22be47fcf winemac: Add infrastructure to convert from Cocoa event time to Wine tick count. 2013-01-28 14:02:08 +01:00
Ken Thomases 6e59740e18 winemac: Implement WINDOW_FRAME_CHANGED event to tell Wine when window is moved or resized. 2013-01-28 14:00:49 +01:00
Ken Thomases ed367c504d winemac: Implement a WINDOW_CLOSE_REQUESTED event to allow closing windows. 2013-01-21 12:51:19 +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 3c995bb682 winemac: Add WineEventQueue class for conveying events from Cocoa to Wine threads. 2013-01-21 12:51:17 +01:00
Ken Thomases b6d902ee46 winemac: Add a simple ERR() logging macro that can be used from Cocoa code. 2013-01-21 12:51:16 +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 15d4b2ab51 winemac: Translate presence in Windows task bar to participation in Exposé and window cycling. 2013-01-11 18:14:08 +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
Ken Thomases 35319684d3 winemac: Convert main thread to Cocoa main loop on process attach. 2013-01-09 17:39:37 +01:00
Ken Thomases 21c4fc3326 winemac.drv: Implement EnumDisplayMonitors. 2012-12-26 18:23:03 +01:00