diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/sbmanager.c | 20 | 
1 files changed, 10 insertions, 10 deletions
diff --git a/src/sbmanager.c b/src/sbmanager.c index 386f4ea..5ef3d04 100644 --- a/src/sbmanager.c +++ b/src/sbmanager.c @@ -127,18 +127,14 @@ static void sbpage_free(GList *sbitems)      }  } -static void get_icon_for_node(plist_t node, GList **list, sbservices_client_t sbc, gboolean skip_empty) +static void get_icon_for_node(plist_t node, GList **list, sbservices_client_t sbc)  {      char *png = NULL;      uint64_t pngsize = 0;      SBItem *di = NULL;      plist_t valuenode = NULL;      if (plist_get_node_type(node) != PLIST_DICT) { -        if (!skip_empty) { -            di = g_new0(SBItem, 1); -            *list = g_list_append(*list, di); -            return; -        } +        return;      }      valuenode = plist_dict_get_item(node, "displayIdentifier");      if (valuenode && (plist_get_node_type(valuenode) == PLIST_STRING)) { @@ -287,7 +283,7 @@ static gboolean get_icons(gpointer data)          num_dock_items = count;          for (i = 0; i < count; i++) {              plist_t node = plist_array_get_item(dock, i); -            get_icon_for_node(node, &dockitems, sbc, TRUE); +            get_icon_for_node(node, &dockitems, sbc);          }          if (total > 1) {              /* get all icons for the other pages */ @@ -313,7 +309,7 @@ static gboolean get_icons(gpointer data)                      for (i = 0; i < count; i++) {                          plist_t node = plist_array_get_item(nrow,                                                              i); -                        get_icon_for_node(node, &page, sbc, FALSE); +                        get_icon_for_node(node, &page, sbc);                      }                  }                  if (page) { @@ -821,15 +817,19 @@ static gboolean set_icons(gpointer data)          GList *page = g_list_nth_data(sbpages, i);          if (page) {              guint j; +            count = g_list_length(page); +            if (count <= 0) { +                continue; +            }              plist_t ppage = plist_new_array();              plist_t row = NULL; -            for (j = 0; j < g_list_length(page); j++) { +            for (j = 0; j < 16; j++) {                  SBItem *item = g_list_nth_data(page, j);                  if ((j % 4) == 0) {                      row = plist_new_array();                      plist_array_append_item(ppage, row);                  } -                if (item->node) { +                if (item && item->node) {                      plist_t valuenode = plist_dict_get_item(item->node,                                                              "displayIdentifier");                      if (!valuenode) {  | 
