Ensure menu state is correct when switching tabs

svn path=/trunk/netsurf/; revision=10476
This commit is contained in:
Chris Young 2010-04-24 19:05:53 +00:00
parent ed8759c2f2
commit 90079085bb
3 changed files with 50 additions and 38 deletions

View File

@ -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)

View File

@ -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);
}
}
}

View File

@ -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