Mystery code in gtkmenu.c



Title: Mystery code in gtkmenu.c

I;m trying to fix a bug where, in a touch-screen environment, you can touch a GtkComboBox to drop down its menu and - sometimes - one of the top two items (which happen to popup over the combo box) will be selected. Even though I've pushed MENU_SHELL_TIMEOUT (gtkmenushell.c) up to 900 millseconds.

The culprit seems to be the

  if (definitely_within_item (menu_item, event->x, event->y))
    menu_shell->activate_time = 0;

statement in gtk_menu_motion_notify. (Lines 2869 and 2870 of gtkmenu.c, v 2.10.9.)

The effect is that if the cursor is on a menu item when it pops up, it will disable the "very fast press-release" protection in gtk_menu_shell_button_release.

My question is: Why?

I have found that commenting this statement out fixes my bug, but I'm wary as *I really do not understand the point" of the definitely_within_item test.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]