From 614eaed5e840e2473771224399e2edc3a0e6e7b6 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 26 Oct 2020 12:40:47 +0100 Subject: [PATCH] dialog - fix checkbox toggle to work properly --- src/vs/base/browser/ui/checkbox/checkbox.css | 4 ++-- src/vs/base/browser/ui/checkbox/checkbox.ts | 11 +++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/vs/base/browser/ui/checkbox/checkbox.css b/src/vs/base/browser/ui/checkbox/checkbox.css index 972e94f7175..c754adc1518 100644 --- a/src/vs/base/browser/ui/checkbox/checkbox.css +++ b/src/vs/base/browser/ui/checkbox/checkbox.css @@ -45,6 +45,6 @@ } /* hide check when unchecked */ -.monaco-custom-checkbox.monaco-simple-checkbox.unchecked:not(.checked)::before { - visibility: hidden;; +.monaco-custom-checkbox.monaco-simple-checkbox:not(.checked)::before { + visibility: hidden; } diff --git a/src/vs/base/browser/ui/checkbox/checkbox.ts b/src/vs/base/browser/ui/checkbox/checkbox.ts index c71bea70e3b..c3b0e243f91 100644 --- a/src/vs/base/browser/ui/checkbox/checkbox.ts +++ b/src/vs/base/browser/ui/checkbox/checkbox.ts @@ -108,7 +108,9 @@ export class Checkbox extends Widget { if (this._opts.actionClassName) { classes.push(this._opts.actionClassName); } - classes.push(this._checked ? 'checked' : 'unchecked'); + if (this._checked) { + classes.push('checked'); + } this.domNode = document.createElement('div'); this.domNode.title = this._opts.title; @@ -154,12 +156,9 @@ export class Checkbox extends Widget { set checked(newIsChecked: boolean) { this._checked = newIsChecked; + this.domNode.setAttribute('aria-checked', String(this._checked)); - if (this._checked) { - this.domNode.classList.add('checked'); - } else { - this.domNode.classList.remove('checked'); - } + this.domNode.classList.toggle('checked', this._checked); this.applyStyles(); } -- GitLab