]> git.eshelyaron.com Git - emacs.git/commitdiff
(gdb-mouse-toggle-breakpoint): New defun.
authorKim F. Storm <storm@cua.dk>
Sun, 23 Nov 2003 00:27:38 +0000 (00:27 +0000)
committerKim F. Storm <storm@cua.dk>
Sun, 23 Nov 2003 00:27:38 +0000 (00:27 +0000)
(gdba): Bind it to [left-margin mouse-1] and [left-fringe mouse-1].

lisp/gdb-ui.el

index be61bf8059a8895a79045d04f8e96280bcab3dc4..b1bb026aef7bc2fd91e57f04b2fc2573864ca6f6 100644 (file)
@@ -145,6 +145,9 @@ The following interactive lisp functions help control operation :
                          (gud-call "until *%a" arg)))
           "\C-u" "Continue to current line or address.")
 
+  (define-key gud-minor-mode-map [left-margin mouse-1] 'gdb-mouse-toggle-breakpoint)
+  (define-key gud-minor-mode-map [left-fringe mouse-1] 'gdb-mouse-toggle-breakpoint)
+
   (setq comint-input-sender 'gdb-send)
   ;;
   ;; (re-)initialise
@@ -1055,6 +1058,20 @@ static char *magick[] = {
          (end-of-line)))))
   (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom)))
 
+(defun gdb-mouse-toggle-breakpoint (event)
+  "Toggle breakpoint with mouse click in left margin."
+  (interactive "e")
+  (mouse-minibuffer-check event)
+  (let ((posn (event-end event)))
+    (message "pt=%S posn=%S" (posn-point posn) posn)
+    (if (numberp (posn-point posn))
+       (with-selected-window (posn-window posn)
+         (save-excursion
+           (goto-char (posn-point posn))
+           (if (posn-object posn)
+               (gud-remove nil)
+             (gud-break nil)))))))
+
 (defun gdb-breakpoints-buffer-name ()
   (with-current-buffer gud-comint-buffer
     (concat "*breakpoints of " (gdb-get-target-string) "*")))