<?xml version="1.0"?>
<Denemo>
  <merge>
    <title>A Denemo Keymap</title>
    <author>AT, JRR, RTS</author>
    <map>
      <row>
        <after>GraceAfter</after>
        <action>UnGraceAfter</action>
        <scheme>;;UnGraceAfter
(d-PushPosition)
(if (Appending?)
  (d-MoveCursorLeft))
(while  (and (d-IsGrace) (d-MoveCursorLeft))
	#t)
(if (and (Note?) (d-Directive-chord? "MainGraceAfter"))
    (begin
      (while (and (d-MoveCursorRight) (d-IsGrace))
      	#t)
      (if (not (d-IsGrace))
	  (d-MoveCursorLeft))
      ;; on last grace note
      (let loop ()
 	(if (d-IsGrace)
 		(let ((beam (d-DirectiveGet-chord-postfix "Beam")))
		   (if beam
		      (d-DirectivePut-chord-override "Beam" 0);;really should just 0 the HIDDEN bit
		      )		
    		   (d-DirectiveDelete-chord "GraceAfter" )
       		   (if (d-MoveCursorLeft)
       		   	(loop)))))
      ; now on main note
       (d-DirectiveDelete-chord "MainGraceAfter")
       (d-PopPosition)
       (d-SetSaved #f))
    (begin
      (d-PopPosition)
      (d-WarningDialog  "The cursor is not on a grace note after a main note or chord\n")))
</scheme>
        <label>Un-Grace After</label>
        <tooltip>Make the grace note at the cursor closer to the following rather than preceding note.</tooltip>
      </row>
    </map>
  </merge>
</Denemo>
