summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xamiga/clipboard.c4
-rwxr-xr-xamiga/gui.c35
-rwxr-xr-xamiga/gui.h2
3 files changed, 8 insertions, 33 deletions
diff --git a/amiga/clipboard.c b/amiga/clipboard.c
index 83548304e..8ecc4ef30 100755
--- a/amiga/clipboard.c
+++ b/amiga/clipboard.c
@@ -20,7 +20,6 @@
#include "desktop/plotters.h"
#include "desktop/selection.h"
#include "desktop/textinput.h"
-#include "render/box.h"
#include "utils/utf8.h"
#include "amiga/bitmap.h"
@@ -345,7 +344,6 @@ struct ami_text_selection *ami_selection_to_text(struct gui_window_2 *gwin)
void ami_drag_selection(struct selection *s)
{
- struct box *text_box;
int x;
int y;
char *utf8text;
@@ -362,7 +360,7 @@ void ami_drag_selection(struct selection *s)
x = gwin->win->MouseX;
y = gwin->win->MouseY;
- if(text_box = ami_text_box_at_point(gwin, (ULONG *)&x, (ULONG *)&y))
+ if(ami_text_box_at_point(gwin, (ULONG *)&x, (ULONG *)&y))
{
iffh = ami_clipboard_init_internal(1);
diff --git a/amiga/gui.c b/amiga/gui.c
index 8aef21a3f..bbbb3ba2b 100755
--- a/amiga/gui.c
+++ b/amiga/gui.c
@@ -30,9 +30,6 @@
#include "desktop/textinput.h"
#include "desktop/tree.h"
#include "image/ico.h"
-#include "render/box.h"
-#include "render/form.h"
-#include "render/html.h"
#include "utils/log.h"
#include "utils/messages.h"
#include "utils/utf8.h"
@@ -4113,17 +4110,12 @@ void ami_scroller_hook(struct Hook *hook,Object *object,struct IntuiMessage *msg
/* return the text box at posn x,y in window coordinates
x,y are updated to be document co-ordinates */
-struct box *ami_text_box_at_point(struct gui_window_2 *gwin, ULONG *x, ULONG *y)
+bool *ami_text_box_at_point(struct gui_window_2 *gwin, ULONG *x, ULONG *y)
{
struct IBox *bbox;
ULONG xs,ys,width,height;
- struct box *box,*text_box=0;
- hlcache_handle *content;
int box_x=0,box_y=0;
-
- content = gwin->bw->current_content;
-
- if(content_get_type(content) != CONTENT_HTML) return NULL;
+ struct contextual_content data;
GetAttr(SPACE_AreaBox, (Object *)gwin->objects[GID_BROWSER],
(ULONG *)&bbox);
@@ -4137,27 +4129,12 @@ struct box *ami_text_box_at_point(struct gui_window_2 *gwin, ULONG *x, ULONG *y)
width=bbox->Width;
height=bbox->Height;
- box = html_get_box_tree(content);
- while ((box = box_at_point(box, *x, *y, &box_x, &box_y, &content)))
- {
- if (box->style && css_computed_visibility(box->style) == CSS_VISIBILITY_HIDDEN) continue;
+ browser_window_get_contextual_content(gwin->bw, x, y, &data);
- if (box->gadget)
- {
- switch (box->gadget->type)
- {
- case GADGET_TEXTBOX:
- case GADGET_TEXTAREA:
- case GADGET_PASSWORD:
- text_box = box;
- break;
+ if (data.form_features == CTX_FORM_TEXT)
+ return true;
- default:
- break;
- }
- }
- }
- return text_box;
+ return false;
}
BOOL ami_gadget_hit(Object *obj, int x, int y)
diff --git a/amiga/gui.h b/amiga/gui.h
index 013be50c0..498e2707e 100755
--- a/amiga/gui.h
+++ b/amiga/gui.h
@@ -143,7 +143,7 @@ void ami_do_redraw_limits(struct gui_window *g, struct browser_window *bw,
int x0, int y0, int x1, int y1);
STRPTR ami_locale_langs(void);
int ami_key_to_nskey(ULONG keycode, struct InputEvent *ie);
-struct box *ami_text_box_at_point(struct gui_window_2 *gwin, ULONG *x, ULONG *y);
+bool *ami_text_box_at_point(struct gui_window_2 *gwin, ULONG *x, ULONG *y);
BOOL ami_gadget_hit(Object *obj, int x, int y);
void ami_gui_history(struct gui_window_2 *gwin, bool back);