Menu

#598 new node creation: loosing characters/wrong order of typing

open-fixed
None
5
2014-08-25
2008-03-18
LogicDaemon
No

new node creation: loosing characters/wrong order of typing

Currently, to create a new node In "Normal" mode, I have to:
press "Enter" (or "shift+Enter"), wait for new node to appear (or some characters will be lost), type text.
The issue is loosing first characters of nodes if typing text too early.

With "key type adds new" option set fast-typing makes first letter to be placed some later. For example when creating new node in "key type adds new" mode:
type first letter, wait for new node to appear, continue typing.
If i skip "wait for new node to appear" i get following artefacts:
* first character is inserted somewhere in the middle of the node, often after first letter;
* all characters from second one till typed when node appears are lost. If map is small and PC is fast there could be no such chars, but if map is big and PC is modest or busy whole sentences could be lost.
This is very annoying when fasttyping... and makes me typing in notepad and then pasting to FreeMond.

Discussion

  • Eric L.

    Eric L. - 2008-03-26
    • assigned_to: nobody --> dpolivaev
    • status: open --> open-accepted
     
  • Eric L.

    Eric L. - 2008-03-26

    Logged In: YES
    user_id=318488
    Originator: NO

    I confirm the issue under Linux/Beta16/Java 1.5 with 256MB of memory and 1GHz CPU.

    Dimitry, you've already done some profiling exercises on FreeMind if I remind well, can you look into this?

    Eric

     
  • Dimitry Polivaev

    • milestone: --> FreeMind_0.9.0_-_Fixed_in_CVS
    • status: open-accepted --> open-fixed
     
  • Christian Foltin

    • status: open-fixed --> pending-fixed
     
  • Dimitry Polivaev

    • assigned_to: dpolivaev --> christianfoltin
     
  • LogicDaemon

    LogicDaemon - 2010-09-07
    • status: pending-fixed --> open-fixed
     
  • LogicDaemon

    LogicDaemon - 2010-09-07

    i believe this is not performance but logic issue:
    - while new node becomes created (with Enter or typing first character), other characters must not be read from buffer
    - when node is created, its contents must be set to typed character if any, or if buffered characters "cannot wait" (are read by node constructor for example) this character must be attached before first character of the node, not to the end of one

     
  • Daniel Polansky

    Daniel Polansky - 2010-09-07

    Logic Daemon,

    some questions:

    What is your operating system?

    Can your reproduce the behavior that you dislike both in Linux and in Windows?

    What version of Java do you use?

    --Dan

     
  • LogicDaemon

    LogicDaemon - 2010-09-07

    for now I've got Windows box only, but I remember it was the same in Linux, i'll check and report later.

    JRE6u21 for now but this issue is here from very time I have begin using FreeMind. It was JRE4 or 5, cannot say more accurate.

    I believe this may be reproduced very easely: just make a script thich will send keypress events instead of typing manually (in windows, I'm using AutoHotkey), and you'll get the noted behavior.

     
  • Daniel Polansky

    Daniel Polansky - 2010-09-07

    When typing manually I cannot reproduce the error in Windows Vista, Java version "1.6.0_21", FreeMind 0.9.0 RC7. Pressing Enter, pressing Shift + Enter, and typing to create new node given an option is set, all these methods of reproducing the bug behave correctly: I do not need to wait in order to prevent lost of misplaced characters. The bug must depend on some factors that remains unclear to me.

    Can you reproduce the bug in FreeMind 0.8.1? Or is it only in FreeMind 0.9.0 series? --Dan

     
  • LogicDaemon

    LogicDaemon - 2010-09-07

    yes, in 0.8.1 it's all the same. However in lastest 0.9.0 RC9 effect is not reproducible when "key type adds new" is on.
    Try this AutoHotkey script (but beware to run only one JRE process (FreeMind), because it uses selector by ahk_class SunAwtFrame):

    SendMode Event
    SetKeyDelay, -1, -1

    WinWait, ahk_class SunAwtFrame,
    IfWinNotActive, ahk_class SunAwtFrame, , WinActivate, ahk_class SunAwtFrame,
    WinWaitActive, ahk_class SunAwtFrame,
    Send, {Insert}
    Sleep, 100
    Send, {ENTER}
    Sleep 100
    Send, Normal input: test This 1 2 3 is testing sentence{ENTER}

    Sleep 500
    Send, {ENTER}Input without delay: test This 1 2 3 is testing sentence{ENTER}

     
  • LogicDaemon

    LogicDaemon - 2010-09-07

    REM: if effect is not stable, load you CPU with something: for example, run 7-zip benchmark in background on all cores and set JRE CPU priority to "below normal".
    It's strange, but when setting JRE affinity to one core, letter never "jumps" to middle or end of input phrase, but characters becoming lost even in "normal" case.

     
  • LogicDaemon

    LogicDaemon - 2010-09-07

    also note I've tested
    freemind-bin-max-0.9.0_RC_9 #129@20352.zip

     
  • Daniel Polansky

    Daniel Polansky - 2010-09-07

    I can reproduce the bug using the AutoHotkey script that you have posted, given the option "key type adds new" is set to true. Again: Windows Vista, Java version "1.6.0_21", FreeMind 0.9.0 RC7. What happens after I run the script is that three nodes are created: the first node is empty, the second contains the text "Normal input: test This 1 2 3 is testing sentence" and the third node contains the text "lay: test This 1 2 3 is testing sentenceInput without de". When I repeat the test by running the script repeatedly, the text in the third node varies; sometimes the third node has even the correct text, but most often something is wrong with the text in the third node.

    Thank you for the script!

    Priority: This is a script-reproducible, non-regression, middle-priority bug, as it can only sometimes be manually reproduced. It can be fixed as part of 0.9.0 or it can be postponed after 0.9.0; both possibilities seem reasonable.

    --Dan

     
  • LogicDaemon

    LogicDaemon - 2010-09-07

    the first empty node is created with first {Insert} button, to make the test executable with new/empty map in FreeMind 0.8.1. Otherwise 0.8.1 says (when pressing enter on root node) it cannot make a sibling for root node.

     

Log in to post a comment.