summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-02-28 22:03:18 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-02-28 22:03:18 +0000
commit4213bd41fb8356dcf46f900a42c2f8da4da3b4fc (patch)
tree7c55e8ec2512f5855e6fcba95ee8e582c219f8a3 /amiga
parent8373123b719ac6b36d2f763d51f95b165d22c1be (diff)
downloadnetsurf-4213bd41fb8356dcf46f900a42c2f8da4da3b4fc.tar.gz
netsurf-4213bd41fb8356dcf46f900a42c2f8da4da3b4fc.tar.bz2
Avoid multiple duplicated menus
Allow selection menu to appear over blank area of text boxes svn path=/trunk/netsurf/; revision=11862
Diffstat (limited to 'amiga')
-rwxr-xr-xamiga/context_menu.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/amiga/context_menu.c b/amiga/context_menu.c
index bab4aa74b..afd8a27b6 100755
--- a/amiga/context_menu.c
+++ b/amiga/context_menu.c
@@ -144,6 +144,7 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y)
int box_x=0;
int box_y=0;
bool menuhascontent = false;
+ bool no_url = true, no_obj = true, no_sel = true;
if(!cc) return;
if(content_get_type(cc) != CONTENT_HTML) return;
@@ -180,7 +181,7 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y)
css_computed_visibility(curbox->style) == CSS_VISIBILITY_HIDDEN)
continue;
- if(curbox->href)
+ if(no_url && curbox->href)
{
IDoMethod(gwin->objects[OID_MENU],PM_INSERT,
NewObject(POPUPMENU_GetItemClass(), NULL,
@@ -210,10 +211,11 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y)
TAG_DONE),
~0);
+ no_url = false;
menuhascontent = true;
}
- if (curbox->object)
+ if(no_obj && curbox->object)
{
IDoMethod(gwin->objects[OID_MENU],PM_INSERT,
NewObject(POPUPMENU_GetItemClass(), NULL,
@@ -248,10 +250,14 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y)
TAG_DONE),
~0);
+ no_obj = false;
menuhascontent = true;
}
- if(curbox->text)
+ if(no_sel && (curbox->text) ||
+ (curbox->gadget && ((curbox->gadget->type == GADGET_TEXTBOX) ||
+ (curbox->gadget->type == GADGET_TEXTAREA) ||
+ (curbox->gadget->type == GADGET_PASSWORD))))
{
BOOL disabled_readonly = selection_read_only(gwin->bw->sel);
BOOL disabled_noselection = !selection_defined(gwin->bw->sel);
@@ -297,6 +303,7 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y)
TAG_DONE),
~0);
+ no_sel = false;
menuhascontent = true;
}