mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 14:10:30 +00:00
label: Disconnect visible mnemonics in popovers
The controller handling mnemonics is limited to same-native, so showing mnemonics in other natives.
This commit is contained in:
parent
b19d4b9006
commit
b2ac42e576
@ -1951,6 +1951,9 @@ _gtk_label_mnemonics_visible_apply_recursively (GtkWidget *widget,
|
|||||||
child;
|
child;
|
||||||
child = gtk_widget_get_next_sibling (child))
|
child = gtk_widget_get_next_sibling (child))
|
||||||
{
|
{
|
||||||
|
if (GTK_IS_NATIVE (child))
|
||||||
|
continue;
|
||||||
|
|
||||||
_gtk_label_mnemonics_visible_apply_recursively (child, visible);
|
_gtk_label_mnemonics_visible_apply_recursively (child, visible);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4567,28 +4570,28 @@ static void
|
|||||||
connect_mnemonics_visible_notify (GtkLabel *label)
|
connect_mnemonics_visible_notify (GtkLabel *label)
|
||||||
{
|
{
|
||||||
GtkLabelPrivate *priv = gtk_label_get_instance_private (label);
|
GtkLabelPrivate *priv = gtk_label_get_instance_private (label);
|
||||||
GtkRoot *root;
|
GtkNative *native;
|
||||||
gboolean connected;
|
gboolean connected;
|
||||||
|
|
||||||
root = gtk_widget_get_root (GTK_WIDGET (label));
|
native = gtk_widget_get_native (GTK_WIDGET (label));
|
||||||
|
|
||||||
if (!GTK_IS_WINDOW (root))
|
if (!GTK_IS_WINDOW (native))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* always set up this widgets initial value */
|
/* always set up this widgets initial value */
|
||||||
priv->mnemonics_visible =
|
priv->mnemonics_visible =
|
||||||
gtk_window_get_mnemonics_visible (GTK_WINDOW (root));
|
gtk_window_get_mnemonics_visible (GTK_WINDOW (native));
|
||||||
|
|
||||||
connected =
|
connected =
|
||||||
GPOINTER_TO_INT (g_object_get_qdata (G_OBJECT (root), quark_mnemonics_visible_connected));
|
GPOINTER_TO_INT (g_object_get_qdata (G_OBJECT (native), quark_mnemonics_visible_connected));
|
||||||
|
|
||||||
if (!connected)
|
if (!connected)
|
||||||
{
|
{
|
||||||
g_signal_connect (root,
|
g_signal_connect (native,
|
||||||
"notify::mnemonics-visible",
|
"notify::mnemonics-visible",
|
||||||
G_CALLBACK (label_mnemonics_visible_changed),
|
G_CALLBACK (label_mnemonics_visible_changed),
|
||||||
label);
|
label);
|
||||||
g_object_set_qdata (G_OBJECT (root),
|
g_object_set_qdata (G_OBJECT (native),
|
||||||
quark_mnemonics_visible_connected,
|
quark_mnemonics_visible_connected,
|
||||||
GINT_TO_POINTER (1));
|
GINT_TO_POINTER (1));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user