Skip to content

Commit 5560e88

Browse files
authored
Merge pull request #234 from phyng/feat-mouseSelectionButton
feat: add mouseSelectionButton option
2 parents b6cd99e + 1b0c0a6 commit 5560e88

File tree

5 files changed

+12
-4
lines changed

5 files changed

+12
-4
lines changed

readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ let options = {
124124
locale: 'en', // [zh_CN,zh_TW,en,ja,pt,ru] waiting for PRs
125125
overflowHidden: false, // default false
126126
mainLinkStyle: 2, // [1,2] default 1
127+
mouseSelectionButton: 0, // 0 for left button, 2 for right button, default 0
127128
contextMenuOption: {
128129
focus: true,
129130
link: true,

src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ function MindElixir(
2727
contextMenuOption,
2828
toolBar,
2929
keypress,
30+
mouseSelectionButton,
3031
before,
3132
newTopicName,
3233
allowUndo,
@@ -57,6 +58,7 @@ function MindElixir(
5758
this.contextMenu = contextMenu === undefined ? true : contextMenu
5859
this.toolBar = toolBar === undefined ? true : toolBar
5960
this.keypress = keypress === undefined ? true : keypress
61+
this.mouseSelectionButton = mouseSelectionButton || 0
6062
this.mobileMenu = mobileMenu || false
6163
// record the direction before enter focus mode, must true in focus mode, reset to null after exit focus
6264
this.direction = typeof direction === 'number' ? direction : 1

src/mouse.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,18 +70,21 @@ export default function (mind: MindElixirInstance) {
7070
}
7171
})
7272
mind.map.addEventListener('mousedown', e => {
73-
if (e.button !== 2) return
73+
const mouseMoveButton = mind.mouseSelectionButton === 0 ? 2 : 0
74+
if (e.button !== mouseMoveButton) return
7475
if ((e.target as HTMLElement).contentEditable !== 'true') {
7576
dragMoveHelper.moved = false
7677
dragMoveHelper.mousedown = true
7778
}
7879
})
7980
mind.map.addEventListener('mouseleave', e => {
80-
if (e.button !== 2) return
81+
const mouseMoveButton = mind.mouseSelectionButton === 0 ? 2 : 0
82+
if (e.button !== mouseMoveButton) return
8183
dragMoveHelper.clear()
8284
})
8385
mind.map.addEventListener('mouseup', e => {
84-
if (e.button !== 2) return
86+
const mouseMoveButton = mind.mouseSelectionButton === 0 ? 2 : 0
87+
if (e.button !== mouseMoveButton) return
8588
dragMoveHelper.clear()
8689
})
8790
mind.map.addEventListener('contextmenu', e => {

src/plugin/selection.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export default function (mei: MindElixirInstance) {
2424
},
2525
})
2626
.on('beforestart', ({ event }) => {
27-
if ((event as MouseEvent).button !== 0) return false
27+
if ((event as MouseEvent).button !== mei.mouseSelectionButton) return false
2828
if (((event as MouseEvent).target as Topic).tagName === 'ME-TPC') return false
2929
if (((event as MouseEvent).target as HTMLElement).id === 'input-box') return false
3030
if (((event as MouseEvent).target as HTMLElement).className === 'circle') return false

src/types/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ export interface MindElixirInstance extends MindElixirMethods {
6464
contextMenuOption: object
6565
toolBar: boolean
6666
keypress: boolean
67+
mouseSelectionButton: 0 | 2
6768
before: Before
6869
newTopicName: string
6970
allowUndo: boolean
@@ -116,6 +117,7 @@ export interface Options {
116117
contextMenuOption?: any
117118
toolBar?: boolean
118119
keypress?: boolean
120+
mouseSelectionButton?: 0 | 2
119121
before?: Before
120122
newTopicName?: string
121123
allowUndo?: boolean

0 commit comments

Comments
 (0)