https://github.com/siyuan-note/siyuan/issues/2911 粗体后还想粗体可使用 ctrl+b

This commit is contained in:
Vanessa 2022-09-16 10:11:56 +08:00
parent c928512501
commit b3bfa5071b

View file

@ -133,7 +133,7 @@ export class Toolbar {
});
}
public getCurrentType(range = this.range) {
public getCurrentType(range = this.range, useEndType = true) {
let types: string[] = [];
let startElement = range.startContainer as HTMLElement;
if (startElement.nodeType === 3) {
@ -145,7 +145,7 @@ export class Toolbar {
return [];
}
if (!["DIV", "TD", "TH", "TR"].includes(startElement.tagName)) {
if (range.startContainer.textContent.length === range.startOffset && !hasNextSibling(range.startContainer)) {
if (!useEndType && range.startContainer.textContent.length === range.startOffset && !hasNextSibling(range.startContainer)) {
// 光标在 span 结尾不算 type否则如在粗体后 ctrl+b 就无法继续使用粗体了
} else {
types = (startElement.getAttribute("data-type") || "").split(" ");
@ -253,7 +253,7 @@ export class Toolbar {
if (!nodeElement) {
return;
}
const rangeTypes = this.getCurrentType();
const rangeTypes = this.getCurrentType(this.range, false);
const selectText = this.range.toString();
// table 选中处理