diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2013-06-08 16:19:39 +0100 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2013-06-08 16:19:39 +0100 |
commit | ee82850ee11cd7b3deff1233fea1c7befd5ddfab (patch) | |
tree | 836d1fcf1edf385489a2f95d3ed3e71caa99b2ab | |
parent | cb10537b0b5ce71d38b300b4b0b4860493760cc4 (diff) | |
download | netsurf-chris/gadtools-53-5.tar.gz |
Don't add a bitmap if the item is a folder (this seems to be buggy)chris/gadtools-53-5
-rw-r--r-- | amiga/menu.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/amiga/menu.c b/amiga/menu.c index 844b44bc7..dfea80b52 100644 --- a/amiga/menu.c +++ b/amiga/menu.c @@ -149,6 +149,7 @@ static void ami_menu_alloc_item(struct gui_window_2 *gwin, int num, UBYTE type, if((label == NM_BARLABEL) || (strcmp(label, "--") == 0)) { gwin->menulab[num] = NM_BARLABEL; + bm = NULL; } else { if((num >= AMI_MENU_HOTLIST) && (num <= AMI_MENU_HOTLIST_MAX)) { gwin->menulab[num] = ami_utf8_easy(label); @@ -163,7 +164,7 @@ static void ami_menu_alloc_item(struct gui_window_2 *gwin, int num, UBYTE type, ((GadToolsBase->lib_Version == 53) && (GadToolsBase->lib_Revision >= 5))) { /* GadTools 53.5+ only. For now we will only create the menu using label.image if there's a bitmap associated with the item. */ - if((bm != NULL) && (num == AMI_MENU_HOTLIST)) { + if(bm != NULL) { struct DrawInfo *dri = GetScreenDrawInfo(scrn); // struct BitMap *menu_icon = ami_bitmap_get_native(bm, 16, 16, NULL); @@ -179,10 +180,10 @@ static void ami_menu_alloc_item(struct gui_window_2 *gwin, int num, UBYTE type, BITMAP_Height, 16, BitMapEnd, */ - LABEL_Text, gwin->menulab[num], + LABEL_Text, "test", //gwin->menulab[num], LabelEnd; - gwin->menutype[num] |= MENU_IMAGE; + if(gwin->menuobj[num]) gwin->menutype[num] |= MENU_IMAGE; // } FreeScreenDrawInfo(scrn, dri); } @@ -327,7 +328,7 @@ void ami_menu_refresh(struct gui_window_2 *gwin) struct NewMenu *ami_create_menu(struct gui_window_2 *gwin) { int i; - + gwin->menu = AllocVec(sizeof(struct NewMenu) * (AMI_MENU_AREXX_MAX + 1), MEMF_CLEAR); ami_init_menulabs(gwin); ami_menu_scan(ami_tree_get_tree(hotlist_window), gwin); @@ -336,13 +337,12 @@ struct NewMenu *ami_create_menu(struct gui_window_2 *gwin) for(i=0;i<=AMI_MENU_AREXX_MAX;i++) { gwin->menu[i].nm_Type = gwin->menutype[i]; - if(gwin->menuobj[i]) - gwin->menu[i].nm_Label = (void *)gwin->menuobj[i]; + if(gwin->menutype[i] & MENU_IMAGE) + gwin->menu[i].nm_Label = (void *)gwin->menuobj[i]; else gwin->menu[i].nm_Label = gwin->menulab[i]; if(gwin->menukey[i]) gwin->menu[i].nm_CommKey = &gwin->menukey[i]; - gwin->menu[i].nm_Flags = 0; if(gwin->menu_hook[i].h_Entry) gwin->menu[i].nm_UserData = &gwin->menu_hook[i]; } @@ -461,6 +461,7 @@ void ami_menu_scan_2(struct tree *tree, struct node *root, WORD *gen, struct node_element *element=NULL; struct node *node; UBYTE menu_type; + struct bitmap *bm = NULL; *gen = *gen + 1; @@ -472,7 +473,9 @@ void ami_menu_scan_2(struct tree *tree, struct node *root, WORD *gen, if(*gen == 1) menu_type = NM_ITEM; if(*gen == 2) menu_type = NM_SUB; -struct bitmap *bm = tree_url_node_get_icon(node); //ami_bitmap_from_datatype("TBimages:list_arexx"); + + if(tree_node_is_folder(node) == false) + bm = tree_url_node_get_icon(node); //ami_bitmap_from_datatype("TBimages:list_arexx"); ami_menu_alloc_item(gwin, *item, menu_type, tree_url_node_get_title(node), 0, bm, ami_menu_item_hotlist_entries, (void *)tree_url_node_get_url(node)); |