diff options
-rwxr-xr-x | amiga/gui.c | 39 | ||||
-rwxr-xr-x | amiga/menu.c | 48 | ||||
-rwxr-xr-x | amiga/menu.h | 1 |
3 files changed, 50 insertions, 38 deletions
diff --git a/amiga/gui.c b/amiga/gui.c index 00290d5f2..0b1948079 100755 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -1872,6 +1872,7 @@ void ami_switch_tab(struct gui_window_2 *gwin,bool redraw) } ami_update_buttons(gwin); + ami_menu_update_disabled(gwin->win, gwin->bw->current_content); if(redraw) { @@ -3619,43 +3620,7 @@ void gui_window_new_content(struct gui_window *g) if(g->shared->bw->browser_window_type != BROWSER_WINDOW_NORMAL || option_kiosk_mode == true) return; - if(content_get_type(c) <= CONTENT_CSS) - { - OnMenu(g->shared->win,AMI_MENU_SAVEAS_TEXT); - OnMenu(g->shared->win,AMI_MENU_SAVEAS_COMPLETE); - OnMenu(g->shared->win,AMI_MENU_SAVEAS_PDF); - OnMenu(g->shared->win,AMI_MENU_COPY); - OnMenu(g->shared->win,AMI_MENU_PASTE); - OnMenu(g->shared->win,AMI_MENU_SELECTALL); - OnMenu(g->shared->win,AMI_MENU_CLEAR); - OnMenu(g->shared->win,AMI_MENU_FIND); - OffMenu(g->shared->win,AMI_MENU_SAVEAS_IFF); - } - else - { - OffMenu(g->shared->win,AMI_MENU_SAVEAS_TEXT); - OffMenu(g->shared->win,AMI_MENU_SAVEAS_COMPLETE); - OffMenu(g->shared->win,AMI_MENU_SAVEAS_PDF); - OffMenu(g->shared->win,AMI_MENU_PASTE); - OffMenu(g->shared->win,AMI_MENU_SELECTALL); - OffMenu(g->shared->win,AMI_MENU_CLEAR); - OffMenu(g->shared->win,AMI_MENU_FIND); - -#ifdef WITH_NS_SVG - if(content_get_bitmap(c) || content_get_type(c) == CONTENT_SVG) -#else - if(content_get_bitmap(c)) -#endif - { - OnMenu(g->shared->win,AMI_MENU_COPY); - OnMenu(g->shared->win,AMI_MENU_SAVEAS_IFF); - } - else - { - OffMenu(g->shared->win,AMI_MENU_COPY); - OffMenu(g->shared->win,AMI_MENU_SAVEAS_IFF); - } - } + ami_menu_update_disabled(g->shared->win, c); } bool gui_window_scroll_start(struct gui_window *g) diff --git a/amiga/menu.c b/amiga/menu.c index e157fb627..37e6b9ab1 100755 --- a/amiga/menu.c +++ b/amiga/menu.c @@ -49,6 +49,7 @@ #include "amiga/gui_options.h" #include "amiga/print.h" #include "amiga/download.h" +#include <proto/intuition.h> BOOL menualreadyinit; const char * const netsurf_version; @@ -819,4 +820,49 @@ static const ULONG ami_asl_mime_hook(struct Hook *mh,struct FileRequester *fr,st free(mt); return ret; -} +} + +void ami_menu_update_disabled(struct Window *win, hlcache_handle *c) +{ + if(content_get_type(c) <= CONTENT_CSS) + { + OnMenu(win,AMI_MENU_SAVEAS_TEXT); + OnMenu(win,AMI_MENU_SAVEAS_COMPLETE); +#ifdef WITH_PDF_EXPORT + OnMenu(win,AMI_MENU_SAVEAS_PDF); +#endif + OnMenu(win,AMI_MENU_COPY); + OnMenu(win,AMI_MENU_PASTE); + OnMenu(win,AMI_MENU_SELECTALL); + OnMenu(win,AMI_MENU_CLEAR); + OnMenu(win,AMI_MENU_FIND); + OffMenu(win,AMI_MENU_SAVEAS_IFF); + } + else + { + OffMenu(win,AMI_MENU_SAVEAS_TEXT); + OffMenu(win,AMI_MENU_SAVEAS_COMPLETE); +#ifdef WITH_PDF_EXPORT + OffMenu(win,AMI_MENU_SAVEAS_PDF); +#endif + OffMenu(win,AMI_MENU_PASTE); + OffMenu(win,AMI_MENU_SELECTALL); + OffMenu(win,AMI_MENU_CLEAR); + OffMenu(win,AMI_MENU_FIND); + +#ifdef WITH_NS_SVG + if(content_get_bitmap(c) || content_get_type(c) == CONTENT_SVG) +#else + if(content_get_bitmap(c)) +#endif + { + OnMenu(win,AMI_MENU_COPY); + OnMenu(win,AMI_MENU_SAVEAS_IFF); + } + else + { + OffMenu(win,AMI_MENU_COPY); + OffMenu(win,AMI_MENU_SAVEAS_IFF); + } + } +} diff --git a/amiga/menu.h b/amiga/menu.h index 1c4e7d7ed..546acfe83 100755 --- a/amiga/menu.h +++ b/amiga/menu.h @@ -66,4 +66,5 @@ struct NewMenu *ami_create_menu(ULONG type); void ami_init_menulabs(void); void ami_free_menulabs(void); void ami_menupick(ULONG code,struct gui_window_2 *gwin,struct MenuItem *item); +void ami_menu_update_disabled(struct Window *win, hlcache_handle *c); #endif |