*** x11win.c Mon Apr 25 08:31:12 2005 --- x11win.c Thu Dec 15 22:37:33 2005 *************** *** 385,391 **** static int IdentCount; #endif ! static int HeldStep; static Byte Intensity[LutSize]; static Pixel WhiteCol; --- 385,392 ---- static int IdentCount; #endif ! static int XHeldButton; ! static int XHeldStep; static Byte Intensity[LutSize]; static Pixel WhiteCol; *************** *** 1766,1772 **** UseHourGlass = True; DisableMenu = False; Monochrome = False; ! HeldButton = -1; for( i=0; i<8; i++ ) DialValue[i] = 0.0; --- 1767,1773 ---- UseHourGlass = True; DisableMenu = False; Monochrome = False; ! XHeldButton = -1; for( i=0; i<8; i++ ) DialValue[i] = 0.0; *************** *** 2321,2328 **** register Real temp; register int index; ! if( HeldButton == YScrlDial ) ! { index = NewScrlY+HeldStep; #ifdef ORIG if( YScrlDial < 3 ) { if( index<16 ) --- 2322,2329 ---- register Real temp; register int index; ! if( XHeldButton == YScrlDial ) ! { index = NewScrlY+XHeldStep; #ifdef ORIG if( YScrlDial < 3 ) { if( index<16 ) *************** *** 2354,2361 **** ScrlY = NewScrlY; } ! if( HeldButton == XScrlDial ) ! { index = NewScrlX+HeldStep; #ifdef ORIG if( XScrlDial<3 ) { if( index < 16 ) --- 2355,2362 ---- ScrlY = NewScrlY; } ! if( XHeldButton == XScrlDial ) ! { index = NewScrlX+XHeldStep; #ifdef ORIG if( XScrlDial<3 ) { if( index < 16 ) *************** *** 2408,2414 **** { case(ButtonPress): { XButtonPressedEvent *ptr; ! HeldButton = -1; ptr = (XButtonPressedEvent*)event; if( ptr->window==CanvWin ) --- 2409,2415 ---- { case(ButtonPress): { XButtonPressedEvent *ptr; ! XHeldButton = -1; ptr = (XButtonPressedEvent*)event; if( ptr->window==CanvWin ) *************** *** 2421,2431 **** } else if( ptr->window==XScrlWin ) { ReDrawFlag |= RFRotateY; if( ptr->x<16 ) ! { HeldButton = XScrlDial; ! HeldStep = -XScrlSkip; } else if( ptr->x>=XRange-16 ) ! { HeldButton = XScrlDial; ! HeldStep = XScrlSkip; } else { index = ptr->x-8; #ifdef ORIG --- 2422,2432 ---- } else if( ptr->window==XScrlWin ) { ReDrawFlag |= RFRotateY; if( ptr->x<16 ) ! { XHeldButton = XScrlDial; ! XHeldStep = -XScrlSkip; } else if( ptr->x>=XRange-16 ) ! { XHeldButton = XScrlDial; ! XHeldStep = XScrlSkip; } else { index = ptr->x-8; #ifdef ORIG *************** *** 2448,2458 **** } else if( ptr->window==YScrlWin ) { ReDrawFlag |= RFRotateX; if( ptr->y<16 ) ! { HeldButton = YScrlDial; ! HeldStep = -YScrlSkip; } else if( ptr->y>=YRange-16 ) ! { HeldButton = YScrlDial; ! HeldStep = YScrlSkip; } else { index = ptr->y-8; #ifdef ORIG --- 2449,2459 ---- } else if( ptr->window==YScrlWin ) { ReDrawFlag |= RFRotateX; if( ptr->y<16 ) ! { XHeldButton = YScrlDial; ! XHeldStep = -YScrlSkip; } else if( ptr->y>=YRange-16 ) ! { XHeldButton = YScrlDial; ! XHeldStep = YScrlSkip; } else { index = ptr->y-8; #ifdef ORIG *************** *** 2482,2488 **** if( ptr->window==CanvWin ) { stat = GetStatus(ptr->state); ProcessMouseMove(ptr->x,ptr->y,stat); ! } else if( HeldButton == -1 ) { if( ptr->window==XScrlWin ) { index = ptr->x-8; NewScrlX = CropRange(index,16,XRange-32); --- 2483,2489 ---- if( ptr->window==CanvWin ) { stat = GetStatus(ptr->state); ProcessMouseMove(ptr->x,ptr->y,stat); ! } else if( XHeldButton == -1 ) { if( ptr->window==XScrlWin ) { index = ptr->x-8; NewScrlX = CropRange(index,16,XRange-32); *************** *** 2496,2504 **** case(ButtonRelease): { XButtonReleasedEvent *ptr; ! if( HeldButton != -1 ) { /* Three button emulation fix! */ ! DoneEvents(); HeldButton = -1; } ptr = (XButtonReleasedEvent*)event; --- 2497,2505 ---- case(ButtonRelease): { XButtonReleasedEvent *ptr; ! if( XHeldButton != -1 ) { /* Three button emulation fix! */ ! DoneEvents(); XHeldButton = -1; } ptr = (XButtonReleasedEvent*)event; *************** *** 2671,2677 **** GrabModeAsync,GrabModeAsync, None,None,CurrentTime); ! HeldButton = -1; MenuFocus = True; DrawMenuBar(); --- 2672,2678 ---- GrabModeAsync,GrabModeAsync, None,None,CurrentTime); ! XHeldButton = -1; MenuFocus = True; DrawMenuBar(); *************** *** 2812,2818 **** NewScrlX = ScrlX; NewScrlY = ScrlY; ! if( HeldButton != -1 ) wait = False; while( XPending(dpy) || (wait && !ReDrawFlag) ) { XNextEvent( dpy, &event ); result = ProcessEvent(&event); --- 2813,2819 ---- NewScrlX = ScrlX; NewScrlY = ScrlY; ! if( XHeldButton != -1 ) wait = False; while( XPending(dpy) || (wait && !ReDrawFlag) ) { XNextEvent( dpy, &event ); result = ProcessEvent(&event);