# HG changeset patch # User Jan D # Date 1284714275 -7200 # Node ID bbc922c0cfa8933cec84d1500d35f78b96a956ab # Parent 670fe38909f508021b13ccd2de971a7197ca83ff 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. diff -r 670fe38909f5 -r bbc922c0cfa8 lisp/ChangeLog --- 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 + + * 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 * net/tramp-compat.el (tramp-compat-with-temp-message): Make it a diff -r 670fe38909f5 -r bbc922c0cfa8 lisp/dframe.el --- 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))) diff -r 670fe38909f5 -r bbc922c0cfa8 src/ChangeLog --- 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 + + * frame.c (Ftool_bar_pixel_width): New function to expose tool + bar's pixel width to Lisp (Bug#7048). + + 2010-09-14 Juanma Barranquero + + * cmds.c (syms_of_cmds) : Fix typos in docstring. 2010-09-17 Jan Djärv * gtkutil.c (xg_pack_tool_bar): Call gtk_handle_box_set_handle_position diff -r 670fe38909f5 -r bbc922c0cfa8 src/frame.c --- 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);