gecko-dev/widget/cocoa/nsToolkit.h
Haik Aftandilian 14a6956635 Bug 1563994 - [10.15] Right Click When Not Focused Presents "Keystroke Receiving" Access Grant Request Dialog r=mstange
Use addGlobalMonitorForEventsMatchingMask instead of CGEventTapCreate to monitor for mouse clicks outside of the application while context menus are displayed.

Using addGlobalMonitorForEventsMatchingMask prevents the display of the privacy "Keystroke Receiving" dialog when listening for mouse clicks.

Differential Revision: https://phabricator.services.mozilla.com/D39973

--HG--
extra : moz-landing-system : lando
2019-07-31 01:03:49 +00:00

50 lines
1.2 KiB
Objective-C

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef nsToolkit_h_
#define nsToolkit_h_
#include "nscore.h"
#import <Carbon/Carbon.h>
#import <Cocoa/Cocoa.h>
#import <objc/Object.h>
#import <IOKit/IOKitLib.h>
class nsToolkit {
public:
nsToolkit();
virtual ~nsToolkit();
static nsToolkit* GetToolkit();
static void Shutdown() {
delete gToolkit;
gToolkit = nullptr;
}
static void PostSleepWakeNotification(const char* aNotification);
static nsresult SwizzleMethods(Class aClass, SEL orgMethod, SEL posedMethod,
bool classMethods = false);
void MonitorAllProcessMouseEvents();
void StopMonitoringAllProcessMouseEvents();
protected:
nsresult RegisterForSleepWakeNotifications();
void RemoveSleepWakeNotifications();
protected:
static nsToolkit* gToolkit;
CFRunLoopSourceRef mSleepWakeNotificationRLS;
io_object_t mPowerNotifier;
id mAllProcessMouseMonitor;
};
#endif // nsToolkit_h_