diff --git a/tailscalectl/TailscaleWidget.qml b/tailscalectl/TailscaleWidget.qml index 82d027b..9678cac 100644 --- a/tailscalectl/TailscaleWidget.qml +++ b/tailscalectl/TailscaleWidget.qml @@ -12,6 +12,7 @@ PluginComponent { property bool isConnected: false property string tailscaleIP: "" + property string _pendingToggleAction: "" property string currentExitNode: "" property var peers: [] property string cachedClipboardTool: "" @@ -41,10 +42,11 @@ PluginComponent { onExited: (code, status) => { if (code !== 0) { - var action = root.isConnected ? "disconnect" : "connect" + var action = root._pendingToggleAction || (root.isConnected ? "disconnect" : "connect") var detail = toggleProcess.stderr.text.trim().slice(0, 120) ToastService.showError("tailscalectl", TailscaleLib.errorMessage(action) + (detail ? " — " + detail : "")) } + root._pendingToggleAction = "" statusCheck.running = true } } @@ -112,6 +114,7 @@ PluginComponent { } function toggleTailscale() { + root._pendingToggleAction = root.isConnected ? "disconnect" : "connect" toggleProcess.command = TailscaleLib.buildToggleCommand(root.isConnected) toggleProcess.running = true }