Fix mousedown event

pull/5161/head
tugcekucukoglu 2024-01-24 18:04:26 +03:00
parent 298874cb7d
commit 854c3362a2
2 changed files with 10 additions and 9 deletions

View File

@ -62,7 +62,7 @@
:class="cx('item', { item, id: `${id}_${i}` })" :class="cx('item', { item, id: `${id}_${i}` })"
@click="onItemClick($event, item, i)" @click="onItemClick($event, item, i)"
@touchend="onItemTouchEnd" @touchend="onItemTouchEnd"
@mousedown="onOptionMouseDown(i)" @mousedown="onOptionMouseDown($event, i)"
@mousemove="onOptionMouseMove(i)" @mousemove="onOptionMouseMove(i)"
:aria-selected="isSelected(item)" :aria-selected="isSelected(item)"
v-bind="getPTOptions(item, 'item', i)" v-bind="getPTOptions(item, 'item', i)"
@ -188,9 +188,10 @@ export default {
break; break;
} }
}, },
onOptionMouseDown(index) { onOptionMouseDown(event, index) {
this.focused = true; this.focused = true;
this.focusedOptionIndex = index; this.focusedOptionIndex = `${this.id}_${index}`;
event.preventDefault();
}, },
onOptionMouseMove(index) { onOptionMouseMove(index) {
if (this.focusOnHover && this.focused) { if (this.focusOnHover && this.focused) {
@ -455,10 +456,9 @@ export default {
const selectedIndex = ObjectUtils.findIndexInList(item, this.d_selection); const selectedIndex = ObjectUtils.findIndexInList(item, this.d_selection);
const selected = selectedIndex != -1; const selected = selectedIndex != -1;
const metaSelection = this.itemTouched ? false : this.metaKeySelection; const metaSelection = this.itemTouched ? false : this.metaKeySelection;
const selectedId = this.findAllItems()[index].getAttribute('id'); const selectedId = this.findAllItems()[index].getAttribute('id');
this.focusedOptionIndex = event?.type === 'click' ? -1 : selectedId; this.focusedOptionIndex = selectedId;
if (metaSelection) { if (metaSelection) {
const metaKey = event.metaKey || event.ctrlKey; const metaKey = event.metaKey || event.ctrlKey;

View File

@ -70,7 +70,7 @@
@click="onItemClick($event, item, i, 0)" @click="onItemClick($event, item, i, 0)"
@dblclick="onItemDblClick($event, item, 0)" @dblclick="onItemDblClick($event, item, 0)"
@touchend="onItemTouchEnd" @touchend="onItemTouchEnd"
@mousedown="onOptionMouseDown(i, 'sourceList')" @mousedown="onOptionMouseDown($event, i, 'sourceList')"
@mousemove="onOptionMouseMove(i, 'sourceList')" @mousemove="onOptionMouseMove(i, 'sourceList')"
role="option" role="option"
:aria-selected="isSelected(item, 0)" :aria-selected="isSelected(item, 0)"
@ -162,7 +162,7 @@
@click="onItemClick($event, item, i, 1)" @click="onItemClick($event, item, i, 1)"
@dblclick="onItemDblClick($event, item, 1)" @dblclick="onItemDblClick($event, item, 1)"
@keydown="onItemKeyDown($event, 'targetList')" @keydown="onItemKeyDown($event, 'targetList')"
@mousedown="onOptionMouseDown(i, 'targetList')" @mousedown="onOptionMouseDown($event, i, 'targetList')"
@mousemove="onOptionMouseMove(i, 'targetList')" @mousemove="onOptionMouseMove(i, 'targetList')"
@touchend="onItemTouchEnd" @touchend="onItemTouchEnd"
role="option" role="option"
@ -311,9 +311,10 @@ export default {
this.focusedOptionIndex = -1; this.focusedOptionIndex = -1;
this.$emit('blur', event); this.$emit('blur', event);
}, },
onOptionMouseDown(index, listType) { onOptionMouseDown(event, index, listType) {
this.focused[listType] = true; this.focused[listType] = true;
this.focusedOptionIndex = index; this.focusedOptionIndex = index;
event.preventDefault();
}, },
onOptionMouseMove(index, listType) { onOptionMouseMove(index, listType) {
if (this.focusOnHover && this.focused[listType]) { if (this.focusOnHover && this.focused[listType]) {
@ -582,7 +583,7 @@ export default {
const metaSelection = this.itemTouched ? false : this.metaKeySelection; const metaSelection = this.itemTouched ? false : this.metaKeySelection;
const selectedId = DomHandler.find(this.$refs[listType].$el, '[data-pc-section="item"]')[index].getAttribute('id'); const selectedId = DomHandler.find(this.$refs[listType].$el, '[data-pc-section="item"]')[index].getAttribute('id');
this.focusedOptionIndex = event?.type === 'click' ? -1 : selectedId; this.focusedOptionIndex = selectedId;
let _selection; let _selection;
if (metaSelection) { if (metaSelection) {