Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Editor Bug, cursor suddenly pops to bottom of tab when down-arrowing, version 3.3.1

in Bugs Posts: 1,089

I found a reproducible occurrence of the cursor suddenly jetting to the bottom of the screen. In the movie below you can see me cursoring down, one magic keyboard down-arrow at a time. Suddenly the cursor jumps to bottom of screen. Up arrow brings you back a line above where the jump started. If you go down again, it happens again.

The lines in question are kind of long but not amazingly so.

Here's a movie of it happening. I can provide the file, but it is too long to be acceptable here. It's the Monsters tab (not `Monsters) in the D2 file, whose zip is in that same folder as the movie. Link to the file at end of the article, or of course I'll happily mail it somewhere.

When I get some time I'll try to shorten the file. Thanks!!

https://ronjeffries.com/articles/020-dung/a04ff/d-159/editor-bug.mov

Comments

  • Posts: 2,348
    @RonJeffries @Simeon - with 370 I have seen the reverse of this, when I have selectively scrolled down the tab, taken my finger off to scroll the window up, tried to grab the selection bar at bottom right and the selection suddenly disappeared with the cursor an window set for the top of the tab. Getting hold of the selection window bar just above the keyboard is very dodgy.
  • Posts: 1,089

    Here's a tab that should show no red bars, but that shows the bug. Try placing the cursor at the first occurrence of level=1, after the "1", then cursor down repeatedly with magic keyboard. Cursor pops to bottom after being on "mattack10". Cursor up from the bottom puts cursor back at the end of the "mwalk10" line.

    -- Monster
    -- RJ 202012??
    
    local MT = nil
    
    Monster = class()
    
    function Monster:initMonsterTable()
        local m
        MT = {}
        m = {name="Pink Slime", level = 1, health={1,2}, speed = {4,10}, strength=1,
            attackVerbs={"smears", "squishes", "sloshes at"},
            dead={"asset.slime_squashed"}, hit={"asset.slime_hit"},
            moving={"asset.slime, asset.slime_walk, asset.slime_squashed"}}
        table.insert(MT,m)
        m = {name="Mimic", level=1, health={10,10}, speed={10,10}, strength=10, facing=-1, strategy=MimicMonsterStrategy,
            attackVerbs={"bites", "chomps", "gnaws"},
            dead={"mdead01","mdead02","mdead03","mdead04","mdead05","mdead06","mdead07","mdead08","mdead09","mdead10"},
            hit={"mhurt01", "mhurt02", "mhurt03", "mhurt04", "mhurt05", "mhurt06", "mhurt07", "mhurt08", "mhurt09", "mhurt10"},
            moving={"mwalk01", "mwalk02", "mwalk03", "mwalk04", "mwalk05", "mwalk06", "mwalk07", "mwalk08", "mwalk09", "mwalk10"},
            attack={"mattack01", "mattack02", "mattack03", "mattack04", "mattack05", "mattack06", "mattack07", "mattack08", "mattack09", "mattack10"},
            idle={"midle01", "midle02", "midle03", "midle04", "midle05", "midle06", "midle07", "midle08", "midle09", "midle10"},
            hide={"mhide01", "mhide02", "mhide03", "mhide04", "mhide05", "mhide06", "mhide07", "mhide08", "mhide09", "mhide10"},
        }
        table.insert(MT,m)
        m = {name="Death Fly", level = 1, health={2,3}, speed = {8,12}, strength=1,
            attackVerbs={"bites", "poisons"},
            dead={"asset.fly_dead"}, hit={"asset.fly_hit"},
            moving={"asset.fly, asset.fly_fly"}}
        table.insert(MT,m)
        m = {name="Ghost", level=1, health={1,5}, speed={5,9},strength={1,1},
            attackVerbs={"licks", "terrifies", "slams"},
            dead={"asset.ghost_dead"}, hit={"asset.ghost_hit"},
            moving={"asset.ghost, asset.ghost_normal"}}
        table.insert(MT,m)
        m = {name="Toothhead", level = 2, health={4,6}, speed = {8,15}, strength={1,2},
            attackVerbs={"gnaws at", "bites", "sinks teeth into"},
            dead={"asset.barnacle_dead"}, hit={"asset.barnacle_hit"},
            moving={"asset.barnacle, asset.barnacle_bite"}}
        table.insert(MT,m)
        m = {name="Vampire Bat", level=2, health={3,8}, speed={5,10}, strength={8,10},
            attackVerbs={"drains", "bites", "fangs"},
            dead={"asset.bat_dead"}, hit={"asset.bat_hit"},
            moving={"asset.bat, asset.bat_fly"}}
        table.insert(MT,m)
        m = {name="Murder Hornet", level = 2, health={2,3}, speed = {8,12}, strength={2,4},
            attackVerbs={"stings", "poisons", "jabs"},
            dead={"asset.bee_dead"}, hit={"asset.bee_hit"},
            moving={"asset.bee, asset.bee_fly"}}
        table.insert(MT,m)
        m = {name="Serpent", level=3, health={8,14}, speed={8,15}, strength={8,12},
            attackVerbs={"bites", "poisons", "strikes at"},
            dead={"asset.snake_dead"}, hit={"asset.snake_hit"},
            moving={"asset.snake, asset.snake_walk"}}
        table.insert(MT,m)
        m = {name="Yellow Widow", level=3, health={1,4}, speed = {2,5}, strength={9,15},
            attackVerbs={"bites", "poisons", "tangles"},
            dead={"asset.spider_dead"}, hit={"asset.spider_hit"},
            moving={"asset.spider, asset.spider_walk1,asset.spider_walk2"}}
        table.insert(MT,m)
        m = {name="Poison Frog", level=3, health={4,8}, speed = {2,6}, strength={8,11},
            attackVerbs={"leaps at", "smears poison on", "poisons", "bites"},
            dead={"asset.frog_dead"}, hit={"asset.frog_hit"},
            moving={"asset.frog, asset.frog_leap"}}
        table.insert(MT,m)
        m = {name="Ankle Biter", level=4, health={9,18}, speed={3,7}, strength={10,15},
            attackVerbs={"grinds ankles of", "cuts ankle of", "saws at feet of"},
            dead={"asset.spinnerHalf_dead"}, hit={"asset.spinnerHalf_hit"},
            moving={"asset.spinnerHalf, asset.spinnerHalf_spin"}}
        table.insert(MT,m)
        m = {name="Cloud", level=99, health={20,20}, speed={20,20}, strength={20,20},
            attackVerbs={"wafts"}, dead={"asset.whitePuff00"},    moving={"asset.whitePuff00, asset.whitePuff01, asset.whitePuff02, asset.whitePuff03"}}
        table.insert(MT,m)
    end
    
    function Monster:__tostring()
        return string.format("Monster (%d,%d)", self.tile:pos().x,self.tile:pos().y)
    end
    
    function Monster:basicMaintainRangeToPlayer(dungeon)
        local tiles = dungeon:availableTilesSameDistanceFromPlayer(self.tile)
        self:basicRandomMove(tiles)
    end
    
    
  • SimeonSimeon Admin Mod
    Posts: 5,693

    Thank you for the steps to reproduce! Will look into resolving this

  • SimeonSimeon Admin Mod
    Posts: 5,693

    @RonJeffries I can't reproduce this exactly but I do get the cursor skipping a line (the line before mattack10). What size iPad are you using? If you try the same steps but with the reference panel open (Do -> Reference...) do you see the same behaviour?

  • SimeonSimeon Admin Mod
    Posts: 5,693

    @RonJeffries managed to reproduce, looks like 12.9" iPad is key and a font size around 20

  • Posts: 1,089

    i'm def 12.9. not sure of font size. weird bug, i'll be interested to hear what caused it.

Sign In or Register to comment.