v1.0
只读模式 group, 分享 评论更多问题 博客标签总是存在一个
This commit is contained in:
27
public/tinymce/plugins/table/classes/CellSelection.js
Normal file → Executable file
27
public/tinymce/plugins/table/classes/CellSelection.js
Normal file → Executable file
@ -21,13 +21,13 @@ define("tinymce/tableplugin/CellSelection", [
|
||||
"tinymce/util/Tools"
|
||||
], function(TableGrid, TreeWalker, Tools) {
|
||||
return function(editor) {
|
||||
var dom = editor.dom, tableGrid, startCell, startTable, hasCellSelection = true;
|
||||
var dom = editor.dom, tableGrid, startCell, startTable, hasCellSelection = true, resizing;
|
||||
|
||||
function clear() {
|
||||
function clear(force) {
|
||||
// Restore selection possibilities
|
||||
editor.getBody().style.webkitUserSelect = '';
|
||||
|
||||
if (hasCellSelection) {
|
||||
if (force || hasCellSelection) {
|
||||
editor.dom.removeClass(
|
||||
editor.dom.select('td.mce-item-selected,th.mce-item-selected'),
|
||||
'mce-item-selected'
|
||||
@ -40,6 +40,10 @@ define("tinymce/tableplugin/CellSelection", [
|
||||
function cellSelectionHandler(e) {
|
||||
var sel, table, target = e.target;
|
||||
|
||||
if (resizing) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) {
|
||||
table = dom.getParent(target, 'table');
|
||||
if (table == startTable) {
|
||||
@ -73,7 +77,7 @@ define("tinymce/tableplugin/CellSelection", [
|
||||
|
||||
// Add cell selection logic
|
||||
editor.on('MouseDown', function(e) {
|
||||
if (e.button != 2) {
|
||||
if (e.button != 2 && !resizing) {
|
||||
clear();
|
||||
|
||||
startCell = dom.getParent(e.target, 'td,th');
|
||||
@ -81,14 +85,14 @@ define("tinymce/tableplugin/CellSelection", [
|
||||
}
|
||||
});
|
||||
|
||||
dom.bind(editor.getDoc(), 'mouseover', cellSelectionHandler);
|
||||
editor.on('mouseover', cellSelectionHandler);
|
||||
|
||||
editor.on('remove', function() {
|
||||
dom.unbind(editor.getDoc(), 'mouseover', cellSelectionHandler);
|
||||
});
|
||||
|
||||
editor.on('MouseUp', function() {
|
||||
var rng, sel = editor.selection, selectedCells, walker, node, lastNode, endNode;
|
||||
var rng, sel = editor.selection, selectedCells, walker, node, lastNode;
|
||||
|
||||
function setPoint(node, start) {
|
||||
var walker = new TreeWalker(node, node);
|
||||
@ -129,7 +133,6 @@ define("tinymce/tableplugin/CellSelection", [
|
||||
if (selectedCells.length > 0) {
|
||||
rng = dom.createRng();
|
||||
node = selectedCells[0];
|
||||
endNode = selectedCells[selectedCells.length - 1];
|
||||
rng.setStartBefore(node);
|
||||
rng.setEndAfter(node);
|
||||
|
||||
@ -156,8 +159,14 @@ define("tinymce/tableplugin/CellSelection", [
|
||||
}
|
||||
});
|
||||
|
||||
editor.on('KeyUp', function() {
|
||||
clear();
|
||||
editor.on('KeyUp Drop SetContent', function(e) {
|
||||
clear(e.type == 'setcontent');
|
||||
startCell = tableGrid = startTable = null;
|
||||
resizing = false;
|
||||
});
|
||||
|
||||
editor.on('ObjectResizeStart ObjectResized', function(e) {
|
||||
resizing = e.type != 'objectresized';
|
||||
});
|
||||
|
||||
return {
|
||||
|
Reference in New Issue
Block a user