Dan Espen (2018-Dec-30, excerpt):
> Okay I can confirm on my system that the circle jumps away when
> I try to drag.  Removing the key binding fixes the problem.
[...]
> Not sure what is going on or where to even look.

Hi Dan,

sorry for the delay.  More than one week ago, Edgardo Hoszowski (Cc)
was so nice as to talk me through some tests to run, in order to hunt
down the jumping pointer bug.  He basically spiked darktable with
`printf`s in the right places to report events to stdout as they
occurred.  Then I've run that and sent him the results for analysis.
Over few iterations he concluded that on my system somehow an
additional mouse_leave event is perceived by darktable, and that
probably causes the jump.  This behaviour can be reproducibly switched
on (or off), by binding (or unbinding) mouse-1.

     $ FvwmCommand 'mouse 1 A 4'             # unbind
     $ FvwmCommand 'mouse 1 A 4 moveOrRaise' # bind

So the assumption is that FVWM reports left-click events differently
to an application, depending on whether there's a binding for mouse-1,
or not.  Maybe it needs to capture an event to check if modifier Mod4
is held down?

You can find Edgardo's modified darktable source on github

    https://github.com/edgardoh/darktable/tree/bug_12387_2

in branch `bug_12387_2`, and it will compile just fine using the same
procedure I've described to you previously.

    $ cd darktable
    $ git remote add edgardoh https://github.com/edgardoh/darktable.git
    $ git remote update edgardoh
    $ git co bug_12387_2
    $ git describe
    release-2.6.0rc2-51-g26ccb0b31

I've compiled and tested this with (shows the bug) and without
keybinding (does not show the bug).  I've clicked on an existing
shape, and did not move the mouse between button press and release.

Attached is the complete stdout of each test.  I've terminated
darktable with Ctrl-Q right after releasing the mouse button, so the
interesting part is towards the end of the files.

I've noticed that the coordinates reported with
`dt_circle_events_button_pressed` are consistently wrong (x=-1.000000,
y=-1.000000) when the jump occurs.

Edgardo's final email was:

Edgardo Hoszowski (2019-Jan-03, excerpt):
> This is what's creating the issue:
>
> [draw] begin
> [draw] end
> [center_leave]
> [dt_control_mouse_leave]
> [dt_masks_events_mouse_leave]
> [center_enter]
> [dt_control_mouse_enter]
> [button_pressed] begin
>
> Between the [draw] and [button_pressed] something is generating the mouse
> leave/mouse enter. I don't see anything in darktable that can be doing this
> so my guess is that the WM is doing something here. For what I understand
> from the mails they are capturing the button pressed, if so, then that's
> why we don't see it here.
>
> Do you think you can get in touch with them? Even if what the WM is doing
> is correct it will help to know what's going on. Fell free to copy me if
> you think I can help.
>
> BTW, the x=-1 that you see is set on the mouse leave event, that's what
> generates the jump.

So, do you have any thoughts on what's going on?  I'd be happy to
provide more information if required.  Maybe you could point me to the
region in FVWMs code where events are propagated to applications (I
have no idea what I'm getting myself into...)?  My conversation with
Edgardo extends over 16 mails, so I've tried to summarize this, but I
can also send you the whole lot.

Cheers
Stefan


--
http://stefan-klinger.de                                        o/X
I prefer receiving plain text messages, not exceeding 32kB.     /\/
                                                                  \
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[_focus_in_out_event]
[draw] begin
[draw] end
[center_enter]
[dt_control_mouse_enter]
[mouse_moved] begin
[dt_control_mouse_moved]
[mouse_moved] end
[center_leave]
[dt_control_mouse_leave]
[dt_masks_events_mouse_leave]
[draw] begin
[draw] end
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[draw] begin
[draw] end
[center_enter]
[dt_control_mouse_enter]
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[center_leave]
[dt_control_mouse_leave]
[dt_masks_events_mouse_leave]
[center_enter]
[dt_control_mouse_enter]
[button_pressed] begin
[dt_control_button_pressed] begin
[dt_view_manager_button_pressed] begin
[darkroom button_pressed] begin
[dt_masks_events_button_pressed] begin
[dt_circle_events_button_pressed] begin
[dt_circle_events_button_pressed] x=-1.000000, y=-1.000000 end
[dt_masks_events_button_pressed] end
[dt_view_manager_button_pressed] end
[dt_control_button_pressed] end
[button_pressed] end
[draw] begin
[draw] end
[button_released]
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[_focus_in_out_event]
[draw] begin
[draw] end
[draw] begin
[draw] end
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[dt_ui_container_focus_widget]
[draw] begin
[draw] end
[center_enter]
[dt_control_mouse_enter]
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[mouse_moved] begin
[mouse_moved] end
[draw] begin
[draw] end
[button_pressed] begin
[dt_control_button_pressed] begin
[dt_view_manager_button_pressed] begin
[darkroom button_pressed] begin
[dt_masks_events_button_pressed] begin
[dt_circle_events_button_pressed] begin
[dt_circle_events_button_pressed] x=215.586700, y=320.494476 end
[dt_masks_events_button_pressed] end
[dt_view_manager_button_pressed] end
[dt_control_button_pressed] end
[button_pressed] end
[draw] begin
[draw] end
[button_released]
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end
[draw] begin
[draw] end

Reply via email to