bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#18545: 24.4.50: Bug - forward-line inside with-selected-window


From: martin rudalics
Subject: bug#18545: 24.4.50: Bug - forward-line inside with-selected-window
Date: Sun, 28 Sep 2014 11:33:36 +0200

>> But after 28 times point moves which is even less understandable.
>
> I don't think this is relevant.  It could be related to
> blink-cursor-mode

... always turned off here ...

> or some other feature that triggers a more thorough
> redisplay.  (Try typing "M-x", for example.)  The code part that seems
> to be involved in this is an optimization, so when it is not taken,
> you don't see the problem.

OK.  But the only thing I do here is leaning on the <down> button.

> Can you show all the values of MATRIX_ROW_BOTTOM_Y that are examined
> in this loop, after we determine that new_vpos should be 426:
>
>      row = MATRIX_FIRST_TEXT_ROW (w->desired_matrix);
>      while (MATRIX_ROW_BOTTOM_Y (row) < new_vpos)
>        ++row;

Using

          while (MATRIX_ROW_BOTTOM_Y (row) < new_vpos)
            {
              ++row;
              Vdebug_on_message = Fcons (Fcons (make_number (row->y), 
make_number (new_vpos)),
                                         Vdebug_on_message);
            }

and nreverse on the value of Vdebug_on_message gets me a repeated
pattern of

(32 . 426) (48 . 426) (64 . 426) (80 . 426) (96 . 426) (112 . 426) (128
. 426) (144 . 426) (160 . 426) (176 . 426) (192 . 426) (208 . 426) (224
. 426) (240 . 426) (256 . 426) (272 . 426) (288 . 426) (304 . 426) (320
. 426) (336 . 426) (352 . 426) (368 . 426) (384 . 426) (400 . 426) (416
. 426)

>> I don't
>> understand cursor_row_fully_visible_p much.
>
> Which part of it do you not understand?

Why it should return 1 in these two cases

  if (!MATRIX_ROW_PARTIALLY_VISIBLE_P (w, row))
    return 1;

and

  if (row->height >= window_height)
    {
      if (!force_p || MINI_WINDOW_P (w)
          || w->vscroll || w->cursor.vpos == 0)
        return 1;
    }

martin





reply via email to

[Prev in Thread] Current Thread [Next in Thread]