Mercurial > emacs
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 |