Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/eXene/lib/window/selection-server.sml
ViewVC logotype

Diff of /sml/trunk/src/eXene/lib/window/selection-server.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 703, Thu Sep 7 05:43:23 2000 UTC revision 704, Fri Sep 8 02:09:17 2000 UTC
# Line 132  Line 132 
132      type sel_request = {            (* the request for a selection that gets *)      type sel_request = {            (* the request for a selection that gets *)
133                                      (* sent to the owner *)                                      (* sent to the owner *)
134          target : atom,          target : atom,
135          time : time,          time : time option,
136          reply : XTy.prop_val option -> unit          reply : XTy.prop_val option -> unit
137        }        }
138    
# Line 204  Line 204 
204  trace(fn() => ["SelectionRequestXEvt\n"]);  trace(fn() => ["SelectionRequestXEvt\n"]);
205                    case (findSel (#selection xevt), #time xevt)                    case (findSel (#selection xevt), #time xevt)
206                     of (NONE, _) => (* we don't hold this selection, return NONE *)                     of (NONE, _) => (* we don't hold this selection, return NONE *)
207    (trace(fn () => ["  SelectionRequestXEvt rejected: no selection\n"]);
208                          rejectReq ()                          rejectReq ()
209                      | (_, XTy.CurrentTime) =>  )
210                        (* requestor isn't following ICCC, so reject request *)                      | (SOME{reqCh, ...}, timeStamp) => let
211                          rejectReq ()                          val optTime = (case timeStamp
212                      | (SOME{reqCh, ...}, XTy.TimeStamp time) => let                                 of XTy.CurrentTime => NONE
213                                    | XTy.TimeStamp time => SOME time
214                                  (* end case *))
215                        (* propagate the request to the holder of the selection. *)                        (* propagate the request to the holder of the selection. *)
216                          val prop = (case (#property xevt)                          val prop = (case (#property xevt)
217                                 of NONE => (#target xevt) (* obsolete client *)                                 of NONE => (#target xevt) (* obsolete client *)
# Line 218  Line 221 
221                          fun replyThread () = (                          fun replyThread () = (
222                                CML.send (reqCh, {                                CML.send (reqCh, {
223                                    target = #target xevt,                                    target = #target xevt,
224                                    time = time,                                    time = optTime,
225                                    reply = (fn x => SyncVar.iPut(cv, x))                                    reply = (fn x => SyncVar.iPut(cv, x))
226                                  });                                  });
227                                case (SyncVar.iGet cv)                                case (SyncVar.iGet cv)
# Line 235  Line 238 
238                                          requestor = #requestor xevt,                                          requestor = #requestor xevt,
239                                          selection = #selection xevt,                                          selection = #selection xevt,
240                                          target = #target xevt,                                          target = #target xevt,
241                                          prop = NONE,                                          prop = #property xevt,
242                                          time = time                                          time = timeStamp
243                                        })                                        })
244                                (* end case *))                                (* end case *))
245                          in                          in

Legend:
Removed from v.703  
changed lines
  Added in v.704

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0