Mercurial > emacs
changeset 80388:2ae7357bc8f4
* macfns.c (mac_window): Replace WindowPtr with WindowRef.
(mac_get_window_bounds): Move extern to macterm.h.
(compute_tip_xy) [TARGET_API_MAC_CARBON]: Use GetGlobalMouse.
(mac_window) [USE_MAC_TOOLBAR]: Set toolbar_win_gravity.
(x_set_tool_bar_lines) [USE_MAC_TOOLBAR]: Set FRAME_EXTERNAL_TOOL_BAR.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Sat, 29 Mar 2008 00:45:58 +0000 |
parents | 3fdc60eb4014 |
children | f89745e778b8 |
files | src/macfns.c |
diffstat | 1 files changed, 38 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/macfns.c Sat Mar 29 00:45:38 2008 +0000 +++ b/src/macfns.c Sat Mar 29 00:45:58 2008 +0000 @@ -218,9 +218,6 @@ void x_set_menu_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object)); void x_set_title P_ ((struct frame *, Lisp_Object, Lisp_Object)); void x_set_tool_bar_lines P_ ((struct frame *, Lisp_Object, Lisp_Object)); - -extern void mac_get_window_bounds P_ ((struct frame *, Rect *, Rect *)); - /* Store the screen positions of frame F into XPTR and YPTR. @@ -1685,6 +1682,25 @@ /* Make sure we redisplay all windows in this frame. */ ++windows_or_buffers_changed; +#if USE_MAC_TOOLBAR + FRAME_TOOL_BAR_LINES (f) = 0; + if (nlines) + { + FRAME_EXTERNAL_TOOL_BAR (f) = 1; + if (FRAME_MAC_P (f) && !IsWindowToolbarVisible (FRAME_MAC_WINDOW (f))) + /* Make sure next redisplay shows the tool bar. */ + XWINDOW (FRAME_SELECTED_WINDOW (f))->update_mode_line = Qt; + } + else + { + if (FRAME_EXTERNAL_TOOL_BAR (f)) + free_frame_tool_bar (f); + FRAME_EXTERNAL_TOOL_BAR (f) = 0; + } + + return; +#endif + delta = nlines - FRAME_TOOL_BAR_LINES (f); /* Don't resize the tool-bar to more than we have room for. */ @@ -2255,11 +2271,11 @@ FRAME_MAC_WINDOW (f) = NULL; } } -#else +#else /* !TARGET_API_MAC_CARBON */ FRAME_MAC_WINDOW (f) = NewCWindow (NULL, &r, "\p", false, zoomDocProc, - (WindowPtr) -1, 1, (long) f->output_data.mac); -#endif + (WindowRef) -1, 1, (long) f->output_data.mac); +#endif /* !TARGET_API_MAC_CARBON */ /* so that update events can find this mac_output struct */ f->output_data.mac->mFP = f; /* point back to emacs frame */ @@ -2279,6 +2295,16 @@ XSetWindowBackground (FRAME_MAC_DISPLAY(f), FRAME_MAC_WINDOW (f), FRAME_BACKGROUND_PIXEL (f)); +#if USE_MAC_TOOLBAR + /* At the moment, the size of the tool bar is not yet known. We + record the gravity value of the newly created window and use it + to adjust the position of the window (especially for a negative + specification of its vertical position) when the tool bar is + first redisplayed. */ + if (FRAME_EXTERNAL_TOOL_BAR (f)) + f->output_data.mac->toolbar_win_gravity = f->win_gravity; +#endif + validate_x_resource_name (); /* x_set_name normally ignores requests to set the name if the @@ -3112,7 +3138,7 @@ UNBLOCK_INPUT; } #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020 - else + else /* CGDisplayScreenSize == NULL */ #endif #endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */ #if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020 @@ -3149,7 +3175,7 @@ UNBLOCK_INPUT; } #if MAC_OS_X_VERSION_MIN_REQUIRED == 1020 - else + else /* CGDisplayScreenSize == NULL */ #endif #endif /* MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 */ #if MAC_OS_X_VERSION_MAX_ALLOWED < 1030 || MAC_OS_X_VERSION_MIN_REQUIRED == 1020 @@ -4068,8 +4094,12 @@ Point mouse_pos; BLOCK_INPUT; +#if TARGET_API_MAC_CARBON + GetGlobalMouse (&mouse_pos); +#else GetMouse (&mouse_pos); LocalToGlobal (&mouse_pos); +#endif *root_x = mouse_pos.h; *root_y = mouse_pos.v; UNBLOCK_INPUT;