1. 29 Jul, 2022 1 commit
    • Caolán McNamara's avatar
      gtk_tristate_accessible_value_get warning due to g_lo_action_group_remove on "check" entry · a3623f49
      Caolán McNamara authored
      In LibreOffice using gtk4 I get frequent:
      
      (soffice:2054897): Gtk-CRITICAL **: 19:56:51.490: gtk_tristate_accessible_value_get: assertion 'value->value_class == &GTK_TRISTATE_ACCESSIBLE_VALUE' failed
      
      warnings on navigating toplevel menus. Debugging I see that gtk_tristate_accessible_value_get fails
      because the value for GTK_ACCESSIBLE_STATE_CHECKED is GTK_UNDEFINED_ACCESSIBLE_VALUE when queried.
      
      the issue seems to be:
      a) libreoffice has a checkbox menu entry
      b) sometimes g_action_group_action_removed is called on a "checked" item
      c) gtk_menu_tracker_item_action_removed is called and changes the "role" from
         GTK_MENU_TRACKER_ITEM_ROLE_CHECKED to GTK_MENU_TRACKER_ITEM_ROLE_NORMAL
      d) gtk_model_button_set_role calls update_accessible_properties which
         does gtk_accessible_reset_state(..., GTK_ACCESSIBLE_STATE_CHECKED) because
         the role is no longer GTK_BUTTON_ROLE_CHECK.
      e) GTK_ACCESSIBLE_STATE_CHANGE_CHECKED is set because the state changed, but
         the value of the checked state is now GTK_UNDEFINED_ACCESSIBLE_VALUE,
         triggering the Gtk-CRITICAL
      
      not sure why the role is changed when the item is removed, in this
      speculative commit if the role is left unchanged then the warning
      doesn't happen anymore as expected.
      
       0x00007fffd8b5b3a7 in gtk_tristate_accessible_value_get (value=<optimized out>) at ../gtk/gtkaccessiblevaluestatic.c:205
       gtk_at_spi_context_state_change
       (ctx=<optimized out>, changed_states=<optimized out>, changed_properties=<optimized out>, changed_relations=<optimized out>, states=<optimized out>, properties=0xa939a00, relations=0xa939b80) at ../gtk/a11y/gtkatspicontext.c:956
       0x00007fffd88c3733 in gtk_at_context_update (self=0x99478c0) at ../gtk/gtkatcontext.c:699
       gtk_at_context_update (self=0x99478c0) at ../gtk/gtkatcontext.c:686
       0x00007fffd89b7470 in update_accessible_properties (button=0x992fb00) at ../gtk/gtkmodelbutton.c:583
       0x00007fffd89b78a8 in gtk_model_button_set_role (role=<optimized out>, self=0x992fb00) at ../gtk/gtkmodelbutton.c:615
       gtk_model_button_set_property (object=0x992fb00, prop_id=<optimized out>, value=<optimized out>, pspec=<optimized out>) at ../gtk/gtkmodelbutton.c:949
       0x00007ffff25c4ab5 in object_set_property () at /lib64/libgobject-2.0.so.0
       0x00007ffff25c6c71 in g_object_setv () at /lib64/libgobject-2.0.so.0
       0x00007ffff25c6d4f in g_object_set_property () at /lib64/libgobject-2.0.so.0
       0x00007ffff25b63c3 in on_source_notify () at /lib64/libgobject-2.0.so.0
       0x00007ffff25b4db0 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
       0x00007ffff25e14d6 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
       0x00007ffff25d1a2e in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
       0x00007ffff25d1cb3 in g_signal_emit () at /lib64/libgobject-2.0.so.0
       0x00007ffff25bf204 in g_object_dispatch_properties_changed.lto_priv () at /lib64/libgobject-2.0.so.0
       0x00007ffff25b539c in g_object_notify_queue_thaw.lto_priv () at /lib64/libgobject-2.0.so.0
       0x00007ffff25c302b in g_object_thaw_notify () at /lib64/libgobject-2.0.so.0
       0x00007fffd8ad5afe in gtk_action_muxer_action_removed (muxer=0x9930410, action_name=0xb60bfd0 "win.window-154879424-572") at ../gtk/gtkactionmuxer.c:558
       0x00007fffd8ad5afe in gtk_action_muxer_action_removed (muxer=0x9930010, action_name=0xb60bfd0 "win.window-154879424-572") at ../gtk/gtkactionmuxer.c:558
       0x00007fffd8ad5afe in gtk_action_muxer_action_removed (muxer=0x9926290, action_name=0xb60bfd0 "win.window-154879424-572") at ../gtk/gtkactionmuxer.c:558
       0x00007fffd8ad5afe in gtk_action_muxer_action_removed (muxer=0x993fc10, action_name=0xb60bfd0 "win.window-154879424-572") at ../gtk/gtkactionmuxer.c:558
       0x00007fffd8ad5afe in gtk_action_muxer_action_removed (muxer=0x983e530, action_name=0xb60bfd0 "win.window-154879424-572") at ../gtk/gtkactionmuxer.c:558
       0x00007fffd8ad5afe in gtk_action_muxer_action_removed (muxer=0x9835bc0, action_name=0xb60bfd0 "win.window-154879424-572") at ../gtk/gtkactionmuxer.c:558
       0x00007fffd8ad5afe in gtk_action_muxer_action_removed (muxer=0x982cf40, action_name=0xb60bfd0 "win.window-154879424-572") at ../gtk/gtkactionmuxer.c:558
       0x00007fffd8ad5afe in gtk_action_muxer_action_removed (muxer=muxer@entry=0x9314440, action_name=action_name@entry=0xb60bfd0 "win.window-154879424-572")
       at ../gtk/gtkactionmuxer.c:558
       0x00007fffd8ad5b43 in gtk_action_muxer_action_removed_from_group
       (action_group=<optimized out>, action_name=0xb431760 "window-154879424-572", user_data=<optimized out>) at ../gtk/gtkactionmuxer.c:572
       0x00007ffff25b4db0 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
       0x00007ffff25e14d6 in signal_emit_unlocked_R.isra.0 () at /lib64/libgobject-2.0.so.0
       0x00007ffff25d1a2e in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
       0x00007ffff25d1cb3 in g_signal_emit () at /lib64/libgobject-2.0.so.0
       0x00007fffd92e3630 in g_lo_action_group_remove(GLOActionGroup*, gchar const*) (group=0x419b940, action_name=0xb60bd40 "window-154879424-572")
       at vcl/unx/gtk4/../gtk3/gloactiongroup.cxx:384
       0x00007fffd92ce4a9 in GtkSalMenu::NativeSetItemCommand(unsigned int, unsigned int, unsigned short, char const*, MenuItemBits, bool, bool)
        (this=0x93b45c0, nSection=0, nItemPos=0, nId=572, aCommand=0xb60bd40 "window-154879424-572", nBits=MenuItemBits::CHECKABLE, bChecked=true, bIsSubmenu=false)
       at vcl/unx/gtk4/../gtk3/gtksalmenu.cxx:1330
       0x00007fffd92cce3c in GtkSalMenu::ImplUpdate(bool, bool) (this=0x93b45c0, bRecurse=false, bRemoveDisabledEntries=false)
       at vcl/unx/gtk4/../gtk3/gtksalmenu.cxx:308
       0x00007fffd92cf4e0 in GtkSalMenu::Update() (this=0x93b45c0) at vcl/unx/gtk4/../gtk3/gtksalmenu.cxx:400
       0x00007fffedf7d438 in Menu::UpdateNativeMenu() (this=0x93b4480) at vcl/source/window/menu.cxx:2180
       0x00007fffd92d3975 in GtkSalMenu::Activate(char const*) (pCommand=0xb5fb0f4 "window-154872880-571") at vcl/unx/gtk4/../gtk3/gtksalmenu.cxx:1489
      a3623f49
  2. 09 May, 2022 1 commit
  3. 08 May, 2022 5 commits
  4. 07 May, 2022 15 commits
  5. 06 May, 2022 18 commits