Subject: bug#38013: [PATCH] Rectangular region selection with mouse

From: Eli Zaretskii <[email-masked]>
Date: Sat, 16 Nov 2019 14:35:41 +0200

> From: Mattias Engdegård <[email-masked]>
> Date: Sun, 10 Nov 2019 14:49:11 +0100
> Cc: [email-masked], [email-masked]
> 
> Or even simpler: assuming that STRETCH_GLYPHS are mostly tabs, we can treat them as image glyphs for 'remember_mouse_glyph' purposes. What about:
> 
> --- a/src/xdisp.c
> +++ b/src/xdisp.c
> @@ -2572,7 +2572,7 @@ remember_mouse_glyph (struct frame *f, int gx, int gy, NativeRectangle *rect)
>  
>  	  if (g < end)
>  	    {
> -	      if (g->type == IMAGE_GLYPH)
> +	      if (g->type == IMAGE_GLYPH || g->type == STRETCH_GLYPH)

Sorry for a late response.

Did you try this with stretch glyphs generated by the likes of
:align-to display 'space' properties?  Also, what about stretch glyphs
generated by the display engine in R2L screen lines (you can get those
easily by visiting TUTORIAL.he: each line that has white space at its
left end has a stretch glyph there)?

IOW, it might be necessary to add more conditions here, and just the
mouse_movement_in_tab thingy you added in a later version might not be
enough.  E.g., we may need a condition that verifies that this is a
TAB (should be easy by looking at glyph->object, I think).