void w_redraw(WORD w_handle, GRECT *pt) { GRECT t, d; PD *ppd; ppd = D.w_win[w_handle].w_owner; /* make sure work rect */ /* and word rect */ /* intersect */ rc_copy(pt, &t); w_getsize(WS_WORK, w_handle, &d); if ( rc_intersect(&t, &d) ) { /* make sure window has */ /* owns a rectangle */ if ( w_union(D.w_win[w_handle].w_rlist, &d) ) { /* intersect redraw */ /* rect with union */ /* of owner rects */ if ( rc_intersect(&d, &t) ) ap_sendmsg(wind_msg, WM_REDRAW, ppd, w_handle, t.g_x, t.g_y, t.g_w, t.g_h); } } }
/* * Send message and wait for the mouse button to come up */ static void ct_msgup(WORD message, AESPD *owner, WORD wh, WORD m1, WORD m2, WORD m3, WORD m4) { if (message == 0) return; ap_sendmsg(appl_msg, message, owner, wh, m1, m2, m3, m4); /* * wait for button to come up if not an arrowed message */ if ( message != WM_ARROWED && ( message != WM_CLOSED && !(D.w_win[wh].w_kind & HOTCLOSE) ) ) { while( (button & 0x0001) != 0x0 ) dsptch(); } }