bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

Alex Gramiak

Occasionally, after first moving the mouse over the frame after it was
iconified or unused for "a while", scrolling down in a buffer scrolls
the entire buffer regardless of buffer length. During this scrolling,
the GUI cursor changes to a busy (hourglass) cursor.

I unfortunately can not reproduce this issue reliably, which is why I
held off on reporting this until now. I can cancel the scrolling when
the cursor is an hourglass cursor, at which point the buffer is
partially scrolled. I recall that debug-on-quit did not help here.



Reply | Threaded
Open this post in threaded view
|

bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

Eli Zaretskii
> From: Alex Gramiak <[hidden email]>
> Date: Fri, 12 Apr 2019 11:23:27 -0600
>
> Occasionally, after first moving the mouse over the frame after it was
> iconified or unused for "a while", scrolling down in a buffer scrolls
> the entire buffer regardless of buffer length. During this scrolling,
> the GUI cursor changes to a busy (hourglass) cursor.
>
> I unfortunately can not reproduce this issue reliably, which is why I
> held off on reporting this until now. I can cancel the scrolling when
> the cursor is an hourglass cursor, at which point the buffer is
> partially scrolled. I recall that debug-on-quit did not help here.

What does "C-h l" show after that?



Reply | Threaded
Open this post in threaded view
|

bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

Alex Gramiak
In reply to this post by Alex Gramiak
Eli Zaretskii <[hidden email]> writes:

>> From: Alex Gramiak <[hidden email]>
>> Date: Fri, 12 Apr 2019 11:23:27 -0600
>>
>> Occasionally, after first moving the mouse over the frame after it was
>> iconified or unused for "a while", scrolling down in a buffer scrolls
>> the entire buffer regardless of buffer length. During this scrolling,
>> the GUI cursor changes to a busy (hourglass) cursor.
>>
>> I unfortunately can not reproduce this issue reliably, which is why I
>> held off on reporting this until now. I can cancel the scrolling when
>> the cursor is an hourglass cursor, at which point the buffer is
>> partially scrolled. I recall that debug-on-quit did not help here.
>
> What does "C-h l" show after that?

A couple days ago I had a similar event happen (busy cursor pops up, and
a few seconds later normal mouse scrolling occurred). C-h l in that
window:

  <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
  <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
  <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
  <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
  <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
  <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
  <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
  <down-mouse-4> <mouse-4> [mwheel-scroll]
  <double-down-mouse-4> <double-mouse-4> [mwheel-scroll]
  <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
  <down-mouse-5> <mouse-5> [mwheel-scroll]
  C-h l [view-lossage]

Just now I had a different event happen -- this time no busy cursor
appeared, but the buffer still scrolled a few thousand lines instantly.
The selected window was not the window where the scrolling took place.

I did C-h l in the selected window and got:

   <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <help-echo> <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-4> <mouse-4> [mwheel-scroll]
   <double-down-mouse-4> <double-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-4> <mouse-4> [mwheel-scroll]
   <double-down-mouse-4> <double-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <down-mouse-4> <mouse-4> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <down-mouse-4> <mouse-4> [mwheel-scroll]
   <double-down-mouse-4> <double-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-4> <mouse-4> [mwheel-scroll]
   <double-down-mouse-4> <double-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <triple-down-mouse-4> <triple-mouse-4> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <help-echo> <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   C-h l [view-lossage]

Is it possibly the commands with a help-echo prefix?

P.S. Is there a way to get the event time in C-h l? If not, I think
there should be an option for that.



Reply | Threaded
Open this post in threaded view
|

bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

Eli Zaretskii
> From: Alex Gramiak <[hidden email]>
> Cc: [hidden email]
> Date: Mon, 15 Apr 2019 10:18:24 -0600
>
> > What does "C-h l" show after that?
>
> A couple days ago I had a similar event happen (busy cursor pops up, and
> a few seconds later normal mouse scrolling occurred). C-h l in that
> window:
>
>   <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
>   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>   <down-mouse-4> <mouse-4> [mwheel-scroll]
>   <double-down-mouse-4> <double-mouse-4> [mwheel-scroll]
>   <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
>   <down-mouse-5> <mouse-5> [mwheel-scroll]
>   C-h l [view-lossage]

