Skip to content

Commit

Permalink
Merge pull request electron#6686 from darkdh/swipe_prefs
Browse files Browse the repository at this point in the history
Swipe back/forward should respect system preferences
  • Loading branch information
zcbenz authored Aug 3, 2016
2 parents b9bcba7 + e0c0e3e commit 322fb97
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 0 deletions.
2 changes: 2 additions & 0 deletions atom/browser/api/atom_api_system_preferences.cc
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ void SystemPreferences::BuildPrototype(
.SetMethod("unsubscribeLocalNotification",
&SystemPreferences::UnsubscribeLocalNotification)
.SetMethod("getUserDefault", &SystemPreferences::GetUserDefault)
.SetMethod("isSwipeTrackingFromScrollEventsEnabled",
&SystemPreferences::IsSwipeTrackingFromScrollEventsEnabled)
#endif
.SetMethod("isDarkMode", &SystemPreferences::IsDarkMode);
}
Expand Down
4 changes: 4 additions & 0 deletions atom/browser/api/atom_api_system_preferences.h
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
7 changes: 7 additions & 0 deletions atom/browser/api/atom_api_system_preferences_mac.mm
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -122,6 +123,12 @@
return [mode isEqualToString:@"Dark"];
}

bool SystemPreferences::IsSwipeTrackingFromScrollEventsEnabled() {
SEL selector = @selector(isSwipeTrackingFromScrollEventsEnabled);
return [NSEvent respondsToSelector:selector]
&& [NSEvent performSelector:selector];
}

} // namespace api

} // namespace atom
4 changes: 4 additions & 0 deletions docs/api/system-preferences.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 322fb97

Please sign in to comment.