[gnome-panel] status-notifier: fix dbus radio menu items



commit 7601953249c0d500b8e104cb48a3fb97f584dfbd
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Sat Jan 20 15:46:53 2018 +0200

    status-notifier: fix dbus radio menu items
    
    Received data over dbus does not include enough info about
    radio menu items - we don't know how to group radio menu items.
    
    Without grouping all radio items appears as checked. Fix this
    by creating check menu items and make them look like radio items
    with gtk_check_menu_item_set_draw_as_radio() function.

 modules/status-notifier/sn-dbus-menu-item.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/modules/status-notifier/sn-dbus-menu-item.c b/modules/status-notifier/sn-dbus-menu-item.c
index 3e740b1..d410fe2 100644
--- a/modules/status-notifier/sn-dbus-menu-item.c
+++ b/modules/status-notifier/sn-dbus-menu-item.c
@@ -182,8 +182,14 @@ sn_dbus_menu_item_new (GVariant *props)
         }
       else if (g_strcmp0 (item->toggle_type, "radio") == 0)
         {
-          item->item = gtk_radio_menu_item_new (NULL);
+          AtkObject *accessible;
+
+          item->item = gtk_check_menu_item_new ();
+          gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (item->item), TRUE);
           gtk_menu_item_set_use_underline (GTK_MENU_ITEM (item->item), TRUE);
+
+          accessible = gtk_widget_get_accessible (item->item);
+          atk_object_set_role (accessible, ATK_ROLE_RADIO_MENU_ITEM);
         }
       else
         {


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