On Mon, 2014-11-17 at 11:20 -0600, Federico Mena Quintero wrote:
> On Fri, 2014-11-14 at 18:32 -0800, Roger Luedecke wrote:
> > Care to share this rather easy solution?
> 
> Sure.  If the bug is the one I'm thinking about, it's easy to fix, but
> it is cumbersome, as it needs to be done for every menu in every
> application that has the bug.
> 
> In GTK+, you pop up a menu with
> 
>   void gtk_menu_popup (GtkMenu   *menu,
>                        GtkWidget *parent_menu_shell,
>                        GtkWidget *parent_menu_item,
>                        GtkMenuPositionFunc func,
>                        gpointer   data,
>                        guint      button,
>                        guint32    activate_time);
> 
> This is normally done from your button_press_event handler; something
> like
> 
>   static gboolean
>   my_button_press_event_handler (GtkWidget      *widget,
>                                  GdkEventButton *event,
>                                  gpointer        data)
>   {
>      if (event->button == 3) {
>         GtkMenu *menu = create_popup_menu (...);
> 
>         gtk_menu_popup (menu, ...,
>                         event->button,
>                         event->time);
>         return TRUE;
>      }
>      ...
>   }
> 
> The important part is that the application passes the event->time that
> coresponds from the actual button press that triggered the menu.  GTK+
> uses this timestamp to take the difference between the press-time and
> the release-time to say, "did the user press-and-release quickly enough,
> so I should leave the menu up?  Or did he press-drag-release slowly, so
> I should dismiss the menu?".
> 
> The bug happens when an application gets lazy and instead of passing the
> correct timestamp, it just passes GDK_CURRENT_TIME or something like 0.
> GTK+ cannot take an accurate time difference then, and the menu seems to
> disappear easily.
> 
> First we have to confirm if this is the same bug.  Marco mentioned
> Thunderbird, which AFAIK is not a "normal" GTK+ application.  So, we'll
> see.
> 
>   Federico
> 
So I have to manually patch the source for every single GTK
application!?!?

-- 
To unsubscribe, e-mail: [email protected]
To contact the owner, e-mail: [email protected]

Reply via email to