mirror of
				https://github.com/flynx/pWiki.git
				synced 2025-10-31 02:50:08 +00:00 
			
		
		
		
	bugfix...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									044df2e013
								
							
						
					
					
						commit
						021062315b
					
				| @ -38,6 +38,13 @@ function clickPoint(x,y){ | |||||||
| //*/
 | //*/
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | // Get the character offset at coordinates...
 | ||||||
|  | //
 | ||||||
|  | // This is done by moving a range down the element until its bounding 
 | ||||||
|  | // box corresponds the to desired coordinates. This accounts for nested 
 | ||||||
|  | // elements.
 | ||||||
|  | //
 | ||||||
|  | // XXX HACK -- is there a better way to do this???
 | ||||||
| var getCharOffset = function(elem, x, y, c){ | var getCharOffset = function(elem, x, y, c){ | ||||||
| 	c = c ?? 0 | 	c = c ?? 0 | ||||||
| 	var r = document.createRange() | 	var r = document.createRange() | ||||||
| @ -62,14 +69,31 @@ var getCharOffset = function(elem, x, y, c){ | |||||||
| 	return arguments.length > 3 ? | 	return arguments.length > 3 ? | ||||||
| 		[c, null] | 		[c, null] | ||||||
| 		: null } | 		: null } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | // Get offset in markdown relative to the resulting text...
 | ||||||
|  | //                     
 | ||||||
|  | //					    v <----- position
 | ||||||
|  | //		text:		'Hea|ding'
 | ||||||
|  | //					    |
 | ||||||
|  | //		                +-+ <--- offset in markdown
 | ||||||
|  | //		                  |
 | ||||||
|  | //		markdown:	'# Hea|ding'
 | ||||||
|  | //
 | ||||||
| var getMarkdownOffset = function(markdown, text, i){ | var getMarkdownOffset = function(markdown, text, i){ | ||||||
| 	i = i ?? text.length | 	i = i ?? text.length | ||||||
| 	var m = 0 | 	var m = 0 | ||||||
| 	// walk both strings skipping/counting non-matching stuff...
 | 	// walk both strings skipping/counting non-matching stuff...
 | ||||||
| 	for(var n=0; n < i; n++, m++){ | 	for(var n=0; n < i; n++, m++){ | ||||||
| 		var c = text[n] | 		var c = text[n] | ||||||
| 		while(c != markdown[m]){ | 		var p = m | ||||||
| 			m++ } } | 		// walk to next match...
 | ||||||
|  | 		while(c != markdown[m] && m < markdown.length){ | ||||||
|  | 			m++ }  | ||||||
|  | 		// reached something unrepresentable directly in markdown (html 
 | ||||||
|  | 		// entity, symbol, ...)
 | ||||||
|  | 		if(m >= markdown.length){ | ||||||
|  | 			m = p } } | ||||||
| 	return m - n } | 	return m - n } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -1302,7 +1326,7 @@ var Outline = { | |||||||
| 		outline.addEventListener('mousedown',  | 		outline.addEventListener('mousedown',  | ||||||
| 			function(evt){ | 			function(evt){ | ||||||
| 				var elem = evt.target | 				var elem = evt.target | ||||||
| 				// correct offset in editor...
 | 				// place the cursor where the user clicked in code/text...
 | ||||||
| 				if(elem.classList.contains('code')  | 				if(elem.classList.contains('code')  | ||||||
| 						&& document.activeElement !== elem){ | 						&& document.activeElement !== elem){ | ||||||
| 					evt.preventDefault() | 					evt.preventDefault() | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user