So somehow, Emacs receives a long series of mouse wheel-scrolling
events, perhaps due to multiple down-mouse events.  And since we have
mouse-wheel-progressive-speed, a series of such events produces
scrolling far away.

The question is where did those events come from?  Is it possible that
something is wrong with your mouse wheel or the driver?

> Is it possibly the commands with a help-echo prefix?

I don't think so.

> P.S. Is there a way to get the event time in C-h l? If not, I think
> there should be an option for that.

How would that help?  You'll most probably see very close times there.



Reply | Threaded
Open this post in threaded view
|

bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

Eli Zaretskii
> Date: Mon, 15 Apr 2019 19:35:07 +0300
> From: Eli Zaretskii <[hidden email]>
> Cc: [hidden email]
>
> >   <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
> >   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
> >   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
> >   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
> >   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
> >   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
> >   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
> >   <down-mouse-4> <mouse-4> [mwheel-scroll]
> >   <double-down-mouse-4> <double-mouse-4> [mwheel-scroll]
> >   <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
> >   <down-mouse-5> <mouse-5> [mwheel-scroll]
> >   C-h l [view-lossage]
>
> So somehow, Emacs receives a long series of mouse wheel-scrolling
> events, perhaps due to multiple down-mouse events.  And since we have
> mouse-wheel-progressive-speed, a series of such events produces
> scrolling far away.
>
> The question is where did those events come from?  Is it possible that
> something is wrong with your mouse wheel or the driver?

What kind of mouse is this?  Is that by any chance a mouse pad of a
laptop?



Reply | Threaded
Open this post in threaded view
|

bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

Alex Gramiak
In reply to this post by Eli Zaretskii
Eli Zaretskii <[hidden email]> writes:

>> From: Alex Gramiak <[hidden email]>
>> Cc: [hidden email]
>> Date: Mon, 15 Apr 2019 10:18:24 -0600
>>
>> > What does "C-h l" show after that?
>>
>> A couple days ago I had a similar event happen (busy cursor pops up, and
>> a few seconds later normal mouse scrolling occurred). C-h l in that
>> window:
>>
>>   <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
>>   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
>>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>>   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
>>   <down-mouse-4> <mouse-4> [mwheel-scroll]
>>   <double-down-mouse-4> <double-mouse-4> [mwheel-scroll]
>>   <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
>>   <down-mouse-5> <mouse-5> [mwheel-scroll]
>>   C-h l [view-lossage]
>
> So somehow, Emacs receives a long series of mouse wheel-scrolling
> events, perhaps due to multiple down-mouse events.  And since we have
> mouse-wheel-progressive-speed, a series of such events produces
> scrolling far away.

Unfortunately, I set mouse-wheel-progressive-speed to nil a long time
ago.

> The question is where did those events come from?  Is it possible that
> something is wrong with your mouse wheel or the driver?

I'd be surprised, since Emacs is the only program that I've seen this
occur in. I scroll a fair bit with the mouse wheel in Firefox and have
never seen this there.

>> P.S. Is there a way to get the event time in C-h l? If not, I think
>> there should be an option for that.
>
> How would that help?  You'll most probably see very close times there.

There may have been some scroll events that occurred before I refocused
the frame that wouldn't have close times, so it might be nice to
distinguish them. I was also thinking that it might be helpful in other
bug reports involving events.

> What kind of mouse is this?  Is that by any chance a mouse pad of a
> laptop?

No, just a regular desktop mouse with a scroll wheel.



Reply | Threaded
Open this post in threaded view
|

bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

Eli Zaretskii
> From: Alex Gramiak <[hidden email]>
> Cc: [hidden email]
> Date: Mon, 15 Apr 2019 11:10:30 -0600
>
> > The question is where did those events come from?  Is it possible that
> > something is wrong with your mouse wheel or the driver?
>
> I'd be surprised, since Emacs is the only program that I've seen this
> occur in. I scroll a fair bit with the mouse wheel in Firefox and have
> never seen this there.

