aboutsummaryrefslogtreecommitdiffhomepage
path: root/video/out/cocoa
Commit message (Collapse)AuthorAge
* cocoa: add border cyclingGravatar Akemi2017-01-11
| | | | Fixes #2430
* cocoa: fix build on OS X 10.9Gravatar Akemi2016-12-26
| | | | fixes #3946
* cocoa: cosmetic fixesGravatar Akemi2016-12-16
|
* cocoa: fullscreen refactoringGravatar Akemi2016-12-15
| | | | | | | | | | this replaces the old fullscreen with the native macOS fullscreen. additional the --fs-black-out-screens was removed since the new API doesn't support it in a way the old one did. it can possibly be re-added if done manually. Fixes #2857 #3272 #1352 #2062 #3864
* cocoa: fix dropping of certain urls on the windowGravatar Akemi2016-12-14
| | | | | | the 'path' of an youtube url (youtube.com/watch?v=x) would just be '/watch'. obviously this fails to load.
* cocoa: fix display refresh rate retrieval on multi monitor setupsGravatar Akemi2016-06-18
| | | | | | | | | | | | | | | | | | 1. this basically reverts commit de4c74e5a4a996e8ff431c8f33a32c4b580be203. even with CVDisplayLinkCreateWithActiveCGDisplays and CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext we still have to explicitly set the current display ID, otherwise it will just always choose the display with the lowest refresh rate. another weird thing is, we still have to set the display ID another time with CVDisplayLinkSetCurrentCGDisplay after the link was started. otherwise the display period is 0 and the fallback will be used. if we ever use the callback method for something useful it's probably better to use CVDisplayLinkCreateWithActiveCGDisplays since we will need to keep the display link around instead of releasing it at the end. in that case we have to call CVDisplayLinkSetCurrentCGDisplay two times, once before and once after LinkStart. 2. add windowDidChangeScreen delegate to update the display refresh rate when mpv is moved to a different screen.
* os x: handle multiple dropped files on the windowGravatar Nyx0uf2016-04-30
| | | | | | Should fix #3076 (partially). Signed-off-by: wm4 <wm4@nowhere>
* cocoa: support the "window-minimized" propertyGravatar Jaime Marquínez Ferrándiz2015-03-08
| | | | Signed-off-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
* cocoa: fix autohide in fullscreenGravatar Stefano Pigozzi2015-03-08
|
* cocoa: fix mouse hiding with launchpad and dock foldersGravatar Stefano Pigozzi2015-03-08
| | | | | | | | | | | | Some UI elements in OS X – like Launchpad and Dock folders – are implemented using borderless windows in background demonized applications. When we use these elements, mpv doesn't stop to be the active application, but the mpv window leaves keyWindow state while we use the OS controls. This commit just keeps track of window state to update the cursor visibility accordingly. Fixes #513
* cocoa: clamp mouse position to window.Gravatar torque2015-03-07
| | | | | Prevents out-of-window coordinates being reported for mouse coordinates. Previously they could be out-of-window coordinates on init or on resize.
* cocoa: update mouse coordinates when window is initialized.Gravatar torque2015-03-07
| | | | | | Make MpvEventsView -signalMousePosition a public method so it can be called without a compiler warning. Previously, the mouse position would be reported as (0,0) until the cursor was moved.
* input: add MOUSE_ENTER keybinding.Gravatar torque2015-02-18
| | | | Signed-off-by: wm4 <wm4@nowhere>
* cocoa: fix build on 10.9Gravatar Stefano Pigozzi2015-01-02
| | | | Use -isInFullScreenMode instead of the property introduced with the 10.10 SDK.
* cocoa: fix NSMapGet errorGravatar Stefano Pigozzi2015-01-02
| | | | regression from 64b6b2ea45
* cocoa: fix uninitialization while in fullscreenGravatar Stefano Pigozzi2015-01-01
| | | | | | | | This is only needed for switching video track with `_`, since Cocoa automatically handles cleaning up the application's presentation options when quitting the process. Fixes #1399
* cocoa: allow to black out other display when going fsGravatar Stefano Pigozzi2014-12-01
| | | fixes #1302
* cocoa: reintroduce async resizeGravatar Stefano Pigozzi2014-10-18
| | | | | | | After removing synchronous libdispatch calls, this looks like it doesn't deadlock anymore. I also experimented with pthread_mutex_trylock liek wm4 suggested, but it leads to some annoying black flickering. I will fallback to that only if some new deadlocks are discovered.
* cocoa: allow mouse events to bubble up with no-input-cursorGravatar Stefano Pigozzi2014-10-17
| | | | | Previously we didn't report events to the core, but still prevented the events to travel on the responder chain.
* libmpv/cocoa: allow clients to use mpv event systemGravatar Stefano Pigozzi2014-10-12
| | | | | | | | | | This allows mpv's view to take key and send events to mpv's core. To set key status correctly, clients must call -[NSWindow selectNextKeyView:] during reconfig on the main thread. All is 'documented' in the cocoabasic example. If someone knows a better way to handle giving key to the embedded view, let me know!
* cocoa: remove usage of Objective-C categoriesGravatar Stefano Pigozzi2014-10-12
| | | | | Objective-C categories need special linker flags from the user when statically linking (-ObjC LDFLAG), so make everyone's life simpler and remove them.
* cocoa: post keydown and keyup events without event monitorGravatar Stefano Pigozzi2014-10-09
| | | | | Our code worked under the assumption that the event monitor is always active and we did remove the keydown and keyup overrides from our cocoa view.
* cocoa: allow to embed into an arbitrary NSViewGravatar Stefano Pigozzi2014-10-08
| | | | | Basically add if guards on all the problematic features. I'm still thinking about a better way to handle this, but for the time being, this will do.
* cocoa: fix mouse autohideGravatar Stefano Pigozzi2014-10-05
| | | | broken in 547b62f
* cocoa: remove a debug commentoGravatar Stefano Pigozzi2014-10-05
| | | | fixup previous commit
* cocoa: separate video view and events viewGravatar Stefano Pigozzi2014-10-05
|
* cocoa: remove --fs-missioncontrolGravatar Stefano Pigozzi2014-10-05
| | | | | | | This is the first of a series of commits that will change the Cocoa way in a way that is easily embeddable inside parent views. To reach that point common code must avoid referencing the parent NSWindow since that could be the host application's window.
* cocoa/libmpv: allow to embed mpv GL view in another windowGravatar Stefano Pigozzi2014-10-05
| | | | | | | | | | | | | | | | | | | This is just temporary code but is a good base for future work (and baby steps are required for these changes). The 'final destination' is embedding the video view into any NSView but that requires some more work (the mechanism will be the same: pass the view's pointer casted to int64_t through -wid). For instance we will need to remove as much usage of the window instance as possible, and use nil guards where not possible. For this reason I will remove stuff like the mission control fullscreen feature (it's a cute feature but annoying to support and quite limited, go make your GUIs), and a way to lookup the current screen directly from the NSView absolute coordinates (this is needed for ICC detection mostly, and reporting back the screen to mpv's core). Moreover the current view.m will need to be separated into 2 views: the actual video view that will be embedded, and a parent view that will not be embedded and will be responsibile for tracking events.
* cocoa: only call resize for view changing frameGravatar Stefano Pigozzi2014-10-04
|
* cocoa: remove pointless drawRectGravatar Stefano Pigozzi2014-10-04
| | | | | | Apparently it causes deadlocks, and at the moment it does nothing. Fixes #778
* cocoa: move to a simpler threading modelGravatar Stefano Pigozzi2014-10-04
| | | | | | | | | | | | | | Unfortunately using dispatch_sync for synchronization turned out to be really bad for us. It caused a wide array of race conditions, deadlocks, etc. Moving to a very simple mutex. It's not clear to me how to do liveresizing with this, for now it just flickers with is unacceptable (maybe I'll draw black instead). This should fix all the threading cocoa bugs. Reopen if it's not the case! Fixes #751 Fixes #1129
* cocoa: macosx_application needs cocoa-applicationGravatar FRAU KOUJIRO2014-08-06
|
* cocoa: use mainScreen as a fallback for window constrainingGravatar Stefano Pigozzi2014-04-28
|
* cocoa: disallow the titlebar to exit the visibleFrame on the bottom edgeGravatar Stefano Pigozzi2014-04-28
|
* cocoa: add constraints to prevent the window to exit the screenGravatar Stefano Pigozzi2014-04-28
| | | | | | | | Previously the window could be made to completly exit the screen with a combination or moving it close to an edge and halving it's size (via cmd+0). This commit address the problem in the most simple way possibile by constraining the window to the closest edge in these edge cases.
* cocoa: fix native fullscreenGravatar Ryan Goulden2014-04-28
| | | | | | | | | | | | | | | | | | | | | | | This fixes a couple of issues with the Cocoa `--native-fs` mode, primarily: - A ghost titlebar at the top of the screen in full screen: This was caused by the window constraining code kicking in during fullscreen. Simply returning the unconstrained rect from the constraining method fixes the problem. - Incorrect behavior when using the titlebar buttons to enter/exit fullscreen, as opposed to the OSD button. This was caused by mpv's internal fullscreen state going out of sync with the NSWindow's one. This was the case because `toggleFullScreen:` completely bypassed the normal event flow that mpv expects. Signed-off-by: Ryan Goulden <percontation@gmail.com> Change style for mpv, simplify and refactor some of the constraining code. Signed-off-by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
* vo_opengl, cocoa: allow to autoselect a color profileGravatar Stefano Pigozzi2014-03-31
| | | | | | | | | | | | | This commit adds support for automatic selection of color profiles based on the display where mpv is initialized, and automatically changes the color profile when display is changed or the profile itself is changed from System Preferences. @UliZappe was responsible with the testing and implementation of a lot of this commit, including the original implementation of `cocoa_get_icc_profile_path` (See #594). Fixes #594
* cocoa: remove dead codeGravatar Stefano Pigozzi2014-01-21
| | | | This became dead code in commit 3f594c2e.
* cocoa: allow to drag and drop URLsGravatar Nyx0uf2014-01-10
| | | | | | | This commit also improves the visual feedback to the user by showing a plus icon in the mouse cursor when dragging supported types. Fixes #469
* cocoa: handle files drag and drop on the player video viewGravatar Stefano Pigozzi2014-01-04
|
* Fix OSX build; remove all remaining mpvcore referencesGravatar 11rcombs2013-12-17
|
* cocoa: use window-scale to support video scaling functionalityGravatar Stefano Pigozzi2013-11-22
| | | | | In the cocoa backend you can use cmd+0/1/2 to scale the window. This commit makes it use the new window-scale functionality.
* cocoa: apply the more invasive constraining only with cmd+1/2/3Gravatar Stefano Pigozzi2013-10-28
| | | | | Regression from bc49957 Fixes #321
* cocoa: constraint the window position a little moreGravatar Stefano Pigozzi2013-10-25
| | | | | The intention of this is to not make the window go outside the screen when changing dimensions from 2x to .5x.
* cocoa: refactor precise scrolling to a separate methodGravatar Stefano Pigozzi2013-10-12
|
* cocoa: fix mouse wheel scrollingGravatar Mad Fish2013-10-12
|
* cocoa_common: check if the screen has a menubar in a more generic wayGravatar Stefano Pigozzi2013-10-09
| | | | Fixes #274
* cocoa_common: add OS X 10.7 compatibility hacks includesGravatar Stefano Pigozzi2013-10-05
| | | | | I forgot these when I split the code. They will hopefully fix compilation on 10.7.
* cocoa_common: report pixels instead of points during mouse movementGravatar Stefano Pigozzi2013-09-28
| | | | | | | This fixes the position reporting on retina displays. Doesn't make any difference on normal displays where 1px = 1pt. Fixes: #260
* cocoa_common: split the code, refactoring and cleanupsGravatar Stefano Pigozzi2013-09-28
Split the code to several files. The GUI elements now each have they own files and private state. The original code was a mess to respect the retarded mplayer convention of having everything in a single file. This commit also seems to fix the long running bug of artifacts showing randomly when going fullscreen using nVidia GPUs.