diff --git a/include/modules/sni/item.hpp b/include/modules/sni/item.hpp index c8f835bd..a6180db1 100644 --- a/include/modules/sni/item.hpp +++ b/include/modules/sni/item.hpp @@ -46,7 +46,12 @@ class Item : public sigc::trackable { std::string menu; DbusmenuGtkMenu* dbus_menu = nullptr; Gtk::Menu* gtk_menu = nullptr; - bool item_is_menu = false; + /** + * ItemIsMenu flag means that the item only supports the context menu. + * Default value is true because libappindicator supports neither ItemIsMenu nor Activate method + * while compliant SNI implementation would always reset the flag to desired value. + */ + bool item_is_menu = true; private: void proxyReady(Glib::RefPtr& result); diff --git a/src/modules/sni/item.cpp b/src/modules/sni/item.cpp index 0d7ab695..51f97894 100644 --- a/src/modules/sni/item.cpp +++ b/src/modules/sni/item.cpp @@ -334,7 +334,7 @@ void Item::makeMenu(GdkEventButton* const& ev) { bool Item::handleClick(GdkEventButton* const& ev) { auto parameters = Glib::VariantContainerBase::create_tuple( {Glib::Variant::create(ev->x), Glib::Variant::create(ev->y)}); - if ((ev->button == 1 && (item_is_menu || !menu.empty())) || ev->button == 3) { + if ((ev->button == 1 && item_is_menu) || ev->button == 3) { makeMenu(ev); if (gtk_menu != nullptr) { #if GTK_CHECK_VERSION(3, 22, 0)