So you did actually scroll the wheel when this happened in Emacs, just
not that much?  I thought these scroll events were unrelated to what
you did at the time.  If you did use the mouse when that happened, can
you describe what you did with it?

> >> P.S. Is there a way to get the event time in C-h l? If not, I think
> >> there should be an option for that.
> >
> > How would that help?  You'll most probably see very close times there.
>
> There may have been some scroll events that occurred before I refocused
> the frame that wouldn't have close times, so it might be nice to
> distinguish them.

I don't understand: before you refocus the frame, the scroll events
are not delivered to Emacs, they are delivered to the frame or window
that has focus.  Right?



Reply | Threaded
Open this post in threaded view
|

bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

Alex Gramiak
I just got another issue, and this time:

1) Busy cursor briefly appeared after several seconds of a
non-responsive Emacs.

2) Scrolling occurred right after with a seemingly normal scrolling
distance.

This time I got a clean C-h l since I just saved a buffer beforehand:

   <help-echo> <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <help-echo> <help-echo> <help-echo> <help-echo> <down-mouse-5> <mouse-5>
   [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   C-h l [view-lossage]

FWIW I don't see the <help-echo> prefixes when scrolling normally.

Eli Zaretskii <[hidden email]> writes:

>> From: Alex Gramiak <[hidden email]>
>> Cc: [hidden email]
>> Date: Mon, 15 Apr 2019 11:10:30 -0600
>>
>> > The question is where did those events come from?  Is it possible that
>> > something is wrong with your mouse wheel or the driver?
>>
>> I'd be surprised, since Emacs is the only program that I've seen this
>> occur in. I scroll a fair bit with the mouse wheel in Firefox and have
>> never seen this there.
>
> So you did actually scroll the wheel when this happened in Emacs, just
> not that much?  I thought these scroll events were unrelated to what
> you did at the time.  If you did use the mouse when that happened, can
> you describe what you did with it?

I did scroll the mouse wheel, but only a few notches worth (so maybe
1/4 of a page or so).

All I did with the mouse is click the Emacs taskbar item in my DE's
panel (if iconified), then move the pointer over a window and scroll a
small amount.

>> There may have been some scroll events that occurred before I refocused
>> the frame that wouldn't have close times, so it might be nice to
>> distinguish them.
>
> I don't understand: before you refocus the frame, the scroll events
> are not delivered to Emacs, they are delivered to the frame or window
> that has focus.  Right?

Right, but I was considering the following scenario:

1) I scroll around a buffer a bit, with the normal scrolling happening.
2) I unfocus the frame.
3) I do other tasks for a while.
4) I come back and attempt to scroll.

It would help determine _which_ of the scroll events started this issue.
In the case above, it's the one prefixed by <help-echo>. Still, this
might mean nothing, in which case displaying the time is indeed not
helpful for this problem.



Reply | Threaded
Open this post in threaded view
|

bug#35246: 26.2; Mouse wheel scrolling in GTK build sometimes scrolls the entire buffer

Alex Gramiak
Alex Gramiak <[hidden email]> writes:

> I just got another issue, and this time:
>
> 1) Busy cursor briefly appeared after several seconds of a
> non-responsive Emacs.
>
> 2) Scrolling occurred right after with a seemingly normal scrolling
> distance.
>
> This time I got a clean C-h l since I just saved a buffer beforehand:
>
>    <help-echo> <help-echo> <down-mouse-5> <mouse-5> [mwheel-scroll]
>    <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
>    <down-mouse-5> <mouse-5> [mwheel-scroll]
>    <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
>    <help-echo> <help-echo> <help-echo> <help-echo> <down-mouse-5> <mouse-5>
>    [mwheel-scroll]
>    <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
>    C-h l [view-lossage]
>
> FWIW I don't see the <help-echo> prefixes when scrolling normally.

Damn, this just occurred to me again, but this time there were no
help-echo prefixes...

   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <down-mouse-5> <mouse-5> [mwheel-scroll]
   <double-down-mouse-5> <double-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   <triple-down-mouse-5> <triple-mouse-5> [mwheel-scroll]
   C-h l [view-lossage]