[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725)
From: |
joakim |
Subject: |
Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725) |
Date: |
Sun, 18 Jan 2015 00:08:24 +0100 |
User-agent: |
Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.4.50 (gnu/linux) |
Eli Zaretskii <address@hidden> writes:
>> Date: Sat, 17 Jan 2015 20:04:07 +0200
>> From: Eli Zaretskii <address@hidden>
>> Cc: address@hidden, address@hidden
>>
>> > From: address@hidden
>> > Cc: address@hidden, address@hidden
>> > Date: Sat, 17 Jan 2015 18:40:48 +0100
>> >
>> > Now I tried the same test, but with an image. It behaves the same way!
>>
>> Hmm... yes, I see that, too.
>>
>> > So this would seem to indicate a number of possibilities:
>> >
>> > - My test is somewhow flawed. Perhaps (set (make-local-variable
>> > 'bidi-paragraph-direction) 'right-to-left) isnt supposed to affect
>> > images and xwidgets etc.
>> >
>> > - my xwidget code is so flawed that it affects the image code where it
>> > shouldnt. (the code paths are supposed to be separate though)
>> >
>> > - this is how its supposed to work, and everything is allright.
>>
>> No, it's a bug, and I will fix it.
>
> OK, fixed on the emacs-24 branch with the attached patch. You need to
> do something similar with xwidget glyphs.
>
> I also attach a test file. Visit the file, modify the file names of
> the icons to point to your repository, then eval-region on the 4
> put-text-property lines. You should see the images in the middle of
> the text, both in L2R and R2L lines. You can use this as a starting
> point for doing the same with xwidgets.
Ok, this patch works, so I consider bidi done for xwidgets now. Thanks!
>
> Here's the patch:
>
> diff --git a/src/xdisp.c b/src/xdisp.c
> index a1cc286..b1125d3 100644
> --- a/src/xdisp.c
> +++ b/src/xdisp.c
> @@ -25428,6 +25428,15 @@ and buffer to use as the context for the formatting
> (defaults
> enum glyph_row_area area = it->area;
>
> glyph = it->glyph_row->glyphs[area] + it->glyph_row->used[area];
> + if (it->glyph_row->reversed_p)
> + {
> + struct glyph *g;
> +
> + /* Make room for the new glyph. */
> + for (g = glyph - 1; g >= it->glyph_row->glyphs[it->area]; g--)
> + g[1] = *g;
> + glyph = it->glyph_row->glyphs[it->area];
> + }
> if (glyph < it->glyph_row->glyphs[area + 1])
> {
> glyph->charpos = CHARPOS (it->position);
>
>
> And here's the test file:
>
> ============================== cut here ==============================
> aaaaa bbbbbb
> aaaaa xxxxxx
> aaaaa yyyyyyyyy
>
> אאאאא בבבבב
>
> (put-text-property 8 9 'display '(image :type xpm :file
> "/path/to/emacs/trunk/etc/images/bookmark_add.xpm"))
>
> (put-text-property 23 24 'display '(image :type xpm :file
> "/path/to/emacs/trunk/etc/images/refresh.xpm"))
>
> (put-text-property 37 38 'display '(image :type xpm :file
> "/path/to/emacs/trunk/etc/images/data-save.xpm"))
>
> (put-text-property 54 55 'display '(image :type xpm :file
> "/path/to/emacs/trunk/etc/images/data-save.xpm"))
--
Joakim Verona
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), (continued)
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), Eli Zaretskii, 2015/01/09
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), joakim, 2015/01/16
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), Eli Zaretskii, 2015/01/16
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), joakim, 2015/01/16
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), Eli Zaretskii, 2015/01/17
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), joakim, 2015/01/17
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), joakim, 2015/01/17
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), Eli Zaretskii, 2015/01/17
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), joakim, 2015/01/17
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), Eli Zaretskii, 2015/01/17
- Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725),
joakim <=
Re: [Emacs-diffs] xwidget updated (1d8b8a2 -> 5f46725), joakim, 2015/01/09