comparison lisp/progmodes/gdb-ui.el @ 94476:3fd45a6262cb

(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.
author Nick Roberts <nickrob@snap.net.nz>
date Tue, 29 Apr 2008 11:02:22 +0000
parents 149436454788
children 3a51a1333f0f
comparison
equal deleted inserted replaced
94475:cbe85fa81a06 94476:3fd45a6262cb
812 (gdb-enqueue-input (list "server pwd\n" 'gdb-speedbar-timer-fn)) 812 (gdb-enqueue-input (list "server pwd\n" 'gdb-speedbar-timer-fn))
813 ;; Keep gdb-pending-triggers non-nil till end. 813 ;; Keep gdb-pending-triggers non-nil till end.
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))
820 822
821 (defun gdb-var-evaluate-expression-handler (varnum changed) 823 (defun gdb-var-evaluate-expression-handler (varnum changed)
1470 ((eq sink 'emacs) t) 1472 ((eq sink 'emacs) t)
1471 (t 1473 (t
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
1479 :version "22.1") 1481 :version "22.1")
1480 1482
3054 (display-buffer (gdb-get-buffer-create 'gdb-locals-buffer)))) 3056 (display-buffer (gdb-get-buffer-create 'gdb-locals-buffer))))
3055 3057
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
3084 ;;; Shared keymap initialization: 3073 ;;; Shared keymap initialization:
3085 3074
3157 3146
3158 (defun gdb-display-gdb-buffer () 3147 (defun gdb-display-gdb-buffer ()
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))
3166 (set-window-dedicated-p (selected-window) t)) 3155 (set-window-dedicated-p (selected-window) t))
3167 3156