Explorar o código

WindowServer: Don't try to load unspecified icons

Some apps (looking at you, VisualBuilder) don't specify an icon
in their .af file, so WindowServer was trying to open an empty path.
That made it print a perror message to the log each time. Let's not
do that ^)
Sergey Bugaev %!s(int64=5) %!d(string=hai) anos
pai
achega
960df8a62a
Modificáronse 1 ficheiros con 5 adicións e 1 borrados
  1. 5 1
      Servers/WindowServer/MenuManager.cpp

+ 5 - 1
Servers/WindowServer/MenuManager.cpp

@@ -102,8 +102,12 @@ MenuManager::MenuManager()
     // Then we create and insert all the app menu items into the right place.
     // Then we create and insert all the app menu items into the right place.
     int app_identifier = 1;
     int app_identifier = 1;
     for (const auto& app : m_apps) {
     for (const auto& app : m_apps) {
+        RefPtr<Gfx::Bitmap> icon;
+        if (!app.icon_path.is_empty())
+             icon = Gfx::Bitmap::load_from_file(app.icon_path);
+
         auto parent_menu = m_app_category_menus.get(app.category).value_or(*m_system_menu);
         auto parent_menu = m_app_category_menus.get(app.category).value_or(*m_system_menu);
-        parent_menu->add_item(make<MenuItem>(*m_system_menu, app_identifier++, app.name, String(), true, false, false, Gfx::Bitmap::load_from_file(app.icon_path)));
+        parent_menu->add_item(make<MenuItem>(*m_system_menu, app_identifier++, app.name, String(), true, false, false, icon));
     }
     }
 
 
     m_system_menu->add_item(make<MenuItem>(*m_system_menu, MenuItem::Separator));
     m_system_menu->add_item(make<MenuItem>(*m_system_menu, MenuItem::Separator));