View | Details | Raw Unified | Return to bug 219589 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/tm/internal/terminal/textcanvas/AbstractTextCanvasModel.java (-2 / +2 lines)
Lines 281-287 Link Here
281
	 * @return the currently selected text
281
	 * @return the currently selected text
282
	 */
282
	 */
283
	private String extractSelectedText() {
283
	private String extractSelectedText() {
284
		if(fSelectionStartLine<0 || fSelectionStartCoumn<0 || fSelectionEndColumn<0 || fSelectionSnapshot==null)
284
		if(fSelectionStartLine<0 || fSelectionStartCoumn<0 || fSelectionSnapshot==null)
285
			return ""; //$NON-NLS-1$
285
			return ""; //$NON-NLS-1$
286
		StringBuffer buffer=new StringBuffer();
286
		StringBuffer buffer=new StringBuffer();
287
		for (int line = fSelectionStartLine; line <= fSeletionEndLine; line++) {
287
		for (int line = fSelectionStartLine; line <= fSeletionEndLine; line++) {
Lines 289-295 Link Here
289
			char[] chars=fSelectionSnapshot.getChars(line);
289
			char[] chars=fSelectionSnapshot.getChars(line);
290
			if(chars!=null) {
290
			if(chars!=null) {
291
				text=new String(chars);
291
				text=new String(chars);
292
				if(line==fSeletionEndLine)
292
				if(line==fSeletionEndLine && fSelectionEndColumn >= 0)
293
					text=text.substring(0, Math.min(fSelectionEndColumn+1,text.length()));
293
					text=text.substring(0, Math.min(fSelectionEndColumn+1,text.length()));
294
				if(line==fSelectionStartLine)
294
				if(line==fSelectionStartLine)
295
					text=text.substring(Math.min(fSelectionStartCoumn,text.length()));
295
					text=text.substring(Math.min(fSelectionStartCoumn,text.length()));
(-)src/org/eclipse/tm/internal/terminal/textcanvas/TextCanvas.java (-1 / +4 lines)
Lines 163-169 Link Here
163
		if (fDraggingStart !=null && !p.equals(fDraggingEnd)) {
163
		if (fDraggingStart !=null && !p.equals(fDraggingEnd)) {
164
			fDraggingEnd = p;
164
			fDraggingEnd = p;
165
			if (compare(p, fDraggingStart) < 0) {
165
			if (compare(p, fDraggingStart) < 0) {
166
				fCellCanvasModel.setSelection(p.y, fDraggingStart.y, p.x, fDraggingStart.x);
166
				// bug 219589 - make sure selection start coordinates are non-negative
167
				int startColumn = Math.max(0, p.x);
168
				int startRow = Math.max(p.y, 0);
169
				fCellCanvasModel.setSelection(startRow, fDraggingStart.y, startColumn, fDraggingStart.x);
167
			} else {
170
			} else {
168
				fCellCanvasModel.setSelection(fDraggingStart.y, p.y, fDraggingStart.x, p.x);
171
				fCellCanvasModel.setSelection(fDraggingStart.y, p.y, fDraggingStart.x, p.x);
169
172

Return to bug 219589