summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2010-04-24 19:05:53 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2010-04-24 19:05:53 +0000
commit90079085bb107bb921c3416e7ce20a409492f405 (patch)
tree4c3faf3f483c9b9d883c6ae3879115293a52c198 /amiga
parented8759c2f2dbf00a5e871b0ddbdddf5d40574a7c (diff)
downloadnetsurf-90079085bb107bb921c3416e7ce20a409492f405.tar.gz
netsurf-90079085bb107bb921c3416e7ce20a409492f405.tar.bz2
Ensure menu state is correct when switching tabs
svn path=/trunk/netsurf/; revision=10476
Diffstat (limited to 'amiga')
-rwxr-xr-xamiga/gui.c39
-rwxr-xr-xamiga/menu.c48
-rwxr-xr-xamiga/menu.h1
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