From: Alex M. S. <arc...@us...> - 2003-06-07 15:49:28
|
Update of /cvsroot/nettle/nettle/c In directory sc8-pr-cvs1:/tmp/cvs-serv1448/c Modified Files: nettle wimp Log Message: Bug-fixed window resizing on mode change Index: nettle =================================================================== RCS file: /cvsroot/nettle/nettle/c/nettle,v retrieving revision 1.111 retrieving revision 1.112 diff -C2 -d -r1.111 -r1.112 *** nettle 11 Feb 2003 21:44:50 -0000 1.111 --- nettle 7 Jun 2003 15:49:24 -0000 1.112 *************** *** 1088,1095 **** session->assigned_area[ypos][xpos].chr = character; } - else - { - printf("write_assigned: something is trying to write to %d, %d\n", xpos, ypos); - } } --- 1088,1091 ---- *************** *** 1104,1111 **** session->alternate_area[ypos][xpos].chr = character; } - else - { - printf("write_alt_assigned: something is trying to write to %d, %d\n", xpos, ypos); - } } --- 1100,1103 ---- *************** *** 1477,1481 **** reopen_and_size_window(session, old_terminal_size.x, old_terminal_size.y, old_scrollback, ! redraw.r_charw, redraw.r_charh); if (use_naws) --- 1469,1473 ---- reopen_and_size_window(session, old_terminal_size.x, old_terminal_size.y, old_scrollback, ! redraw.r_charw, redraw.r_charh, eig); if (use_naws) *************** *** 1502,1506 **** void reopen_and_size_window(struct session_struct *session, int old_terminal_size_x, int old_terminal_size_y, int old_scrollback, ! int old_charw, int old_charh) { { --- 1494,1498 ---- void reopen_and_size_window(struct session_struct *session, int old_terminal_size_x, int old_terminal_size_y, int old_scrollback, ! int old_charw, int old_charh, struct coords old_eig) { { *************** *** 1531,1540 **** _swi(Wimp_GetWindowState, _IN(1), &block); /* If terminal at fullsize, then reopen window at fullsize, otherwise leave it */ ! if (block.max.x-block.min.x==(old_terminal_size_x*old_charw << eig.x)) { block.max.x=block.min.x+(session->terminal_size.x*redraw.r_charw << eig.x); } ! if (block.max.y-block.min.y==(old_terminal_size_y*old_charh << eig.y)) { block.min.y=block.max.y-(session->terminal_size.y*redraw.r_charh << eig.y); --- 1523,1535 ---- _swi(Wimp_GetWindowState, _IN(1), &block); + printf("Window size was %d,%d,%d,%d\n", block.min.x, block.min.y, block.max.x,block.max.y); + printf("charw %d,charh %d ,oldcharw %d,oldcharh %d\n", redraw.r_charw,redraw.r_charh,old_charw,old_charh); + /* If terminal at fullsize, then reopen window at fullsize, otherwise leave it */ ! if (block.max.x-block.min.x==(old_terminal_size_x*old_charw << old_eig.x)) { block.max.x=block.min.x+(session->terminal_size.x*redraw.r_charw << eig.x); } ! if (block.max.y-block.min.y==(old_terminal_size_y*old_charh << old_eig.y)) { block.min.y=block.max.y-(session->terminal_size.y*redraw.r_charh << eig.y); *************** *** 1542,1550 **** /* If terminal is bigger than fullsize in the new font shrink it down to fullsize */ ! if ((block.max.x-block.min.x)>(session->terminal_size.x*redraw.r_charw << eig.x)) { block.max.x=block.min.x+(session->terminal_size.x*redraw.r_charw << eig.x); } ! if ((block.max.y-block.min.y)>(session->terminal_size.y*redraw.r_charh << eig.y)) { block.min.y=block.max.y-(session->terminal_size.y*redraw.r_charh << eig.y); --- 1537,1545 ---- /* If terminal is bigger than fullsize in the new font shrink it down to fullsize */ ! if (block.max.x-block.min.x>(session->terminal_size.x*redraw.r_charw << old_eig.x)) { block.max.x=block.min.x+(session->terminal_size.x*redraw.r_charw << eig.x); } ! if (block.max.y-block.min.y>(session->terminal_size.y*redraw.r_charh << old_eig.y)) { block.min.y=block.max.y-(session->terminal_size.y*redraw.r_charh << eig.y); *************** *** 1570,1575 **** /* Scale the scroll offset according to the old font size/new font size */ ! block.scroll.x=(block.scroll.x*redraw.r_charw/old_charw); ! block.scroll.y=(block.scroll.y*redraw.r_charh/old_charh); /* wimp_openwindow_block starts the same way as wimp_getwindowstate_block */ --- 1565,1572 ---- /* Scale the scroll offset according to the old font size/new font size */ ! block.scroll.x=(block.scroll.x*(redraw.r_charw << eig.x)/(old_charw << old_eig.x)); ! block.scroll.y=(block.scroll.y*(redraw.r_charh << eig.y)/(old_charh << old_eig.y)); ! ! printf("Window size is now %d,%d,%d,%d\n", block.min.x, block.min.y, block.max.x,block.max.y); /* wimp_openwindow_block starts the same way as wimp_getwindowstate_block */ Index: wimp =================================================================== RCS file: /cvsroot/nettle/nettle/c/wimp,v retrieving revision 1.182 retrieving revision 1.183 diff -C2 -d -r1.182 -r1.183 *** wimp 9 Dec 2002 14:18:14 -0000 1.182 --- wimp 7 Jun 2003 15:49:24 -0000 1.183 *************** *** 55,58 **** --- 55,59 ---- static int old_charw; static int old_charh; + static struct coords old_eig; static int msg_ref; *************** *** 644,649 **** * -NB this function is also used by the font change code */ reopen_and_size_window(session, session->terminal_size.x, session->terminal_size.y, ! session->scrollback, old_charw, old_charh); ! session->window_needs_resized=false; /* We might need to show the resizer here? Unsure. */ --- 645,649 ---- * -NB this function is also used by the font change code */ reopen_and_size_window(session, session->terminal_size.x, session->terminal_size.y, ! session->scrollback, old_charw, old_charh, old_eig); /* We might need to show the resizer here? Unsure. */ *************** *** 709,713 **** } ! _swi(Wimp_OpenWindow, _IN(1), block); if ( block->window_handle == resize_handle ) --- 709,720 ---- } ! if (!session->window_needs_resized) ! { ! _swi(Wimp_OpenWindow, _IN(1), block); ! } ! else ! { ! session->window_needs_resized=false; ! } if ( block->window_handle == resize_handle ) *************** *** 736,740 **** } ! _swi(Wimp_OpenWindow, _IN(1), block); } --- 743,754 ---- } ! if (!session->window_needs_resized) ! { ! _swi(Wimp_OpenWindow, _IN(1), block); ! } ! else ! { ! session->window_needs_resized=false; ! } } *************** *** 2737,2740 **** --- 2751,2756 ---- struct wimp_gadgetsizes sizes; + old_eig=eig; + eig.x = _swi (OS_ReadModeVariable, _INR (0,1) | _RETURN (2), -1, 4); eig.y = _swi (OS_ReadModeVariable, _INR (0,1) | _RETURN (2), -1, 5); *************** *** 2795,2804 **** { /* The sprite was found and we have its size */ ! int yeig; ! if (_swix(OS_ReadModeVariable,_INR(0,1)|_OUT(2),mode,5,&yeig)==NULL) ! { ! /* And (finally) we can work out the height of the toolbar! */ ! toolheight = height<<yeig; ! } } } --- 2811,2816 ---- { /* The sprite was found and we have its size */ ! /* And we can work out the height of the toolbar! */ ! toolheight = height<<eig.y; } } |