From b3ac48cf52f0b36831fb8366fc16ecf2be287cf8 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 17 Feb 2016 09:05:21 -0800 Subject: [PATCH] Handle argument parsing in C++ --- atom/common/api/atom_api_shell.cc | 13 ++++++++++++- atom/common/api/lib/shell.js | 18 +----------------- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/atom/common/api/atom_api_shell.cc b/atom/common/api/atom_api_shell.cc index d0e795e874..f99e2ba185 100644 --- a/atom/common/api/atom_api_shell.cc +++ b/atom/common/api/atom_api_shell.cc @@ -12,12 +12,23 @@ namespace { +bool OpenExternal(const GURL& url, mate::Arguments* args) { + bool activate = true; + if (args->Length() == 2) { + mate::Dictionary options; + if (args->GetNext(&options)) { + options.Get("activate", &activate); + } + } + return platform_util::OpenExternal(url, activate); +} + void Initialize(v8::Local exports, v8::Local unused, v8::Local context, void* priv) { mate::Dictionary dict(context->GetIsolate(), exports); dict.SetMethod("showItemInFolder", &platform_util::ShowItemInFolder); dict.SetMethod("openItem", &platform_util::OpenItem); - dict.SetMethod("_openExternal", &platform_util::OpenExternal); + dict.SetMethod("openExternal", &OpenExternal); dict.SetMethod("moveItemToTrash", &platform_util::MoveItemToTrash); dict.SetMethod("beep", &platform_util::Beep); } diff --git a/atom/common/api/lib/shell.js b/atom/common/api/lib/shell.js index d62280277c..08cc4e8eb4 100644 --- a/atom/common/api/lib/shell.js +++ b/atom/common/api/lib/shell.js @@ -1,17 +1 @@ -'use strict'; - -const bindings = process.atomBinding('shell'); - -exports.beep = bindings.beep; -exports.moveItemToTrash = bindings.moveItemToTrash; -exports.openItem = bindings.openItem; -exports.showItemInFolder = bindings.showItemInFolder; - -exports.openExternal = (url, options) => { - var activate = true; - if (options != null && options.activate != null) { - activate = !!options.activate; - } - - return bindings._openExternal(url, activate); -}; +module.exports = process.atomBinding('shell');