aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2008-04-29 00:41:23 +0000
committerNick Roberts2008-04-29 00:41:23 +0000
commit72ba4f36c6711f9186a4cb8916f89f8a321f202f (patch)
treee5df302fbee2ca9748bfdcd63d405506c42bda38
parent4b23c5eb69364aed19fc5ce7edc4bafca755d864 (diff)
downloademacs-72ba4f36c6711f9186a4cb8916f89f8a321f202f.tar.gz
emacs-72ba4f36c6711f9186a4cb8916f89f8a321f202f.zip
(gdb-info-stack-custom): Use
gud-tool-bar-item-visible-no-fringe. (gdb-display-buffer): Don't pop new buffer if gud-comint-buffer is already visible in frame. Remove optional size parameter and add optional frame parameter.
-rw-r--r--lisp/progmodes/gdb-ui.el45
1 files changed, 24 insertions, 21 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index ccb11a2f7e2..63285802973 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -97,7 +97,10 @@
97;;; TODO: 97;;; TODO:
98 98
99;; 1) Use MI command -data-read-memory for memory window. 99;; 1) Use MI command -data-read-memory for memory window.
100;; 2) Use tree-widget.el instead of the speedbar for watch-expressions? 100;; 2) Use tree-buffer.el (from ECB) instead of the speedbar for
101;; watch-expressions? Handling of watch-expressions needs to be
102;; overhauled to work for large arrays/structures by creating variable
103;; objects for visible watch-expressions only.
101;; 3) Mark breakpoint locations on scroll-bar of source buffer? 104;; 3) Mark breakpoint locations on scroll-bar of source buffer?
102 105
103;;; Code: 106;;; Code:
@@ -2256,20 +2259,20 @@ corresponding to the mode line clicked."
2256 el (line-end-position)) 2259 el (line-end-position))
2257 (when (looking-at "#") 2260 (when (looking-at "#")
2258 (add-text-properties bl el 2261 (add-text-properties bl el
2259 '(mouse-face highlight 2262 '(mouse-face highlight
2260 help-echo "mouse-2, RET: Select frame"))) 2263 help-echo "mouse-2, RET: Select frame")))
2261 (goto-char bl) 2264 (goto-char bl)
2262 (when (looking-at "^#\\([0-9]+\\)") 2265 (when (looking-at "^#\\([0-9]+\\)")
2263 (when (string-equal (match-string 1) gdb-frame-number) 2266 (when (string-equal (match-string 1) gdb-frame-number)
2264 (if (> (car (window-fringes)) 0) 2267 (if (gud-tool-bar-item-visible-no-fringe)
2265 (progn 2268 (progn
2266 (or gdb-stack-position 2269 (put-text-property bl (+ bl 4)
2267 (setq gdb-stack-position (make-marker))) 2270 'face '(:inverse-video t))
2268 (set-marker gdb-stack-position (point)) 2271 (setq move-to bl))
2269 (setq move-to gdb-stack-position)) 2272 (or gdb-stack-position
2270 (put-text-property bl (+ bl 4) 2273 (setq gdb-stack-position (make-marker)))
2271 'face '(:inverse-video t)) 2274 (set-marker gdb-stack-position (point))
2272 (setq move-to bl))) 2275 (setq move-to gdb-stack-position)))
2273 (when (re-search-forward "\\([^ ]+\\) (" el t) 2276 (when (re-search-forward "\\([^ ]+\\) (" el t)
2274 (put-text-property (match-beginning 1) (match-end 1) 2277 (put-text-property (match-beginning 1) (match-end 1)
2275 'face font-lock-function-name-face) 2278 'face font-lock-function-name-face)
@@ -3005,8 +3008,7 @@ another GDB command e.g pwd, to see new frames")
3005 (insert-buffer-substring (gdb-get-buffer-create 3008 (insert-buffer-substring (gdb-get-buffer-create
3006 'gdb-partial-output-buffer)) 3009 'gdb-partial-output-buffer))
3007 (set-window-start window start) 3010 (set-window-start window start)
3008 (set-window-point window p)) 3011 (set-window-point window p)))))
3009)))
3010 (run-hooks 'gdb-info-locals-hook)) 3012 (run-hooks 'gdb-info-locals-hook))
3011 3013
3012(defvar gdb-locals-mode-map 3014(defvar gdb-locals-mode-map
@@ -3054,13 +3056,15 @@ another GDB command e.g pwd, to see new frames")
3054 3056
3055 3057
3056;;;; Window management 3058;;;; Window management
3057(defun gdb-display-buffer (buf dedicated &optional size) 3059(defun gdb-display-buffer (buf dedicated &optional frame)
3058 (let ((answer (get-buffer-window buf 0)) 3060 (let ((answer (get-buffer-window buf (or frame 0)))
3059 (must-split nil)) 3061 (must-split nil))
3060 (if answer 3062 (if answer
3061 (display-buffer buf nil 0) ;Deiconify the frame if necessary. 3063 (display-buffer buf nil (or frame 0)) ;Deiconify the frame if necessary.
3062 ;; The buffer is not yet displayed. 3064 (if (get-buffer-window gud-comint-buffer)
3063 (pop-to-buffer gud-comint-buffer) ;Select the right frame. 3065 (select-window (get-buffer-window gud-comint-buffer))
3066 ;; If the buffer is not yet displayed, select the right frame.
3067 (pop-to-buffer gud-comint-buffer))
3064 (let ((window (get-lru-window))) 3068 (let ((window (get-lru-window)))
3065 (if (and window 3069 (if (and window
3066 (not (memq window `(,(get-buffer-window gud-comint-buffer) 3070 (not (memq window `(,(get-buffer-window gud-comint-buffer)
@@ -3071,9 +3075,8 @@ another GDB command e.g pwd, to see new frames")
3071 (setq must-split t))) 3075 (setq must-split t)))
3072 (if must-split 3076 (if must-split
3073 (let* ((largest (get-largest-window)) 3077 (let* ((largest (get-largest-window))
3074 (cur-size (window-height largest)) 3078 (cur-size (window-height largest)))
3075 (new-size (and size (< size cur-size) (- cur-size size)))) 3079 (setq answer (split-window largest))
3076 (setq answer (split-window largest new-size))
3077 (set-window-buffer answer buf) 3080 (set-window-buffer answer buf)
3078 (set-window-dedicated-p answer dedicated))) 3081 (set-window-dedicated-p answer dedicated)))
3079 answer))) 3082 answer)))