Update XIM cursor position only if changed
Updating XIM cursor position is expensive, so only update it when cursor position changed.dev
							parent
							
								
									33a9a45664
								
							
						
					
					
						commit
						72e3f6c7c0
					
				
							
								
								
									
										9
									
								
								st.c
								
								
								
								
							
							
						
						
									
										9
									
								
								st.c
								
								
								
								
							|  | @ -2571,6 +2571,7 @@ void | |||
| drawregion(int x1, int y1, int x2, int y2) | ||||
| { | ||||
| 	int y; | ||||
| 
 | ||||
| 	for (y = y1; y < y2; y++) { | ||||
| 		if (!term.dirty[y]) | ||||
| 			continue; | ||||
|  | @ -2583,7 +2584,7 @@ drawregion(int x1, int y1, int x2, int y2) | |||
| void | ||||
| draw(void) | ||||
| { | ||||
| 	int cx = term.c.x; | ||||
| 	int cx = term.c.x, ocx = term.ocx, ocy = term.ocy; | ||||
| 
 | ||||
| 	if (!xstartdraw()) | ||||
| 		return; | ||||
|  | @ -2599,9 +2600,11 @@ draw(void) | |||
| 	drawregion(0, 0, term.col, term.row); | ||||
| 	xdrawcursor(cx, term.c.y, term.line[term.c.y][cx], | ||||
| 			term.ocx, term.ocy, term.line[term.ocy][term.ocx]); | ||||
| 	term.ocx = cx, term.ocy = term.c.y; | ||||
| 	term.ocx = cx; | ||||
| 	term.ocy = term.c.y; | ||||
| 	xfinishdraw(); | ||||
| 	xximspot(term.ocx, term.ocy); | ||||
| 	if (ocx != term.ocx || ocy != term.ocy) | ||||
| 		xximspot(term.ocx, term.ocy); | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue