mirror of
https://github.com/mpv-player/mpv
synced 2024-12-18 21:06:00 +00:00
9cb7f87b86
other Apps do the same as mpv and tap into the global event chain. events that are handled are not being propagated down the event chain. that can lead to mpv not getting any media key events anymore when they are held back by other Apps. we will just move mpv back to the top of the event list when mpv is refocused and is not at the top of the list any more. Fixes #4834
50 lines
1.3 KiB
Objective-C
50 lines
1.3 KiB
Objective-C
/*
|
|
* Cocoa Application Event Handling
|
|
*
|
|
* This file is part of mpv.
|
|
*
|
|
* mpv is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* mpv is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#import <Cocoa/Cocoa.h>
|
|
#import "ar/HIDRemote.h"
|
|
#include "osdep/macosx_events.h"
|
|
|
|
struct input_ctx;
|
|
|
|
@interface EventsResponder : NSObject <HIDRemoteDelegate>
|
|
|
|
+ (EventsResponder *)sharedInstance;
|
|
|
|
- (void)setInputContext:(struct input_ctx *)ctx;
|
|
|
|
- (void)setIsApplication:(BOOL)isApplication;
|
|
|
|
/// Blocks until inputContext is present.
|
|
- (void)waitForInputContext;
|
|
|
|
- (void)wakeup;
|
|
|
|
- (bool)queueCommand:(char *)cmd;
|
|
|
|
- (void)putKey:(int)keycode;
|
|
|
|
- (void)setHighestPriotityMediaKeysTap;
|
|
|
|
- (void)handleFilesArray:(NSArray *)files;
|
|
|
|
- (bool)processKeyEvent:(NSEvent *)event;
|
|
|
|
@end
|