Merge branch 'master' into master

pull/1002/head
nullobsi 2021-01-31 12:01:49 -08:00 committed by GitHub
commit 35062ceb99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 12 deletions

View File

@ -85,7 +85,7 @@ Addressed by *bluetooth*
"enabled": "", "enabled": "",
"disabled": "" "disabled": ""
}, },
"tooltip-format": "{status}" "tooltip-format": "{}"
} }
``` ```

View File

@ -103,8 +103,8 @@ static std::string get_from_desktop_app_info(const std::string &app_id)
/* Method 2 - use the app_id and check whether there is an icon with this name in the icon theme */ /* Method 2 - use the app_id and check whether there is an icon with this name in the icon theme */
static std::string get_from_icon_theme(const Glib::RefPtr<Gtk::IconTheme>& icon_theme, static std::string get_from_icon_theme(const Glib::RefPtr<Gtk::IconTheme>& icon_theme,
const std::string &app_id) { const std::string &app_id)
{
if (icon_theme->lookup_icon(app_id, 24)) if (icon_theme->lookup_icon(app_id, 24))
return app_id; return app_id;
@ -122,6 +122,10 @@ static bool image_load_icon(Gtk::Image& image, const Glib::RefPtr<Gtk::IconTheme
* send a single app-id, but in any case this works fine */ * send a single app-id, but in any case this works fine */
while (stream >> app_id) while (stream >> app_id)
{ {
size_t start = 0, end = app_id.size();
start = app_id.rfind(".", end);
std::string app_name = app_id.substr(start+1, app_id.size());
auto lower_app_id = app_id; auto lower_app_id = app_id;
std::transform(lower_app_id.begin(), lower_app_id.end(), lower_app_id.begin(), std::transform(lower_app_id.begin(), lower_app_id.end(), lower_app_id.begin(),
[](char c){ return std::tolower(c); }); [](char c){ return std::tolower(c); });
@ -130,10 +134,14 @@ static bool image_load_icon(Gtk::Image& image, const Glib::RefPtr<Gtk::IconTheme
if (icon_name.empty()) if (icon_name.empty())
icon_name = get_from_icon_theme(icon_theme, lower_app_id); icon_name = get_from_icon_theme(icon_theme, lower_app_id);
if (icon_name.empty())
icon_name = get_from_icon_theme(icon_theme, app_name);
if (icon_name.empty()) if (icon_name.empty())
icon_name = get_from_desktop_app_info(app_id); icon_name = get_from_desktop_app_info(app_id);
if (icon_name.empty()) if (icon_name.empty())
icon_name = get_from_desktop_app_info(lower_app_id); icon_name = get_from_desktop_app_info(lower_app_id);
if (icon_name.empty())
icon_name = get_from_desktop_app_info(app_name);
if (icon_name.empty()) if (icon_name.empty())
continue; continue;