WindowSensor.st
changeset 7326 086645312963
parent 7258 7400c3d0cb13
child 7327 c9b7921e8134
equal deleted inserted replaced
7324:8d4d00aa885a 7326:086645312963
  1937     ].
  1937     ].
  1938 
  1938 
  1939     "Modified: / 29-08-2013 / 16:29:32 / cg"
  1939     "Modified: / 29-08-2013 / 16:29:32 / cg"
  1940 !
  1940 !
  1941 
  1941 
  1942 notifyEventArrival:anEvent
  1942 notifyEventArrival:anEventOrNil
  1943     "an event arrived - if there is an eventSemaphore,
  1943     "an event arrived - if there is an eventSemaphore,
  1944      signal it, to wake up any windowGroup process"
  1944      signal it, to wake up any windowGroup process"
  1945 
  1945 
  1946     |evView|
  1946     |evView wgProcess|
  1947 
  1947 
  1948     evView := anEvent view.
  1948     anEventOrNil notNil ifTrue:[
  1949     (evView notNil and:[catchExpose includesIdentical:evView]) ifTrue:[
  1949         evView := anEventOrNil view.
  1950         "/ don't signal sema, if we are currently waiting for an expose
  1950         (evView notNil and:[catchExpose includesIdentical:evView]) ifTrue:[
  1951         "/ (confirmation of a scroll operation).
  1951             "/ don't signal sema, if we are currently waiting for an expose
  1952         "/ instead, remember that any event arrived for this view.
  1952             "/ (confirmation of a scroll operation).
  1953         gotOtherEvent add:evView.
  1953             "/ instead, remember that any event arrived for this view.
  1954         ^ self
  1954             gotOtherEvent add:evView.
  1955     ].
  1955             ^ self
  1956 
  1956         ].
       
  1957     ].
       
  1958     
  1957     eventSemaphore notNil ifTrue:[
  1959     eventSemaphore notNil ifTrue:[
  1958         "/ can get along with a single trigger;
  1960         "/ can get along with a single trigger;
  1959         "/ because processEvents will read all events
  1961         "/ because processEvents will read all events
  1960         eventSemaphore signalOnce
  1962         eventSemaphore signalOnce.
       
  1963         
       
  1964         "/ a little kludge:
       
  1965         "/ if this is a mouse-click, AND more than one event is already in the queue
       
  1966         "/ AND the windowGroup process is being debugged,
       
  1967         "/ then raise the debugger.
       
  1968         evView notNil ifTrue:[
       
  1969             anEventOrNil isButtonPressEvent ifTrue:[
       
  1970                 mouseAndKeyboard size > 1 ifTrue:[
       
  1971                     evView windowGroup notNil ifTrue:[
       
  1972                         (wgProcess := evView windowGroup process) notNil ifTrue:[
       
  1973                             wgProcess isDebugged notNil ifTrue:[
       
  1974                                 DebugView allInstances do:[:dbg |
       
  1975                                     dbg inspectedProcess == wgProcess ifTrue:[
       
  1976                                         dbg window topView raiseDeiconified
       
  1977                                     ].    
       
  1978                                 ].    
       
  1979                             ].    
       
  1980                         ].    
       
  1981                     ].    
       
  1982                 ].        
       
  1983             ].        
       
  1984         ].        
  1961     ]
  1985     ]
  1962 
  1986 
  1963     "Modified: 8.2.1997 / 12:01:48 / cg"
  1987     "Modified: 8.2.1997 / 12:01:48 / cg"
  1964 !
  1988 !
  1965 
  1989 
  2054     self criticalDamageEventQueueAccess:[
  2078     self criticalDamageEventQueueAccess:[
  2055         didAddNewDamage := self basicAddDamage:aRectangle view:aView.
  2079         didAddNewDamage := self basicAddDamage:aRectangle view:aView.
  2056     ].
  2080     ].
  2057     didAddNewDamage ifTrue:[
  2081     didAddNewDamage ifTrue:[
  2058         doWakeup ifTrue:[
  2082         doWakeup ifTrue:[
  2059             self notifyEventArrival:aView.
  2083             self notifyEventArrival:nil.
  2060         ].
  2084         ].
  2061     ].
  2085     ].
  2062 
  2086 
  2063     "Created: / 28.5.1996 / 21:51:16 / cg"
  2087     "Created: / 28.5.1996 / 21:51:16 / cg"
  2064     "Modified: / 6.6.1998 / 21:09:06 / cg"
  2088     "Modified: / 6.6.1998 / 21:09:06 / cg"