mirror of
https://github.com/rkd77/elinks.git
synced 2024-12-04 14:46:47 -05:00
[iframes] No progress today
This commit is contained in:
parent
2670444590
commit
a945d47584
@ -171,7 +171,7 @@ redir:
|
|||||||
doc_view = find_ifd(ses, iframe_desc->name, j, o->box.x, o->box.y);
|
doc_view = find_ifd(ses, iframe_desc->name, j, o->box.x, o->box.y);
|
||||||
if (doc_view) {
|
if (doc_view) {
|
||||||
render_document(vs, doc_view, o);
|
render_document(vs, doc_view, o);
|
||||||
assert(doc_view->document);
|
///assert(doc_view->document);
|
||||||
//doc_view->document->iframe = frame_desc;
|
//doc_view->document->iframe = frame_desc;
|
||||||
}
|
}
|
||||||
o->plain = plain;
|
o->plain = plain;
|
||||||
|
@ -488,14 +488,6 @@ html_iframe_do(char *a, char *object_src,
|
|||||||
|
|
||||||
html_focusable(html_context, a);
|
html_focusable(html_context, a);
|
||||||
|
|
||||||
if (*name) {
|
|
||||||
put_link_line("IFrame: ", name, url,
|
|
||||||
html_context->options->framename, html_context);
|
|
||||||
} else {
|
|
||||||
put_link_line("", "IFrame", url,
|
|
||||||
html_context->options->framename, html_context);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!hstr) {
|
if (!hstr) {
|
||||||
height = (150 + HTML_CHAR_HEIGHT - 1) / HTML_CHAR_HEIGHT;
|
height = (150 + HTML_CHAR_HEIGHT - 1) / HTML_CHAR_HEIGHT;
|
||||||
} else {
|
} else {
|
||||||
@ -521,6 +513,14 @@ html_iframe_do(char *a, char *object_src,
|
|||||||
html_context->special_f(html_context, SP_IFRAME, url2, name, y, width, height);
|
html_context->special_f(html_context, SP_IFRAME, url2, name, y, width, height);
|
||||||
mem_free(url2);
|
mem_free(url2);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if (*name) {
|
||||||
|
put_link_line("IFrame: ", name, url,
|
||||||
|
html_context->options->framename, html_context);
|
||||||
|
} else {
|
||||||
|
put_link_line("", "IFrame", url,
|
||||||
|
html_context->options->framename, html_context);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mem_free(name);
|
mem_free(name);
|
||||||
|
@ -442,6 +442,7 @@ request_iframe(struct session *ses, char *name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
iframe = mem_calloc(1, sizeof(*iframe));
|
iframe = mem_calloc(1, sizeof(*iframe));
|
||||||
|
|
||||||
if (!iframe) return;
|
if (!iframe) return;
|
||||||
|
|
||||||
iframe->name = stracpy(name);
|
iframe->name = stracpy(name);
|
||||||
@ -855,6 +856,7 @@ request_additional_file(struct session *ses, char *name, struct uri *uri, int pr
|
|||||||
}
|
}
|
||||||
|
|
||||||
ftl = mem_calloc(1, sizeof(*ftl));
|
ftl = mem_calloc(1, sizeof(*ftl));
|
||||||
|
|
||||||
if (!ftl) return NULL;
|
if (!ftl) return NULL;
|
||||||
|
|
||||||
ftl->uri = get_uri_reference(uri);
|
ftl->uri = get_uri_reference(uri);
|
||||||
@ -1468,6 +1470,23 @@ ses_find_frame(struct session *ses, char *name)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct frame *
|
||||||
|
ses_find_iframe(struct session *ses, char *name)
|
||||||
|
{
|
||||||
|
struct location *loc = cur_loc(ses);
|
||||||
|
struct frame *iframe;
|
||||||
|
|
||||||
|
assertm(have_location(ses), "ses_request_frame: no location yet");
|
||||||
|
if_assert_failed return NULL;
|
||||||
|
|
||||||
|
foreachback (iframe, loc->iframes)
|
||||||
|
if (!c_strcasecmp(iframe->name, name))
|
||||||
|
return iframe;
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
set_session_referrer(struct session *ses, struct uri *referrer)
|
set_session_referrer(struct session *ses, struct uri *referrer)
|
||||||
{
|
{
|
||||||
|
@ -104,6 +104,7 @@ struct session_task {
|
|||||||
/* TODO: union --pasky */
|
/* TODO: union --pasky */
|
||||||
struct {
|
struct {
|
||||||
char *frame;
|
char *frame;
|
||||||
|
char *iframe;
|
||||||
struct location *location;
|
struct location *location;
|
||||||
} target;
|
} target;
|
||||||
};
|
};
|
||||||
@ -306,6 +307,7 @@ void reload(struct session *, enum cache_mode);
|
|||||||
void load_frames(struct session *, struct document_view *);
|
void load_frames(struct session *, struct document_view *);
|
||||||
|
|
||||||
struct frame *ses_find_frame(struct session *, char *);
|
struct frame *ses_find_frame(struct session *, char *);
|
||||||
|
struct frame *ses_find_iframe(struct session *, char *);
|
||||||
|
|
||||||
void free_files(struct session *);
|
void free_files(struct session *);
|
||||||
void display_timer(struct session *ses);
|
void display_timer(struct session *ses);
|
||||||
|
@ -324,35 +324,7 @@ x:
|
|||||||
copy_struct(&loc->download, &ses->loading);
|
copy_struct(&loc->download, &ses->loading);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loaded_in_frame == 2) {
|
if (ses->task.target.frame && *ses->task.target.frame) {
|
||||||
struct frame *iframe;
|
|
||||||
|
|
||||||
assertm(have_location(ses), "no location yet");
|
|
||||||
if_assert_failed return NULL;
|
|
||||||
|
|
||||||
struct location *loc = cur_loc(ses);
|
|
||||||
|
|
||||||
iframe = loc->iframes.next;
|
|
||||||
|
|
||||||
if (!iframe) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
vs = &iframe->vs;
|
|
||||||
|
|
||||||
done_uri(vs->uri);
|
|
||||||
vs->uri = get_uri_reference(ses->loading_uri);
|
|
||||||
if (vs->doc_view) {
|
|
||||||
/* vs->doc_view itself will get detached in
|
|
||||||
* render_document_frames(), but that's too
|
|
||||||
* late for us. */
|
|
||||||
vs->doc_view->vs = NULL;
|
|
||||||
vs->doc_view = NULL;
|
|
||||||
}
|
|
||||||
#ifdef CONFIG_ECMASCRIPT
|
|
||||||
vs->ecmascript_fragile = 1;
|
|
||||||
#endif
|
|
||||||
} else if (ses->task.target.frame && *ses->task.target.frame) {
|
|
||||||
struct frame *frame;
|
struct frame *frame;
|
||||||
|
|
||||||
assertm(have_location(ses), "no location yet");
|
assertm(have_location(ses), "no location yet");
|
||||||
@ -364,6 +336,9 @@ x:
|
|||||||
}
|
}
|
||||||
|
|
||||||
frame = ses_find_frame(ses, ses->task.target.frame);
|
frame = ses_find_frame(ses, ses->task.target.frame);
|
||||||
|
if (!frame) {
|
||||||
|
frame = ses_find_iframe(ses, ses->task.target.frame);
|
||||||
|
}
|
||||||
if (!frame) {
|
if (!frame) {
|
||||||
if (!loaded_in_frame) {
|
if (!loaded_in_frame) {
|
||||||
del_from_history(&ses->history, loc);
|
del_from_history(&ses->history, loc);
|
||||||
|
@ -1454,6 +1454,11 @@ current_frame(struct session *ses)
|
|||||||
if (!current_frame_number--) return doc_view;
|
if (!current_frame_number--) return doc_view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreach (doc_view, ses->scrn_iframes) {
|
||||||
|
if (document_has_iframes(doc_view->document)) continue;
|
||||||
|
if (!current_frame_number--) return doc_view;
|
||||||
|
}
|
||||||
|
|
||||||
doc_view = ses->doc_view;
|
doc_view = ses->doc_view;
|
||||||
|
|
||||||
assert(doc_view && doc_view->document);
|
assert(doc_view && doc_view->document);
|
||||||
|
@ -173,7 +173,8 @@ next_frame(struct session *ses, int p)
|
|||||||
int n;
|
int n;
|
||||||
|
|
||||||
if (!have_location(ses)
|
if (!have_location(ses)
|
||||||
|| (ses->doc_view && !document_has_frames(ses->doc_view->document)))
|
|| (ses->doc_view && !document_has_frames(ses->doc_view->document)
|
||||||
|
&& !document_has_iframes(ses->doc_view->document)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ses->navigate_mode = NAVIGATE_LINKWISE;
|
ses->navigate_mode = NAVIGATE_LINKWISE;
|
||||||
@ -185,6 +186,10 @@ next_frame(struct session *ses, int p)
|
|||||||
if (!document_has_frames(doc_view->document))
|
if (!document_has_frames(doc_view->document))
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
|
foreach (doc_view, ses->scrn_iframes) {
|
||||||
|
if (!document_has_iframes(doc_view->document))
|
||||||
|
n++;
|
||||||
|
}
|
||||||
|
|
||||||
vs->current_link += p;
|
vs->current_link += p;
|
||||||
if (!n) n = 1;
|
if (!n) n = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user