aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Roberts2008-04-29 11:02:22 +0000
committerNick Roberts2008-04-29 11:02:22 +0000
commit05dfe89a804fcd96aba533577efc2f4caf1e8f7c (patch)
tree497556255db3710f5e4c909692c8f0b151aece88
parent0715a53151a20aadc3dbd0df6b30848f418d7156 (diff)
downloademacs-05dfe89a804fcd96aba533577efc2f4caf1e8f7c.tar.gz
emacs-05dfe89a804fcd96aba533577efc2f4caf1e8f7c.zip
(gdb-display-buffer): Don't pop up GUD buffer.
Always split windows. (gdb-speedbar-timer-fn): Only raise frame after user input. (gdb-same-frame): Reverse initial value. (gdb-display-gdb-buffer): Check for GUD buffer in other frames.
-rw-r--r--lisp/progmodes/gdb-ui.el31
1 files changed, 10 insertions, 21 deletions
diff --git a/lisp/progmodes/gdb-ui.el b/lisp/progmodes/gdb-ui.el
index 63d48fb9fde..a4e53c47fe1 100644
--- a/lisp/progmodes/gdb-ui.el
+++ b/lisp/progmodes/gdb-ui.el
@@ -814,6 +814,8 @@ With arg, enter name of variable to be watched in the minibuffer."
814 (push 'gdb-speedbar-timer gdb-pending-triggers))) 814 (push 'gdb-speedbar-timer gdb-pending-triggers)))
815 815
816(defun gdb-speedbar-timer-fn () 816(defun gdb-speedbar-timer-fn ()
817 (if gdb-speedbar-auto-raise
818 (raise-frame speedbar-frame))
817 (setq gdb-pending-triggers 819 (setq gdb-pending-triggers
818 (delq 'gdb-speedbar-timer gdb-pending-triggers)) 820 (delq 'gdb-speedbar-timer gdb-pending-triggers))
819 (speedbar-timer-fn)) 821 (speedbar-timer-fn))
@@ -1472,7 +1474,7 @@ directives."
1472 (gdb-resync) 1474 (gdb-resync)
1473 (error "Unexpected frame-begin annotation (%S)" sink))))) 1475 (error "Unexpected frame-begin annotation (%S)" sink)))))
1474 1476
1475(defcustom gdb-same-frame focus-follows-mouse 1477(defcustom gdb-same-frame (not focus-follows-mouse)
1476 "Non-nil means pop up GUD buffer in same frame." 1478 "Non-nil means pop up GUD buffer in same frame."
1477 :group 'gdb 1479 :group 'gdb
1478 :type 'boolean 1480 :type 'boolean
@@ -3056,28 +3058,15 @@ another GDB command e.g pwd, to see new frames")
3056 3058
3057;;;; Window management 3059;;;; Window management
3058(defun gdb-display-buffer (buf dedicated &optional frame) 3060(defun gdb-display-buffer (buf dedicated &optional frame)
3059 (let ((answer (get-buffer-window buf (or frame 0))) 3061 (let ((answer (get-buffer-window buf (or frame 0))))
3060 (must-split nil))
3061 (if answer 3062 (if answer
3062 (display-buffer buf nil (or frame 0)) ;Deiconify the frame if necessary. 3063 (display-buffer buf nil (or frame 0)) ;Deiconify the frame if necessary.
3063 (if (get-buffer-window gud-comint-buffer)
3064 (select-window (get-buffer-window gud-comint-buffer))
3065 ;; If the buffer is not yet displayed, select the right frame.
3066 (pop-to-buffer gud-comint-buffer))
3067 (let ((window (get-lru-window))) 3064 (let ((window (get-lru-window)))
3068 (if (and window 3065 (let* ((largest (get-largest-window))
3069 (not (memq window `(,(get-buffer-window gud-comint-buffer) 3066 (cur-size (window-height largest)))
3070 ,gdb-source-window)))) 3067 (setq answer (split-window largest))
3071 (progn 3068 (set-window-buffer answer buf)
3072 (set-window-buffer window buf) 3069 (set-window-dedicated-p answer dedicated)))
3073 (setq answer window))
3074 (setq must-split t)))
3075 (if must-split
3076 (let* ((largest (get-largest-window))
3077 (cur-size (window-height largest)))
3078 (setq answer (split-window largest))
3079 (set-window-buffer answer buf)
3080 (set-window-dedicated-p answer dedicated)))
3081 answer))) 3070 answer)))
3082 3071
3083 3072
@@ -3159,7 +3148,7 @@ another GDB command e.g pwd, to see new frames")
3159 "Display GUD buffer." 3148 "Display GUD buffer."
3160 (interactive) 3149 (interactive)
3161 (let ((same-window-regexps nil)) 3150 (let ((same-window-regexps nil))
3162 (pop-to-buffer gud-comint-buffer))) 3151 (select-window (display-buffer gud-comint-buffer nil 0))))
3163 3152
3164(defun gdb-set-window-buffer (name) 3153(defun gdb-set-window-buffer (name)
3165 (set-window-buffer (selected-window) (get-buffer name)) 3154 (set-window-buffer (selected-window) (get-buffer name))