[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: remaining psppsheet TODO [PATCH]
From: |
Ben Pfaff |
Subject: |
Re: remaining psppsheet TODO [PATCH] |
Date: |
Mon, 08 Oct 2012 12:10:44 -0700 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) |
John Darrington <address@hidden> writes:
> On Mon, Oct 08, 2012 at 11:26:21AM -0700, Ben Pfaff wrote:
> John Darrington <address@hidden> writes:
>
> > On Sun, Sep 02, 2012 at 09:22:55AM -0700, Ben Pfaff wrote:
> > Here's what remains.
> >
> > Variable sheet
> > --------------
> >
> > Double-clicking on variable names still processes a click after
> > switching sheets.
> >
> >
> > I think this patch fixes that problem. I haven't thoroughly tested it
> > to see if it causes any other ill effects.
>
> It works! But I don't understand why it works. Can you explain?
>
> From
> http://developer.gnome.org/gdk/2.24/gdk-Event-Structures.html#GdkEventButton
>
> Double and triple-clicks result in a sequence of events being received. For
> double-clicks the order of events will be:
>
> 1. GDK_BUTTON_PRESS
> 2. GDK_BUTTON_RELEASE
> 3. GDK_BUTTON_PRESS
> 4. GDK_2BUTTON_PRESS
> 5. GDK_BUTTON_RELEASE
>
>
> So what was happening was this: When the var-name was double-clicked, the
> view switched
> from VarView to DataView as soon as event 4 (GDK_2BUTTON_PRESS) occured.
> Then event 5
> (GDK_BUTTON_RELEASE) occured.
>
> Now the PsppSheetView object is written such that, it decides to edit a cell,
> on button
> release event. Hence, whichever cell the pointer happended to be in, when the
> user lifts
> his finger after double clicking, starts to be edited.
>
> This change ignores button release events on the object unless a
> corresponding button press
> event was seen.
That makes sense.
I hope that you will commit this fix, and include the above in
the commit log if not in a source code comment.
Thanks so much for tracking this down, I spent a few fruitless
hours some time ago working on it.