From 1fffdafe21967c361ef91b952a1fee6b87e50b5c Mon Sep 17 00:00:00 2001 From: Chris Young Date: Mon, 20 Oct 2008 18:06:46 +0000 Subject: Prepare for context menus svn path=/trunk/netsurf/; revision=5607 --- amiga/gui.c | 14 ++++++++++++++ amiga/options.h | 6 +++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/amiga/gui.c b/amiga/gui.c index bd46b8b53..dfd7496b4 100755 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -107,6 +107,7 @@ struct PopupMenuIFace *IPopupMenu = NULL; struct BitMap *throbber = NULL; ULONG throbber_width,throbber_height,throbber_frames; +BOOL rmbtrapped; static struct RastPort dummyrp; struct IFFHandle *iffh = NULL; @@ -509,6 +510,12 @@ void ami_handle_msg(void) if((x>=xs) && (y>=ys) && (xobjects[OID_MAIN],WA_RMBTrap,TRUE); + rmbtrapped=TRUE; + } + if(gwin->mouse_state & BROWSER_MOUSE_PRESS_1) { browser_window_mouse_track(gwin->bw,BROWSER_MOUSE_DRAG_1 | gwin->key_state,x,y); @@ -526,6 +533,12 @@ void ami_handle_msg(void) } else { + if(option_context_menu && rmbtrapped == TRUE) + { + SetAttrs(gwin->objects[OID_MAIN],WA_RMBTrap,FALSE); + rmbtrapped=FALSE; + } + if(!gwin->mouse_state) ami_update_pointer(gwin->win,GUI_POINTER_DEFAULT); } break; @@ -1926,6 +1939,7 @@ void gui_window_update_extent(struct gui_window *g) ULONG cur_tab = 0; if(!g) return; + if(!g->shared->bw->current_content) return; if(g->tab_node) GetAttr(CLICKTAB_Current,g->shared->gadgets[GID_TABS],(ULONG *)&cur_tab); diff --git a/amiga/options.h b/amiga/options.h index 7a74c2b68..56086be4c 100644 --- a/amiga/options.h +++ b/amiga/options.h @@ -28,7 +28,7 @@ extern int option_modeid; extern char *option_theme; extern bool option_no_iframes; extern bool option_utf8_clipboard; -extern int option_throbber_frames; // unused +extern bool option_context_menu; extern bool option_truecolour_mouse_pointers; extern bool option_use_os_pointers; extern bool option_force_tabs; @@ -45,7 +45,7 @@ int option_modeid = 0; \ char *option_theme = 0; \ bool option_no_iframes = false; \ bool option_utf8_clipboard = false; \ -int option_throbber_frames = 1; \ +bool option_context_menu = false; \ bool option_truecolour_mouse_pointers = true; \ bool option_use_os_pointers = false; \ bool option_force_tabs = false; \ @@ -62,7 +62,7 @@ char *option_recent_file = 0; \ { "theme", OPTION_STRING, &option_theme}, \ { "no_iframes", OPTION_BOOL, &option_no_iframes}, \ { "clipboard_write_utf8", OPTION_BOOL, &option_utf8_clipboard}, \ -{ "throbber_frames", OPTION_INTEGER, &option_throbber_frames}, \ +{ "context_menu", OPTION_BOOL, &option_context_menu}, \ { "truecolour_mouse_pointers", OPTION_BOOL, &option_truecolour_mouse_pointers}, \ { "os_mouse_pointers", OPTION_BOOL, &option_use_os_pointers}, \ { "always_open_tabs", OPTION_BOOL, &option_force_tabs}, \ -- cgit v1.2.3