Merge branch 'matthiasc/for-master' into 'master'

Matthiasc/for master

See merge request GNOME/gtk!1611
This commit is contained in:
Matthias Clasen
2020-04-03 01:07:14 +00:00
9 changed files with 60 additions and 15 deletions

View File

@@ -2160,6 +2160,21 @@ keyboard_handle_modifiers (void *data,
direction = gdk_keymap_get_direction (keymap);
xkb_state = _gdk_wayland_keymap_get_xkb_state (keymap);
/* Note: the docs for xkb_state_update mask state that all parameters
* must be passed, or we may end up with an 'incoherent' state. But the
* Wayland modifiers event only includes a single group field, so we
* can't pass depressed/latched/locked groups.
*
* We assume that the compositor is sending us the 'effective' group
* (the protocol is not clear on that point), and pass it as the depressed
* group - we are basically pretending that the user holds down a key for
* this group at all times.
*
* This means that our xkb_state would answer a few questions differently
* from the compositors xkb_state - e.g. if you asked it about the latched
* group. But nobody is asking it those questions, so it does not really
* matter. We hope.
*/
xkb_state_update_mask (xkb_state, mods_depressed, mods_latched, mods_locked, group, 0, 0);
seat->key_modifiers = gdk_keymap_get_modifier_state (keymap);

View File

@@ -387,13 +387,20 @@ gtk_entry_accessible_ref_state_set (AtkObject *accessible)
AtkStateSet *state_set;
gboolean value;
GtkWidget *widget;
GtkWidget *text;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
if (widget == NULL)
return NULL;
text = gtk_widget_get_first_child (widget);
state_set = ATK_OBJECT_CLASS (gtk_entry_accessible_parent_class)->ref_state_set (accessible);
atk_state_set_add_state (state_set, ATK_STATE_FOCUSABLE);
if (gtk_widget_has_focus (text))
atk_state_set_add_state (state_set, ATK_STATE_FOCUSED);
g_object_get (G_OBJECT (widget), "editable", &value, NULL);
if (value)
atk_state_set_add_state (state_set, ATK_STATE_EDITABLE);

View File

@@ -77,6 +77,28 @@ gtk_menu_button_accessible_get_name (AtkObject *obj)
return _("Menu");
}
static AtkStateSet *
gtk_menu_button_accessible_ref_state_set (AtkObject *obj)
{
AtkStateSet *state_set;
GtkWidget *widget;
GtkWidget *button;
widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
if (widget == NULL)
return NULL;
button = gtk_widget_get_first_child (widget);
state_set = ATK_OBJECT_CLASS (gtk_menu_button_accessible_parent_class)->ref_state_set (obj);
atk_state_set_add_state (state_set, ATK_STATE_FOCUSABLE);
if (gtk_widget_has_focus (button))
atk_state_set_add_state (state_set, ATK_STATE_FOCUSED);
return state_set;
}
static void
gtk_menu_button_accessible_class_init (GtkMenuButtonAccessibleClass *klass)
{
@@ -86,6 +108,7 @@ gtk_menu_button_accessible_class_init (GtkMenuButtonAccessibleClass *klass)
class->initialize = gtk_menu_button_accessible_initialize;
class->get_n_children = gtk_menu_button_accessible_get_n_children;
class->ref_child = gtk_menu_button_accessible_ref_child;
class->ref_state_set = gtk_menu_button_accessible_ref_state_set;
}
static void

View File

@@ -787,7 +787,7 @@ window1
"radio button"
parent: grid
index: 1
state: enabled sensitive visible
state: enabled focusable sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
@@ -982,7 +982,7 @@ window1
parent: grid2
index: 2
name: Saturation
state: enabled focusable horizontal sensitive visible
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
@@ -996,7 +996,7 @@ window1
parent: grid2
index: 3
name: Value
state: enabled focusable horizontal sensitive visible
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
@@ -1068,7 +1068,7 @@ window1
parent: grid3
index: 1
name: Hue
state: enabled focusable horizontal sensitive visible
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget
@@ -1140,7 +1140,7 @@ window1
parent: grid4
index: 1
name: Alpha
state: enabled focusable horizontal sensitive visible
state: enabled horizontal sensitive visible
toolkit: gtk
<AtkComponent>
layer: widget

View File

@@ -132,7 +132,7 @@ window1
"text"
parent: combo2
index: 1
state: editable enabled sensitive showing single-line visible
state: editable enabled focusable sensitive showing single-line visible
toolkit: gtk
<AtkComponent>
layer: widget
@@ -235,7 +235,7 @@ window1
"text"
parent: combo4
index: 1
state: editable enabled sensitive showing single-line visible
state: editable enabled focusable sensitive showing single-line visible
toolkit: gtk
<AtkComponent>
layer: widget

View File

@@ -151,7 +151,7 @@ window1
parent: box1
index: 3
labelled-by: label1
state: editable enabled sensitive showing single-line visible
state: editable enabled focusable focused sensitive showing single-line visible
toolkit: gtk
<AtkComponent>
layer: widget
@@ -195,7 +195,7 @@ window1
parent: box1
index: 4
labelled-by: label2
state: editable enabled sensitive showing single-line visible
state: editable enabled focusable sensitive showing single-line visible
toolkit: gtk
<AtkComponent>
layer: widget
@@ -237,7 +237,7 @@ window1
"text"
parent: box1
index: 5
state: editable enabled sensitive showing single-line visible
state: editable enabled focusable sensitive showing single-line visible
toolkit: gtk
<AtkComponent>
layer: widget

View File

@@ -69,7 +69,7 @@ window1
parent: box1
index: 1
labelled-by: label1
state: editable enabled sensitive showing single-line visible
state: editable enabled focusable focused sensitive showing single-line visible
toolkit: gtk
<AtkComponent>
layer: widget

View File

@@ -27,7 +27,7 @@ window1
"text"
parent: box1
index: 0
state: editable enabled sensitive showing single-line visible
state: editable enabled focusable focused sensitive showing single-line visible
toolkit: gtk
placeholder-text: Subject or Addresses contain
<AtkComponent>
@@ -69,7 +69,7 @@ window1
"text"
parent: box1
index: 1
state: editable enabled sensitive showing single-line visible
state: editable enabled focusable sensitive showing single-line visible
toolkit: gtk
placeholder-text: Message contains
<AtkComponent>
@@ -111,7 +111,7 @@ window1
"text"
parent: box1
index: 2
state: editable enabled sensitive showing single-line visible
state: editable enabled focusable sensitive showing single-line visible
toolkit: gtk
placeholder-text: Body contains
<AtkComponent>

View File

@@ -41,7 +41,7 @@ window1
"scroll bar"
parent: grid1
index: 1
state: enabled focusable horizontal sensitive showing visible
state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget