• R/O
  • HTTP
  • SSH
  • HTTPS

timidity41: Commit


Commit MetaInfo

Revision611335c2988f5f32c7ee69cab54f26e0e7620e6d (tree)
Time2019-07-30 07:36:09
AuthorStarg <starg@user...>
CommiterStarg

Log Message

Fix message scrolling

Change Summary

Incremental Difference

--- a/interface/w32g_i.c
+++ b/interface/w32g_i.c
@@ -4250,26 +4250,22 @@ void MPanelUpdate(void)
42504250 SetTextAlign(MPanel.hmdc, TA_LEFT | TA_TOP | TA_NOUPDATECP);
42514251 TCHAR *t = char_to_tchar(MPanelMessageData.buff);
42524252 switch ( MPanelMessageData.curmode ) {
4253- case 0:
4254- ExtTextOut(MPanel.hmdc,MPanel.rcMessage.left,MPanel.rcMessage.top,
4255- ETO_CLIPPED | ETO_OPAQUE,&(MPanel.rcMessage),
4256- t,_tcslen(t),NULL);
42574253 case 1:
4258- ExtTextOut(MPanel.hmdc,MPanel.rcMessage.left,MPanel.rcMessage.top,
4254+ ExtTextOut(MPanel.hmdc, MPanel.rcMessage.left - (MPanelMessageData.pointer - MPanelMessageData.len) * (MPanel.rcMessage.bottom - MPanel.rcMessage.top + 1) / 2, MPanel.rcMessage.top,
42594255 ETO_CLIPPED | ETO_OPAQUE,&(MPanel.rcMessage),
42604256 t,_tcslen(t),NULL);
4261-// ExtTextOut(MPanel.hmdc,MPanel.rcMessage.left-(MPanel.rcMessage.bottom-MPanel.rcMessage.top)*2,
4262-// MPanel.rcMessage.top, ETO_CLIPPED | ETO_OPAQUE,&(MPanel.rcMessage),
4263-// t,_tcslen(t),NULL);
4257+ break;
4258+ case 3:
4259+ case 4:
4260+ // FIXME: implement this
4261+
42644262 case 2:
4265- ExtTextOut(MPanel.hmdc,MPanel.rcMessage.left,MPanel.rcMessage.top,
4266- ETO_CLIPPED | ETO_OPAQUE,&(MPanel.rcMessage),
4267- t,_tcslen(t),NULL);
42684263 case -1:
42694264 default:
42704265 ExtTextOut(MPanel.hmdc,MPanel.rcMessage.left,MPanel.rcMessage.top,
42714266 ETO_CLIPPED | ETO_OPAQUE,&(MPanel.rcMessage),
42724267 t,_tcslen(t),NULL);
4268+ break;
42734269 }
42744270 safe_free(t);
42754271 if((HGDIOBJ)hgdiobj!=(HGDIOBJ)NULL && (HGDIOBJ)hgdiobj!=(HGDIOBJ)GDI_ERROR)
@@ -4547,6 +4543,7 @@ void MPanelMessageUpdate(void)
45474543 break;
45484544 case 1:
45494545 if ( MPanelMessageData.prevtime == -1 ){
4546+ strcpy(MPanelMessageData.buff, MPanelMessageData.curbuff);
45504547 MPanelMessageData.prevtime = curtime;
45514548 MPanelMessageData.msec = MPanelMessageData.curmsec;
45524549 MPanel.UpdateFlag |= MP_UPDATE_MESSAGE;
@@ -4564,18 +4561,7 @@ void MPanelMessageUpdate(void)
45644561 pointer = MPanelMessageData.len - 8 + ( MPanelMessageData.curmsec - MPanelMessageData.msec ) / 1000 * 2;
45654562 pointer = (int)( pointer / 2 ) * 2;
45664563 if ( MPanelMessageData.pointer != pointer ) {
4567- int p = MPanelMessageData.len - pointer;
4568- MPanelMessageData.buff[0] = '\0';
45694564 MPanelMessageData.pointer = pointer;
4570- if ( p >= 0 ) {
4571- memset( MPanelMessageData.buff, 0x20, p );
4572- MPanelMessageData.buff[p] = '\0';
4573- strcat( MPanelMessageData.buff, MPanelMessageData.curbuff);
4574- } else if ( MPanelMessageData.curbuffsize + p > 0 ) {
4575- strcpy( MPanelMessageData.buff, MPanelMessageData.curbuff - p);
4576- } else {
4577- MPanelMessageData.buff[0] = '\0';
4578- }
45794565 MPanel.UpdateFlag |= MP_UPDATE_MESSAGE;
45804566 }
45814567 break;
@@ -4602,6 +4588,7 @@ void MPanelMessageUpdate(void)
46024588 break;
46034589 case 3:
46044590 if ( MPanelMessageData.prevtime == -1 ){
4591+ strcpy(MPanelMessageData.buff, MPanelMessageData.curbuff);
46054592 MPanelMessageData.prevtime = curtime;
46064593 MPanelMessageData.msec = MPanelMessageData.curmsec;
46074594 MPanel.UpdateFlag |= MP_UPDATE_MESSAGE;
@@ -4618,23 +4605,13 @@ void MPanelMessageUpdate(void)
46184605 pointer = MPanelMessageData.len * 3 / 4 + ( MPanelMessageData.len / 4 + MPanelMessageData.curbuffsize ) * ( MPanelMessageData.curmsec - MPanelMessageData.msec ) / MPanelMessageData.curmsec;
46194606 pointer = ((int)(pointer / 2)) * 2;
46204607 if ( MPanelMessageData.pointer != pointer ) {
4621- int p = MPanelMessageData.len - pointer;
4622- MPanelMessageData.buff[0] = '\0';
46234608 MPanelMessageData.pointer = pointer;
4624- if ( p >= 0 ) {
4625- memset( MPanelMessageData.buff, 0x20, p );
4626- MPanelMessageData.buff[p] = '\0';
4627- strcat( MPanelMessageData.buff, MPanelMessageData.curbuff);
4628- } else if ( MPanelMessageData.curbuffsize + p > 0 ) {
4629- strcpy( MPanelMessageData.buff, MPanelMessageData.curbuff - p);
4630- } else {
4631- MPanelMessageData.buff[0] = '\0';
4632- }
46334609 MPanel.UpdateFlag |= MP_UPDATE_MESSAGE;
46344610 }
46354611 break;
46364612 case 4:
46374613 if ( MPanelMessageData.prevtime == -1 ){
4614+ strcpy(MPanelMessageData.buff, MPanelMessageData.curbuff);
46384615 MPanelMessageData.prevtime = curtime;
46394616 #define MPANELMESSAGE_MODE2_SLEEPMSEC 1000
46404617 if ( MPanelMessageData.curmsec < MPANELMESSAGE_MODE2_SLEEPMSEC * 2 ) {
@@ -4659,13 +4636,7 @@ void MPanelMessageUpdate(void)
46594636 }
46604637 pointer = ((int)(pointer / 2)) * 2;
46614638 if ( MPanelMessageData.pointer != pointer ) {
4662- MPanelMessageData.buff[0] = '\0';
46634639 MPanelMessageData.pointer = pointer;
4664- if ( pointer < MPanelMessageData.curbuffsize ) {
4665- strcpy( MPanelMessageData.buff, MPanelMessageData.curbuff + pointer );
4666- } else {
4667- MPanelMessageData.buff[0] = '\0';
4668- }
46694640 MPanel.UpdateFlag |= MP_UPDATE_MESSAGE;
46704641 }
46714642 break;
Show on old repository browser