MantisBT - VCMI
View Issue Details
0002476VCMIGUI - Adventure Mappublic2016-09-14 21:262017-05-02 08:26
Microsoft WindowsWindows 7Home Premium x64
0002476: Adventure map scrolling doesn't work when moving mouse too fast to screen border
I play VCMI in fullscreen mode. If I move mouse too fast towards left or upper screen border (edge of game window) then adventure map may not scroll, even though cursor is at border of the game window. When moving mouse slowly then scroll is much more likely to work correctly.
1. Run VCMI
2. Start a map, and during adventure screen move cursor really fast towards left or upper edge of the screen.
3. When repeating above step map scrolling often does not work, while cursor is at the edge of the screen.
No tags attached.
related to 0002580acknowledged  Fullscreen game window width is bigger than it should be 
Issue History
2016-09-14 21:26DydzioNew Issue
2016-10-18 09:51DydzioDescription Updatedbug_revision_view_page.php?rev_id=3271#r3271
2016-10-18 09:51DydzioSteps to Reproduce Updatedbug_revision_view_page.php?rev_id=3273#r3273
2016-10-23 21:34SXXRelationship addedrelated to 0002580
2016-10-23 21:38SXXNote Added: 0006865
2017-03-26 20:28DydzioAssigned To => Dydzio
2017-03-26 20:28DydzioStatusnew => assigned
2017-03-26 20:32DydzioNote Added: 0007009
2017-03-27 22:03DydzioNote Edited: 0007009bug_revision_view_page.php?bugnote_id=7009#r3333
2017-03-27 22:04DydzioNote Edited: 0007009bug_revision_view_page.php?bugnote_id=7009#r3334
2017-05-02 08:24DydzioStatusassigned => resolved
2017-05-02 08:24DydzioResolutionopen => fixed
2017-05-02 08:26DydzioFixed in Version =>

2016-10-23 21:38   
Confirm this on Linux. It's related to another bug you posted.
2017-03-26 20:32   
(edited on: 2017-03-27 22:04)
Fixed in: [^]

Bug source is in CGuiHandler::handleMoveInterested.

For 800x600 resolution and testing X coordinate: isItIn(&(elem)->pos, motion.x, motion.y) returns false when x is 0

reason: isItIn checks bounds excluding borders of rectangle... rectangle parameters passed (initialized in CAdvMapInt constructor) are x = 0, x+width = 800

input that returns true is X in range from 1 to 799, desired is from 0 to 799