fixed cursor movement in HD sector map

This commit is contained in:
Denis Molony 2016-07-21 19:08:39 +10:00
parent 5ec40c29e8
commit 1ee6cf4115
2 changed files with 9 additions and 3 deletions

View File

@ -255,7 +255,7 @@ class DiskLayoutImage extends JPanel implements Scrollable, RedoListener
case KeyEvent.VK_RIGHT:
case KeyEvent.VK_UP:
case KeyEvent.VK_DOWN:
selectionHandler.cursorMove (disk.getDisk (), e);
selectionHandler.cursorMove (disk, e);
fireSectorSelectionEvent ();
repaint ();
}

View File

@ -1,5 +1,6 @@
package com.bytezone.diskbrowser.gui;
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.util.Collections;
@ -8,6 +9,7 @@ import java.util.List;
import com.bytezone.diskbrowser.disk.Disk;
import com.bytezone.diskbrowser.disk.DiskAddress;
import com.bytezone.diskbrowser.disk.FormattedDisk;
class DiskLayoutSelection implements Iterable<DiskAddress>
{
@ -64,7 +66,7 @@ class DiskLayoutSelection implements Iterable<DiskAddress>
Collections.sort (highlights);
}
public void cursorMove (Disk disk, KeyEvent e)
void cursorMove (FormattedDisk formattedDisk, KeyEvent e)
{
if (highlights.size () == 0)
{
@ -72,6 +74,8 @@ class DiskLayoutSelection implements Iterable<DiskAddress>
return;
}
Disk disk = formattedDisk.getDisk ();
DiskAddress first = highlights.get (0);
DiskAddress last = highlights.get (highlights.size () - 1);
@ -79,7 +83,9 @@ class DiskLayoutSelection implements Iterable<DiskAddress>
highlights.clear ();
int totalBlocks = disk.getTotalBlocks ();
int rowSize = disk.getTrackSize () / disk.getBlockSize ();
// int rowSize = disk.getTrackSize () / disk.getBlockSize ();
Dimension gridLayout = formattedDisk.getGridLayout ();
int rowSize = gridLayout.width;
switch (e.getKeyCode ())
{