Mercurial > emacs
changeset 110391:bbc922c0cfa8
Expose tool-bar pixel width to lisp and use it for speedbar (Bug#7048)
* dframe.el (dframe-reposition-frame-emacs): Use tool-bar-pixel-width
in calculating new frame position. Add more space between new and
parent on the left.
* frame.c (Ftool_bar_pixel_width): New function to expose tool
bar's pixel width to Lisp.
author | Jan D <jan.h.d@swipnet.se> |
---|---|
date | Fri, 17 Sep 2010 11:04:35 +0200 |
parents | 670fe38909f5 |
children | 0b48e1b8f0e3 |
files | lisp/ChangeLog lisp/dframe.el src/ChangeLog src/frame.c |
diffstat | 4 files changed, 41 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Fri Sep 17 09:58:07 2010 +0200 +++ b/lisp/ChangeLog Fri Sep 17 11:04:35 2010 +0200 @@ -1,3 +1,9 @@ +2010-09-17 Stephen Berman <stephen.berman@gmx.net> + + * dframe.el (dframe-reposition-frame-emacs): Use tool-bar-pixel-width + in calculating new frame position. Add more space between new and + parent on the left (Bug#7048). + 2010-09-17 Michael Albinus <michael.albinus@gmx.de> * net/tramp-compat.el (tramp-compat-with-temp-message): Make it a
--- a/lisp/dframe.el Fri Sep 17 09:58:07 2010 +0200 +++ b/lisp/dframe.el Fri Sep 17 11:04:35 2010 +0200 @@ -430,7 +430,8 @@ (unless (or (not window-system) (eq window-system 'pc)) (let* ((pfx (dframe-frame-parameter parent-frame 'left)) (pfy (dframe-frame-parameter parent-frame 'top)) - (pfw (frame-pixel-width parent-frame)) + (pfw (+ (tool-bar-pixel-width parent-frame) + (frame-pixel-width parent-frame))) (pfh (frame-pixel-height parent-frame)) (nfw (frame-pixel-width new-frame)) (nfh (frame-pixel-height new-frame)) @@ -459,7 +460,7 @@ (- (x-display-pixel-height) (car (cdr pfy)) pfh) (car (cdr pfy))))) (cond ((eq location 'right) - (setq newleft (+ pfx pfw 5) + (setq newleft (+ pfx pfw 10) newtop pfy)) ((eq location 'left) (setq newleft (- pfx 10 nfw) @@ -471,7 +472,7 @@ ;; extra 10 is just dressings for window ;; decorations. (let* ((left-guess (- pfx 10 nfw)) - (right-guess (+ pfx pfw 5)) + (right-guess (+ pfx pfw 10)) (left-margin left-guess) (right-margin (- (x-display-pixel-width) right-guess 5 nfw)))
--- a/src/ChangeLog Fri Sep 17 09:58:07 2010 +0200 +++ b/src/ChangeLog Fri Sep 17 11:04:35 2010 +0200 @@ -1,3 +1,11 @@ +2010-09-17 Stephen Berman <stephen.berman@gmx.net> + + * frame.c (Ftool_bar_pixel_width): New function to expose tool + bar's pixel width to Lisp (Bug#7048). + + 2010-09-14 Juanma Barranquero <lekktu@gmail.com> + + * cmds.c (syms_of_cmds) <post-self-insert-hook>: Fix typos in docstring. 2010-09-17 Jan Djärv <jan.h.d@swipnet.se> * gtkutil.c (xg_pack_tool_bar): Call gtk_handle_box_set_handle_position
--- a/src/frame.c Fri Sep 17 09:58:07 2010 +0200 +++ b/src/frame.c Fri Sep 17 11:04:35 2010 +0200 @@ -2649,6 +2649,28 @@ #endif return make_number (FRAME_COLS (f)); } + +DEFUN ("tool-bar-pixel-width", Ftool_bar_pixel_width, + Stool_bar_pixel_width, 0, 1, 0, + doc: /* Return width in pixels of FRAME's tool bar. +The result is greater than zero only when the tool bar is on the left +or right side of FRAME. If FRAME is omitted, the selected frame is +used. */) + (Lisp_Object frame) +{ + struct frame *f; + + if (NILP (frame)) + frame = selected_frame; + CHECK_FRAME (frame); + f = XFRAME (frame); + +#ifdef FRAME_TOOLBAR_WIDTH + if (FRAME_WINDOW_P (f)) + return make_number (FRAME_TOOLBAR_WIDTH (f)); +#endif + return 0; +} DEFUN ("set-frame-height", Fset_frame_height, Sset_frame_height, 2, 3, 0, doc: /* Specify that the frame FRAME has LINES lines. @@ -4596,6 +4618,7 @@ defsubr (&Sframe_char_width); defsubr (&Sframe_pixel_height); defsubr (&Sframe_pixel_width); + defsubr (&Stool_bar_pixel_width); defsubr (&Sset_frame_height); defsubr (&Sset_frame_width); defsubr (&Sset_frame_size);