GNU bug report logs - #55970
29.0.50; Emacs crashes when dragging the scroll bar with "--with-pgtk" and "--without-toolkit-scroll-bars" configure flags

Previous Next

Package: emacs;

Reported by: समीर सिंह Sameer Singh <lumarzeli30 <at> gmail.com>

Date: Tue, 14 Jun 2022 14:09:02 UTC

Severity: normal

Tags: fixed

Found in version 29.0.50

Fixed in version 29.1

Done: Robert Pluim <rpluim <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #38 received at 55970 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Po Lu <luangruo <at> yahoo.com>
Cc: 55970 <at> debbugs.gnu.org, lumarzeli30 <at> gmail.com
Subject: Re: bug#55970: 29.0.50; Emacs crashes when dragging the scroll bar
 with "--with-pgtk" and "--without-toolkit-scroll-bars" configure flags
Date: Wed, 15 Jun 2022 15:25:27 +0300
> From: Po Lu <luangruo <at> yahoo.com>
> Cc: 55970 <at> debbugs.gnu.org,  lumarzeli30 <at> gmail.com
> Date: Wed, 15 Jun 2022 11:29:23 +0800
> 
> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> > OK, but please explain how come the code in pgtk_send_scroll_bar_event
> > leaves the modifiers unset, and that is still OK, notwithstanding the
> > code in keyboard.c that expects either up or down modifier for any
> > mouse click event?  Isn't that a bug regardless?
> 
> The mouse click code that expects an up or down modifier is only used
> for scroll bar events when USE_TOOLKIT_SCROLL_BARS isn't defined.  The
> code actually used with toolkit scroll bars starts at line 6359 of
> keyboard.c.

Then how come the code which aborted got executed contrary to what you
say?  And given that it did, would it do any harm to install the fix I
proposed?

More importantly, does it really make sense to "fix" events in
keyboard.c, rather than generate them correctly in low-level
toolkit-specific code to begin with?  I mean this part:

	/* Always treat scroll bar events as clicks.  */
	event->modifiers |= click_modifier;
	event->modifiers &= ~up_modifier;

Why do we override the modifiers of the event, and why in keyboard.c
of all places?  Can we do this cleaner, or at least in
toolkit-specific code?




This bug report was last modified 3 years and 33 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.