mirror of https://github.com/odrling/Aegisub
Karaoke is now more properly autoscrolled into audio display, per bug #334, it still can use some tweaking though
Originally committed to SVN as r1054.
This commit is contained in:
parent
c42dff5d65
commit
6f6f53f1b2
|
@ -656,14 +656,25 @@ void AudioDisplay::RecreateImage() {
|
||||||
void AudioDisplay::MakeDialogueVisible(bool force) {
|
void AudioDisplay::MakeDialogueVisible(bool force) {
|
||||||
// Variables
|
// Variables
|
||||||
int temp1=0,temp2=0;
|
int temp1=0,temp2=0;
|
||||||
GetTimesSelection(temp1,temp2);
|
if (karaoke->enabled) {
|
||||||
|
// In karaoke mode the entire dialogue line should be visible instead of just the selected syllable
|
||||||
|
GetTimesDialogue(temp1, temp2);
|
||||||
|
} else {
|
||||||
|
GetTimesSelection(temp1,temp2);
|
||||||
|
}
|
||||||
int startPos = GetSampleAtMS(temp1);
|
int startPos = GetSampleAtMS(temp1);
|
||||||
int endPos = GetSampleAtMS(temp2);
|
int endPos = GetSampleAtMS(temp2);
|
||||||
int startX = GetXAtMS(temp1);
|
int startX = GetXAtMS(temp1);
|
||||||
int endX = GetXAtMS(temp2);
|
int endX = GetXAtMS(temp2);
|
||||||
|
|
||||||
if (force || startX < 50 || endX > w-50) {
|
if (force || startX < 50 || endX > w-50) {
|
||||||
UpdatePosition((startPos+endPos-w*samples)/2,true);
|
if (startX < 50) {
|
||||||
|
// Make sure the left edge of the selection is at least 50 pixels from the edge of the display
|
||||||
|
UpdatePosition(startPos - 50*samples, true);
|
||||||
|
} else {
|
||||||
|
// Otherwise center the selection in display
|
||||||
|
UpdatePosition((startPos+endPos-w*samples)/2,true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update
|
// Update
|
||||||
|
|
Loading…
Reference in New Issue