Re: Edit mode not exiting cleanly on "Back"

Yan Seiner <[email protected]>
Newsgroups gmane.comp.web.links
Message-ID <[email protected]>
Kalle Olavi Niemitalo wrote:
> Yan Seiner <[email protected]> writes:
>
>   
>> What happens is that the screen is not resetting the reverse
>> mode.  If I am in an edit field and in edit mode and hit back,
>> the reverse mode is carried over to the previous screen.  If I
>> enter that screen via a link, it displays correctly.  If am not
>> in edit mode when I hit "back", it displays correctly.
>>     
>
> If I understand correctly, you mean:
> - Bind F2 to history-move-back.
> - Set document.browse.forms.insert_mode = 1.
> - Go to a page that contains a text field.
> - Select this text field.
> - Go to another page that contains a text field.
> - Select this text field.
> - Press Enter (ACT_EDIT_ENTER) to enter insert mode.
> - Press F2 (ACT_MAIN_HISTORY_MOVE_BACK) to return to the first
>   page.
> - The text field in the first page is highlighted as if insert
>   mode were enabled.
> - Press o.
> - ELinks does not insert the "o" to the text field but rather
>   opens the option manager.  So insert mode was not actually
>   enabled.
>
>   
>> Can anyone shed any light on this?  Where do I look to fix this?
>>     
>
> This occurs because draw_current_link redraws the text field
> before do_action sets ses->insert_mode = INSERT_MODE_OFF.
> Text fields are drawn in two steps: draw_current_link draws the
> attributes, and draw_form_entry draws the characters.
>   
Thanks.  Is this going to be fixed in CVS or should I just try and hack 
around it?

--Yan

> In ELinks 0.12.GIT (d1fa336f7f390d9b51456498fac5dda8f54c18a4):
>
> (gdb) backtrace
> #0  draw_current_link (ses=0x8459780, doc_view=0x8450a58)
>     at /home/Kalle/src/elinks-0.12/src/viewer/text/link.c:231
> #1  0x08115f54 in draw_view_status (ses=0x8459780, doc_view=0x8450a58,
>     active=1) at /home/Kalle/src/elinks-0.12/src/viewer/text/draw.c:175
> #2  0x081165da in draw_doc (ses=0x8459780, doc_view=0x8450a58, active=1)
>     at /home/Kalle/src/elinks-0.12/src/viewer/text/draw.c:297
> #3  0x08116df3 in refresh_view (ses=0x8459780, doc_view=0x8450a58, frames=1)
>     at /home/Kalle/src/elinks-0.12/src/viewer/text/draw.c:386
> #4  0x08116dba in draw_formatted (ses=0x8459780, rerender=2)
>     at /home/Kalle/src/elinks-0.12/src/viewer/text/draw.c:380
> #5  0x080fa410 in display_timer (ses=0x8459780)
>     at /home/Kalle/src/elinks-0.12/src/session/session.c:452
> #6  0x080fe430 in loading_callback (download=0x84597b8, ses=0x8459780)
>     at /home/Kalle/src/elinks-0.12/src/session/task.c:537
> #7  0x080d044b in load_uri (uri=0x84d8480, referrer=0x0, download=0x84597b8,
>     pri=PRI_MAIN, cache_mode=CACHE_MODE_ALWAYS, start=-1)
>     at /home/Kalle/src/elinks-0.12/src/network/connection.c:916
> #8  0x080fd069 in ses_load (ses=0x8459780, uri=0x84d8480, target_frame=0x0,
>     target_location=0x85e8168, cache_mode=CACHE_MODE_ALWAYS,
>     task_type=TASK_HISTORY)
>     at /home/Kalle/src/elinks-0.12/src/session/task.c:83
> #9  0x080fd532 in ses_goto (ses=0x8459780, uri=0x84d8480, target_frame=0x0,
>     target_location=0x85e8168, cache_mode=CACHE_MODE_ALWAYS,
>     task_type=TASK_HISTORY, redir=0)
>     at /home/Kalle/src/elinks-0.12/src/session/task.c:221
> #10 0x080f8e7d in go_history (ses=0x8459780, loc=0x85e8168)
>     at /home/Kalle/src/elinks-0.12/src/session/history.c:156
> #11 0x080f8f9a in go_history_by_n (ses=0x8459780, n=1)
>     at /home/Kalle/src/elinks-0.12/src/session/history.c:175
> #12 0x081128d5 in do_action (ses=0x8459780,
>     action_id=ACT_MAIN_HISTORY_MOVE_BACK, verbose=0)
>     at /home/Kalle/src/elinks-0.12/src/viewer/action.c:268
> #13 0x0812b8e4 in send_kbd_event (ses=0x8459780, doc_view=0x8450a58,
>     ev=0xbfd88574) at /home/Kalle/src/elinks-0.12/src/viewer/text/view.c:1159
> #14 0x0812bb79 in send_event (ses=0x8459780, ev=0xbfd88574)
>     at /home/Kalle/src/elinks-0.12/src/viewer/text/view.c:1224
> #15 0x080fca3c in tabwin_func (tab=0x84509c0, ev=0xbfd88574)
>     at /home/Kalle/src/elinks-0.12/src/session/session.c:1280
> #16 0x08100cb2 in term_send_event (term=0x8451b68, ev=0xbfd88574)
>     at /home/Kalle/src/elinks-0.12/src/terminal/event.c:131
> #17 0x081015da in handle_interlink_event (term=0x8451b68, ilev=0x8451d18)
>     at /home/Kalle/src/elinks-0.12/src/terminal/event.c:390
> #18 0x08101981 in in_term (term=0x8451b68)
>     at /home/Kalle/src/elinks-0.12/src/terminal/event.c:494
> #19 0x080ca0c3 in select_loop (init=0x80c8c8f <init>)
>     at /home/Kalle/src/elinks-0.12/src/main/select.c:289
> #20 0x080c9407 in main (argc=1, argv=0xbfd88714)
>     at /home/Kalle/src/elinks-0.12/src/main/main.c:360
> (gdb)
>
>
> !DSPAM:464015d940451874319035!
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> elinks-dev mailing list
> [email protected]
> http://linuxfromscratch.org/mailman/listinfo/elinks-dev
>
>
> !DSPAM:464015d940451874319035!
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.