diff --git a/c/auxiliary b/c/auxiliary index 95039864846ec2a86bfa8ec4cc151b94b0ce687a..628d90f42a02730b7b94823b6e94c6267bf98d5f 100644 --- a/c/auxiliary +++ b/c/auxiliary @@ -90,11 +90,28 @@ extern _kernel_oserror *menu_update_size(MenuInternal *menu_int) { if (entry->icon_flags & wimp_ICONFLAGS_TEXT) { width = (entry->icon_data.indirect_text.buff_len+1)<<4; } else { - regs.r[0] = os_SpriteOp_ReadInfo; - regs.r[2] = (int) entry->icon_data.indirect_sprite.sprite.name; + /* IDJ: 22-May-95: bug-fix AQU-01264: look in user sprite area if + one is defined first, then in wimp sprite area as a + fall-back. + */ + e = NULL; + + if (entry->icon_data.indirect_sprite.sprite_area != (void *)1 /* user area */) + { + regs.r[0] = os_SpriteOp_ReadInfo + 256; + regs.r[1] = (int) entry->icon_data.indirect_sprite.sprite_area; + regs.r[2] = (int) entry->icon_data.indirect_sprite.sprite.name; + + e = _kernel_swi (OS_SpriteOp, ®s, ®s); + } - if ((e = _kernel_swi (Wimp_SpriteOp, ®s, ®s)) != NULL) { - return e; + if (e != NULL || entry->icon_data.indirect_sprite.sprite_area == (void *)1 /* WIMP area */) + { + regs.r[0] = os_SpriteOp_ReadInfo; + regs.r[2] = (int) entry->icon_data.indirect_sprite.sprite.name; + + if ((e = _kernel_swi (Wimp_SpriteOp, ®s, ®s)) != NULL) + return e; } width = regs.r[3]; mode = regs.r[6]; diff --git a/c/create b/c/create index c3e3a76549a87a34ca0d0158e3a3bc925a512423..5f8e09db17ccae47b637bd5bf343496b50651875 100644 --- a/c/create +++ b/c/create @@ -229,7 +229,8 @@ _kernel_oserror *create_menu_aux (MenuTemplate *menu_temp, ObjectID object_id, T } if (num_entries>0) { - wimp_menu_entry(menu,0)->flags |= wimp_MENUFLAGS_TITLE_INDIRECT; + if (menu->hdr.title.indirect_text.buffer) /* SJM: 14/06/96: Only set indirect bit if there is a title */ + wimp_menu_entry(menu,0)->flags |= wimp_MENUFLAGS_TITLE_INDIRECT; wimp_menu_entry(menu,num_entries-1)->flags |= wimp_MENUFLAGS_LAST_ITEM; } if ((e = menu_update_size(menu_int)) != NULL) { diff --git a/cmhg/Modhdr b/cmhg/Modhdr index e259f005bc4eda0a0db0fc7d491964efef6e33d0..87936592afc27a820b6f1aeb4f84f46c90ca5731 100644 --- a/cmhg/Modhdr +++ b/cmhg/Modhdr @@ -22,7 +22,8 @@ ; PRODUCT RELEASE ; 06-Feb-95: IDJ: version 0.22 ; fixes AQU-01203 (menu_set_entry_text bug) for Black ROM -; +; 14-Jun-96: SJM: version 0.25 +; fixes no title width problem initialisation-code: Menu_init @@ -33,7 +34,7 @@ service-call-handler: Menu_services 0x44ec1, 0x44ec2, 0x44ec3 title-string: Menu -help-string: Menu 0.23 +help-string: Menu 0.25 command-keyword-table: Menu_commands Menu_Memory() diff --git a/cmhg/Modhdr_NoD b/cmhg/Modhdr_NoD index 3c033a702e545ffa1f6f2ffcec9c56fcbbf3ad34..8c51d9e760bf8df9080992f8dd9b707ed6f7a3b1 100644 --- a/cmhg/Modhdr_NoD +++ b/cmhg/Modhdr_NoD @@ -22,6 +22,8 @@ ; PRODUCT RELEASE ; 06-Feb-95: IDJ: version 0.22 ; fixes AQU-01203 (menu_set_entry_text bug) for Black ROM +; 14-Jun-96: SJM: version 0.25 +; fixes no title width problem ; @@ -33,7 +35,7 @@ service-call-handler: Menu_services 0x44ec1, 0x44ec2, 0x44ec3 title-string: Menu -help-string: Menu 0.23 +help-string: Menu 0.25 swi-chunk-base-number: 0x828c0