GNU bug report logs -
#28620
Mouse drag event records wrong window for release when crossing frames
Previous Next
Reported by: rswgnu <at> gmail.com
Date: Wed, 27 Sep 2017 15:45:01 UTC
Severity: normal
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
On Wed, Oct 04, 2017 at 04:07:56PM -0400, Robert Weiner wrote:
> On Wed, Oct 4, 2017 at 2:59 PM, Alan Third <alan <at> idiocy.org> wrote:
>
> >
> > It looks like there’s maybe a neater way to get the current frame
> > under the mouse...
> >
> > Lisp_Object frame = Qnil;
> > NSWindow *w = [NSApp windowWithWindowNumber:
> > [NSWindow windowNumberAtPoint:[NSEvent
> > mouseLocation]
> > belowWindowWithWindowNumber:0]];
> > if (w != nil)
> > XSETFRAME (frame, ((EmacsView *)[w delegate])->emacsframe);
> >
> >
> The mouseDown function (called by the various mouseUp functions) uses
> `emacsframe' to set the appropriate frame.
> How does the above modify emacsframe? Doesn't XSETFRAME just set the value
> of the local `frame'?
Yes. You can’t modify emacsframe because it’s an instance variable.
You’ll need to modify whatever is using it to set the frame in the
emacs event.
So, assuming the code you’re modifying is calling EV_TRAILER, for now,
replace the call to EV_TRAILER with it’s contents:
XSETFRAME (emacs_event->frame_or_window, emacsframe);
EV_TRAILER2 (e);
and work from there.
--
Alan Third
This bug report was last modified 4 years and 333 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.