[UOS] UOS使用gtk实现的托盘右键,无法选择弹出选项
Tofloor
poster avatar
Stars
deepin
2023-07-29 01:42
Author

我使用app_indicator_new和gtk_menu_new实现的托盘程序在UOS上可以正常显示,但是右键弹出菜单项后,有时可以选中弹出的选项,有时不能。有时需要点两次才能出发activate事件相应

企业微信截图_16905369531228.png请问有大佬遇到过这种情况吗,我该如何解决

// 回调函数 - 退出程序
static void quit_callback(GtkWidget* widget, gpointer data)
{
logger_->info("quit_callback");
}

static void open_callback(GtkMenuItem *item, gpointer user_data)
{
logger_->info("open_callback");
}

// 创建托盘图标
void creatTrayIcon()
{
AppIndicator* indicator = app_indicator_new("my-indicator", "/opt/apps/files/resource/logo/source_app_logo.png", APP_INDICATOR_CATEGORY_APPLICATION_STATUS);

app_indicator_set_title(indicator, (const gchar*)get_translation_string(app_name));
app_indicator_set_status(indicator, APP_INDICATOR_STATUS_ACTIVE);

// 创建菜单
GtkWidget* menu = gtk_menu_new();

// 添加菜单项
GtkWidget* quit_item = gtk_menu_item_new_with_label((const gchar*)get_translation_string(open_caztp));


g_signal_connect(quit_item, "activate", G_CALLBACK(open_callback), NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), quit_item);
gtk_widget_set_sensitive(quit_item, true);

// 添加菜单项
GtkWidget* quit_item1 = gtk_menu_item_new_with_label((const gchar*)get_translation_string(quit_caztp));
g_signal_connect(quit_item1, "activate", G_CALLBACK(quit_callback), NULL);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), quit_item1);
gtk_widget_set_sensitive(quit_item1, true);

gtk_widget_show_all(menu); 

// 设置菜单
app_indicator_set_menu(indicator, GTK_MENU(menu));

}

Reply Favorite View the author
All Replies
沈拙言
deepin
2023-07-29 02:37
#1

bug,等修复

Reply View the author