[q-lang-cvs] qcalc qcalc.q,1.172,1.173
Brought to you by:
agraef
From: Albert G. <ag...@us...> - 2007-11-22 09:28:57
|
Update of /cvsroot/q-lang/qcalc In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv13877 Modified Files: qcalc.q Log Message: bugfixes Index: qcalc.q =================================================================== RCS file: /cvsroot/q-lang/qcalc/qcalc.q,v retrieving revision 1.172 retrieving revision 1.173 diff -C2 -d -r1.172 -r1.173 *** qcalc.q 22 Nov 2007 03:12:41 -0000 1.172 --- qcalc.q 22 Nov 2007 09:28:49 -0000 1.173 *************** *** 645,653 **** // = printf "qt_invoke: %s %s %s\n" (str OBJ,str SLOT,str ARGS) || // fail if neq SLOT timer; ! // Blacklist #1: these are always inhibited in recursive mode. ! // XXXFIXME: eval, gui_update must be kept (queued?) here if they originate ! // from a real GUI interaction, but how do we detect this if collect_results ! // always sets the recursive mode?? ! = true if is_recursive and then any (eq SLOT) BL1; // Blacklist #2: these are always inhibited in local mode. = true if not is_global and then any (eq SLOT) BL2; --- 645,652 ---- // = printf "qt_invoke: %s %s %s\n" (str OBJ,str SLOT,str ARGS) || // fail if neq SLOT timer; ! // Blacklist #1: these are always inhibited in recursive mode if we are not in ! // local mode. ! = true if is_global and then is_recursive and then ! any (eq SLOT) BL1; // Blacklist #2: these are always inhibited in local mode. = true if not is_global and then any (eq SLOT) BL2; *************** *** 770,788 **** qt EDIT "isRedoAvailable" (); ! digest_loop = digest_loop_at time; ! /* Make sure that we eventually return from the loop in local mode, so that ! qcalc doesn't get locked in a local loop, which might otherwise happen if ! there's a lot of asynchronous messages to process. */ ! // XXXFIXME: need a fair scheduler here ! digest_loop_at T0 ! = do_queued_updates || fail; // falls through ! = digest S || digest_loop_at T0 ! where S = get MSGS ! if (#MSGS>0) and then (time-T0<=0.5); ! = digest X || digest_loop_at T0 ! where X = get CBQ ! if is_global and then (#CBQ>0); = () otherwise; --- 769,780 ---- qt EDIT "isRedoAvailable" (); ! /* In local mode we only do the minimally necessary processing here. */ ! digest_loop = digest_loop2 if is_global; ! = do_queued_updates otherwise; ! digest_loop2 = do_queued_updates || fail; // falls through ! = digest S || digest_loop2 where S = get MSGS if #MSGS>0; ! = digest X || digest_loop2 where X = get CBQ if #CBQ>0; = () otherwise; *************** *** 889,893 **** where X:QtObject = gui_elem (I,J); = if null S1 then delete_cells (I,J) || ! cell_setval (I,J) S0 || S where (S0,S1) = unquote S, S = if isstr S0 then S else S1; --- 881,886 ---- where X:QtObject = gui_elem (I,J); = if null S1 then delete_cells (I,J) || ! cell_setval (I,J) S0 || ! clean_cell (I,J) || set_cell (I,J) S1 || S where (S0,S1) = unquote S, S = if isstr S0 then S else S1; |