Add IsSwipeTrackingFromScrollEventsEnabled in system prefs

This commit is contained in:
Anthony Tseng 2016-08-03 10:27:56 +08:00
parent beca2d26f3
commit e0c0e3e5f7
7 changed files with 17 additions and 18 deletions

View file

@ -58,6 +58,8 @@ void SystemPreferences::BuildPrototype(
.SetMethod("unsubscribeLocalNotification",
&SystemPreferences::UnsubscribeLocalNotification)
.SetMethod("getUserDefault", &SystemPreferences::GetUserDefault)
.SetMethod("isSwipeTrackingFromScrollEventsEnabled",
&SystemPreferences::IsSwipeTrackingFromScrollEventsEnabled)
#endif
.SetMethod("isDarkMode", &SystemPreferences::IsDarkMode);
}

View file

@ -40,6 +40,10 @@ class SystemPreferences : public mate::EventEmitter<SystemPreferences> {
void UnsubscribeLocalNotification(int request_id);
v8::Local<v8::Value> GetUserDefault(const std::string& name,
const std::string& type);
// On 10.7+, back and forward swipe gestures can be triggered using a scroll
// gesture, if enabled in System Preferences. This function returns true if
// the feature is supported and enabled, and false otherwise.
bool IsSwipeTrackingFromScrollEventsEnabled();
#endif
bool IsDarkMode();

View file

@ -11,6 +11,7 @@
#include "atom/browser/mac/dict_util.h"
#include "atom/common/native_mate_converters/value_converter.h"
#include "atom/common/native_mate_converters/gurl_converter.h"
#import "base/mac/sdk_forward_declarations.h"
#include "base/strings/sys_string_conversions.h"
#include "base/values.h"
#include "net/base/mac/url_conversions.h"
@ -122,6 +123,12 @@ bool SystemPreferences::IsDarkMode() {
return [mode isEqualToString:@"Dark"];
}
bool SystemPreferences::IsSwipeTrackingFromScrollEventsEnabled() {
SEL selector = @selector(isSwipeTrackingFromScrollEventsEnabled);
return [NSEvent respondsToSelector:selector]
&& [NSEvent performSelector:selector];
}
} // namespace api
} // namespace atom

View file

@ -10,7 +10,6 @@
#include "atom/common/color_util.h"
#include "atom/common/draggable_region.h"
#include "atom/common/options_switches.h"
#include "atom/common/platform_util.h"
#include "base/mac/mac_util.h"
#include "base/mac/scoped_cftyperef.h"
#include "base/strings/sys_string_conversions.h"
@ -578,9 +577,6 @@ NativeWindowMac::NativeWindowMac(
if (!web_contents)
return event;
if (!platform_util::IsSwipeTrackingFromScrollEventsEnabled())
return event;
if (!began && (([event phase] == NSEventPhaseMayBegin) ||
([event phase] == NSEventPhaseBegan))) {
this->NotifyWindowScrollTouchBegin();

View file

@ -42,13 +42,6 @@ bool MoveItemToTrash(const base::FilePath& full_path);
void Beep();
#if defined(OS_MACOSX)
// On 10.7+, back and forward swipe gestures can be triggered using a scroll
// gesture, if enabled in System Preferences. This function returns true if
// the feature is supported and enabled, and false otherwise.
bool IsSwipeTrackingFromScrollEventsEnabled();
#endif
} // namespace platform_util
#endif // ATOM_COMMON_PLATFORM_UTIL_H_

View file

@ -11,7 +11,6 @@
#include "base/files/file_util.h"
#include "base/logging.h"
#include "base/mac/mac_logging.h"
#import "base/mac/sdk_forward_declarations.h"
#include "base/mac/scoped_aedesc.h"
#include "base/strings/sys_string_conversions.h"
#include "net/base/mac/url_conversions.h"
@ -169,10 +168,4 @@ void Beep() {
NSBeep();
}
bool IsSwipeTrackingFromScrollEventsEnabled() {
SEL selector = @selector(isSwipeTrackingFromScrollEventsEnabled);
return [NSEvent respondsToSelector:selector]
&& [NSEvent performSelector:selector];
}
} // namespace platform_util

View file

@ -13,6 +13,10 @@ console.log(systemPreferences.isDarkMode())
This method returns `true` if the system is in Dark Mode, and `false` otherwise.
### `systemPreferences.isSwipeTrackingFromScrollEventsEnabled()` _macOS_
This method returns `true` if the Swipe between pages setting is on, and `false` otherwise.
### `systemPreferences.subscribeNotification(event, callback)` _macOS_
* `event` String