mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 14:10:30 +00:00
Deprecate and ignore gtk-menu popup and popdown delay settings
Just pick good defaults. The a11y team confirmed that they don't rely on them.
This commit is contained in:
parent
e7b5be93b1
commit
76936193d5
@ -130,6 +130,9 @@
|
||||
#define MENU_SCROLL_TIMEOUT1 50
|
||||
#define MENU_SCROLL_TIMEOUT2 20
|
||||
|
||||
#define MENU_POPUP_DELAY 225
|
||||
#define MENU_POPDOWN_DELAY 1000
|
||||
|
||||
#define ATTACH_INFO_KEY "gtk-menu-child-attach-info-key"
|
||||
#define ATTACHED_MENUS "gtk-attached-menus"
|
||||
|
||||
@ -4318,8 +4321,6 @@ gtk_menu_set_submenu_navigation_region (GtkMenu *menu,
|
||||
|
||||
if (event->x >= 0 && event->x < width)
|
||||
{
|
||||
gint popdown_delay;
|
||||
|
||||
gtk_menu_stop_navigating_submenu (menu);
|
||||
|
||||
/* The navigation region is the triangle closest to the x/y
|
||||
@ -4358,16 +4359,12 @@ gtk_menu_set_submenu_navigation_region (GtkMenu *menu,
|
||||
return;
|
||||
}
|
||||
|
||||
g_object_get (gtk_widget_get_settings (GTK_WIDGET (menu)),
|
||||
"gtk-menu-popdown-delay", &popdown_delay,
|
||||
NULL);
|
||||
|
||||
popdown_data = g_new (GtkMenuPopdownData, 1);
|
||||
popdown_data->menu = menu;
|
||||
popdown_data->device = gdk_event_get_device ((GdkEvent *) event);
|
||||
|
||||
priv->navigation_timeout = gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT,
|
||||
popdown_delay,
|
||||
MENU_POPDOWN_DELAY,
|
||||
gtk_menu_stop_navigating_submenu_cb,
|
||||
popdown_data,
|
||||
(GDestroyNotify) g_free);
|
||||
@ -5093,13 +5090,7 @@ gtk_menu_attach (GtkMenu *menu,
|
||||
static gint
|
||||
gtk_menu_get_popup_delay (GtkMenuShell *menu_shell)
|
||||
{
|
||||
gint popup_delay;
|
||||
|
||||
g_object_get (gtk_widget_get_settings (GTK_WIDGET (menu_shell)),
|
||||
"gtk-menu-popup-delay", &popup_delay,
|
||||
NULL);
|
||||
|
||||
return popup_delay;
|
||||
return MENU_POPUP_DELAY;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
|
@ -52,6 +52,8 @@
|
||||
#include "gtktypebuiltins.h"
|
||||
#include "gtkwidgetprivate.h"
|
||||
|
||||
#define MENU_BAR_POPUP_DELAY 0
|
||||
|
||||
/* Properties */
|
||||
enum {
|
||||
PROP_0,
|
||||
@ -862,13 +864,7 @@ get_shadow_type (GtkMenuBar *menubar)
|
||||
static gint
|
||||
gtk_menu_bar_get_popup_delay (GtkMenuShell *menu_shell)
|
||||
{
|
||||
gint popup_delay;
|
||||
|
||||
g_object_get (gtk_widget_get_settings (GTK_WIDGET (menu_shell)),
|
||||
"gtk-menu-bar-popup-delay", &popup_delay,
|
||||
NULL);
|
||||
|
||||
return popup_delay;
|
||||
return MENU_BAR_POPUP_DELAY;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -45,6 +45,8 @@
|
||||
#include "a11y/gtkmenuitemaccessible.h"
|
||||
#include "deprecated/gtktearoffmenuitem.h"
|
||||
|
||||
#define MENU_POPUP_DELAY 225
|
||||
|
||||
/**
|
||||
* SECTION:gtkmenuitem
|
||||
* @Short_description: The widget used for item in menus
|
||||
@ -1953,19 +1955,9 @@ get_popup_delay (GtkWidget *widget)
|
||||
|
||||
parent = gtk_widget_get_parent (widget);
|
||||
if (GTK_IS_MENU_SHELL (parent))
|
||||
{
|
||||
return _gtk_menu_shell_get_popup_delay (GTK_MENU_SHELL (parent));
|
||||
}
|
||||
return _gtk_menu_shell_get_popup_delay (GTK_MENU_SHELL (parent));
|
||||
else
|
||||
{
|
||||
gint popup_delay;
|
||||
|
||||
g_object_get (gtk_widget_get_settings (widget),
|
||||
"gtk-menu-popup-delay", &popup_delay,
|
||||
NULL);
|
||||
|
||||
return popup_delay;
|
||||
}
|
||||
return MENU_POPUP_DELAY;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -60,6 +60,8 @@
|
||||
|
||||
|
||||
#define MENU_SHELL_TIMEOUT 500
|
||||
#define MENU_POPUP_DELAY 225
|
||||
#define MENU_POPDOWN_DELAY 1000
|
||||
|
||||
#define PACK_DIRECTION(m) \
|
||||
(GTK_IS_MENU_BAR (m) \
|
||||
@ -837,14 +839,9 @@ gtk_menu_shell_button_release (GtkWidget *widget,
|
||||
else if (GTK_MENU_SHELL_GET_CLASS (menu_shell)->submenu_placement != GTK_TOP_BOTTOM ||
|
||||
priv->activated_submenu)
|
||||
{
|
||||
gint popdown_delay;
|
||||
GTimeVal *popup_time;
|
||||
gint64 usec_since_popup = 0;
|
||||
|
||||
g_object_get (gtk_widget_get_settings (widget),
|
||||
"gtk-menu-popdown-delay", &popdown_delay,
|
||||
NULL);
|
||||
|
||||
popup_time = g_object_get_data (G_OBJECT (submenu),
|
||||
"gtk-menu-exact-popup-time");
|
||||
|
||||
@ -870,7 +867,7 @@ gtk_menu_shell_button_release (GtkWidget *widget,
|
||||
*/
|
||||
if (!priv->activated_submenu &&
|
||||
(usec_since_popup == 0 ||
|
||||
usec_since_popup > popdown_delay * 1000))
|
||||
usec_since_popup > MENU_POPDOWN_DELAY * 1000))
|
||||
{
|
||||
_gtk_menu_item_popdown_submenu (menu_item);
|
||||
}
|
||||
@ -1745,14 +1742,7 @@ _gtk_menu_shell_get_popup_delay (GtkMenuShell *menu_shell)
|
||||
}
|
||||
else
|
||||
{
|
||||
gint popup_delay;
|
||||
GtkWidget *widget = GTK_WIDGET (menu_shell);
|
||||
|
||||
g_object_get (gtk_widget_get_settings (widget),
|
||||
"gtk-menu-popup-delay", &popup_delay,
|
||||
NULL);
|
||||
|
||||
return popup_delay;
|
||||
return MENU_POPUP_DELAY;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1312,6 +1312,13 @@ gtk_settings_class_init (GtkSettingsClass *class)
|
||||
NULL);
|
||||
g_assert (result == PROP_MENU_IMAGES);
|
||||
|
||||
/**
|
||||
* GtkSettings:gtk-menu-bar-popup-delay:
|
||||
*
|
||||
* Delay before the submenus of a menu bar appear.
|
||||
*
|
||||
* Deprecated: 3.10: This setting is ignored.
|
||||
*/
|
||||
result = settings_install_property_parser (class,
|
||||
g_param_spec_int ("gtk-menu-bar-popup-delay",
|
||||
P_("Delay before drop down menus appear"),
|
||||
@ -1358,6 +1365,13 @@ gtk_settings_class_init (GtkSettingsClass *class)
|
||||
NULL);
|
||||
g_assert (result == PROP_CAN_CHANGE_ACCELS);
|
||||
|
||||
/**
|
||||
* GtkSettings:gtk-menu-popup-delay:
|
||||
*
|
||||
* Minimum time the pointer must stay over a menu item before the submenu appear.
|
||||
*
|
||||
* Deprecated: 3.10: This setting is ignored.
|
||||
*/
|
||||
result = settings_install_property_parser (class,
|
||||
g_param_spec_int ("gtk-menu-popup-delay",
|
||||
P_("Delay before submenus appear"),
|
||||
@ -1368,6 +1382,13 @@ gtk_settings_class_init (GtkSettingsClass *class)
|
||||
NULL);
|
||||
g_assert (result == PROP_MENU_POPUP_DELAY);
|
||||
|
||||
/**
|
||||
* GtkSettings:gtk-menu-popdown-delay:
|
||||
*
|
||||
* The time before hiding a submenu when the pointer is moving towards the submenu.
|
||||
*
|
||||
* Deprecated: 3.10: This setting is ignored.
|
||||
*/
|
||||
result = settings_install_property_parser (class,
|
||||
g_param_spec_int ("gtk-menu-popdown-delay",
|
||||
P_("Delay before hiding a submenu"),
|
||||
|
Loading…
Reference in New Issue
Block a user