From 706ba0db4d54b8268e7ee634b54f7fae5c2d870b Mon Sep 17 00:00:00 2001 From: Robert Tari Date: Wed, 15 Dec 2021 12:01:57 +0100 Subject: src/desktop.vala: Fix device section layout fixes https://github.com/AyatanaIndicators/ayatana-indicator-bluetooth/issues/35 --- src/desktop.vala | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/desktop.vala b/src/desktop.vala index 56b61cb..ae9b0db 100644 --- a/src/desktop.vala +++ b/src/desktop.vala @@ -60,6 +60,14 @@ class Desktop: Profile actions += create_browse_files_action (); actions += create_send_file_action (); actions += create_show_settings_action (); + + if (!AyatanaCommon.utils_is_lomiri()) + { + SimpleAction pAction = new SimpleAction ("item-enabled", VariantType.BOOLEAN); + pAction.set_enabled(false); + actions += pAction; + } + foreach (var a in actions) action_group.add_action (a); @@ -177,7 +185,9 @@ class Desktop: Profile } // only show the device if it's got actions that we can perform on it - if (submenu.get_n_items () > 0) + int nItems = submenu.get_n_items(); + + if (nItems > 0) { item = new MenuItem (device.name, null); item.set_attribute_value ("icon", device.icon.serialize()); @@ -185,13 +195,22 @@ class Desktop: Profile if (AyatanaCommon.utils_is_lomiri()) { item.set_submenu (submenu); + device_section.append_item (item); } else { - item.set_section (submenu); + item.set_detailed_action("indicator.item-enabled"); + item.set_attribute("x-ayatana-type", "s", "org.ayatana.indicator.basic"); + item.set_attribute("x-ayatana-use-markup", "b", true); + item.set_label("" + device.name + ""); + device_section.append_item(item); + + for (int nItem = 0; nItem < nItems; nItem++) + { + MenuItem pItem = new MenuItem.from_model(submenu, nItem); + device_section.append_item(pItem); + } } - - device_section.append_item (item); } } } -- cgit v1.2.3