Posted: Tue Dec 20, 2016 10:44 pm Post subject:
Range Check Booger
So I had a voxel open, finished editing it, then opened CON2 which is a modified CONA just to look at, and it gave me the error. I clicked it and life went on. However for funsies I tried replicating the error, and it's perfectly repeatable.
I am double-clicking the target voxel in the open dialog, so my cursor seems to be off-canvas, and VXLSE is interpreting that as a click AFTER opening, then interpreting my current position as the end of the line.
So I think like our discussion about switching tools back to dropper between opens to prevent errant dots from a pencil, this is obviously a related effect, with some other mechanism involved. I'm guessing the pencil tool doesn't throw the error when this happens because it's not a two-part operation, and a simple position check ignores the attempt.... this position check gets bypassed for the line? Although no operation should carryover from the open dialog period.
Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Wed Dec 21, 2016 6:39 am Post subject:
Ok, thanks for pointing out that one. Check the latest revision. I think it should fix it. At least, I am unable to replicate the bug you've detected with it. QUICK_EDIT
Not sure it's related or not, but I opened a number of voxels consecutively and this happened. I was doing a mild edit to several variations and checking others.
The bug with the pass-through click is still there, I tested with fill tool, and it filled whole layers even though I only clicked in the open dialog.
I should be able to click 14901 times inside the open dialog without any effects on the canvas after I hit open or cancel, right? I mean that makes the most logical sense doesn't it?
Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Thu Dec 22, 2016 1:45 pm Post subject:
Quote:
I should be able to click 14901 times inside the open dialog without any effects on the canvas after I hit open or cancel, right? I mean that makes the most logical sense doesn't it?
Nope, it doesn't make that as much sense as you desire, because once you click Open or Cancel, the open dialog is gone. So, any further clicks happens outside the open dialog. QUICK_EDIT
That's what I said man! It shouldn't matter what or where I click _before_ I hit open/cancel, BUT ALSO when I double-click a voxel to open, because that opening action or button press should nullify all previous clicks....
The problem I've been describing is that isn't happening, and clicks get recorded, possibly because the state isn't reset upon loading a new voxel... at least by double-click open.
Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Sun Dec 25, 2016 2:28 am Post subject:
G-E wrote:
Still registering a double-click open as an open plus click in the canvas... I tried with fill tool.
I'm sorry to disappoint you, but this is really the way it works. The best I could do was to cancel the effect of the iterations that happened in the canvas before the Open Dialog shows up. QUICK_EDIT
That makes no sense... why would you try to abort what's going on before the open dialog and not after? The very act of hitting the open button or file->open would mean VXLSE can't be busy...?
Maybe the simplest thing is to reset or ignore all inputs for 250ms after the dialog disappears? This would not register a double-click on a file as a click on the canvas at all since the whole opening process is nearly instant...
Even 500ms would be fine, I doubt anyone will take less time to select a tool and a spot to draw that quickly after opening a new voxel under any circumstance? _________________ http://www.moddb.com/mods/scorched-earth-ra2-mod-with-smart-ai QUICK_EDIT
Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Mon Dec 26, 2016 4:07 pm Post subject:
I'm not a fan of adding unnecessary delays, but I'm adding a 250ms delay for the kind of operation you've mentioned as well as any other operation that makes whatever existed in the canvas to be replaced with something completely different.
Hah I can't make heads or tails of what you just said...
*update* Ok I tried latest revision, and the inputs are not getting cleared during that delay, or the click is still recorded prior to the delay, so I don't notice any change.
I open VXLSE, then open a voxel, select the fill tool, then open another voxel by double-clicking inside the open dialog, and boom, spooge everywhere.
There has to be at least one full input cycle that is discarded before the canvas is editable, but more appropriately all inputs prior to the end of that 250ms should be _read_ and then discarded. _________________ http://www.moddb.com/mods/scorched-earth-ra2-mod-with-smart-ai QUICK_EDIT
Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Sat Dec 31, 2016 6:44 pm Post subject:
Bear in mind that 250ms is indeed a very small period of time. If you keep clicking like a freak to double click when opening a file, the problem is in your bloody finger. And that's something that I can't fix in VXLSE III's code. QUICK_EDIT
No I'm not clicking after the dialog box closes, that's my point! I'm double-clicking on the voxel, which is the same as clicking to select and clicking the open button, still only two...
The problem is that even though the two clicks register to open the voxel, it continues to believe that I am still clicking after open.
Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Wed Jan 04, 2017 5:32 pm Post subject:
There is a new attempt on revision 541. In my machine, it seems to work. I hope other people may confirm that if you click on File -> Open and double click a file, it won't trigger an undesired left mouse click at the main painting canvas. QUICK_EDIT
... if you click on File -> Open and double click a file, it won't trigger an undesired left mouse click at the main painting canvas.
More specifically you already have a voxel open, and then open a second one where the mouse is within the region of the new voxel canvas and a painting tool is selected.
Seems the disappearing act was the only reason that previous version "worked" ...
Is there no invisible/dummy tool you can make to catch inputs with on voxel load? I don't think anyone would have a problem with the last tool they used being de-selected when opening a new voxel, since it's not likely you are going to do the exact same thing. _________________ http://www.moddb.com/mods/scorched-earth-ra2-mod-with-smart-ai QUICK_EDIT
Well this one just confirms everything I said, the mouse click is still passed. I had an explorer window behind VXLSE and the click went to an empty disc drive that gave a windows popup.
Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Mon Jan 09, 2017 5:47 pm Post subject:
Yea and as I said, the click is generated by a third party component (TOpenDialog) that I do not have any control of (it is a windows component, although I don't know if Borland/CodeGear/Embarcadero has overriden it for Delphi). QUICK_EDIT
Also Known As: banshee_revora (Steam) Joined: 15 Aug 2002 Location: Brazil
Posted: Mon Jan 09, 2017 6:27 pm Post subject:
I couldn't figure out how to do it. It sends the click to the program, but the click is only processed after the program finishes to execute all procedures related to opening voxel models. I tried to add a command to process all windows messages while it opens the voxel (and it seems to fail) and I don't know how to cancel all mouse messages sent or received by the program either. QUICK_EDIT
Then make a dummy tool that does nothing, and have VXLSE automatically switch to that tool just prior to generating the canvas -- then it wouldn't matter when it records the click, before or during the init stage, right?
You can post new topics in this forum You can reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum