From 1d3710228bb29e020ab4f179b0b14362bb5691b4 Mon Sep 17 00:00:00 2001 From: Dmitry Antipov Date: Tue, 22 Jul 2014 14:34:05 +0400 Subject: [PATCH] * xterm.h (struct x_output) [USE_X_TOOLKIT || USE_GTK]: Define menubar_height as such. Tweak comment. (FRAME_MENUBAR_HEIGHT) [!USE_X_TOOLKIT && !USE_GTK]: No-op. * xterm.c (handle_one_xevent): * gtkutil.c (xg_event_is_for_menubar): * xfns.c (x_window) [USE_X_TOOLKIT]: * xmenu.c (set_frame_menubar, free_frame_menubar): Prefer to use FRAME_MENUBAR_HEIGHT. --- src/ChangeLog | 11 +++++++++++ src/gtkutil.c | 2 +- src/xfns.c | 6 +----- src/xmenu.c | 4 ++-- src/xterm.c | 2 +- src/xterm.h | 14 +++++++++----- 6 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 30a02475262..84fe1f02560 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,14 @@ +2014-07-22 Dmitry Antipov + + * xterm.h (struct x_output) [USE_X_TOOLKIT || USE_GTK]: Define + menubar_height as such. Tweak comment. + (FRAME_MENUBAR_HEIGHT) [!USE_X_TOOLKIT && !USE_GTK]: No-op. + * xterm.c (handle_one_xevent): + * gtkutil.c (xg_event_is_for_menubar): + * xfns.c (x_window) [USE_X_TOOLKIT]: + * xmenu.c (set_frame_menubar, free_frame_menubar): Prefer + to use FRAME_MENUBAR_HEIGHT. + 2014-07-21 Dmitry Antipov * frame.c (Fframe_parameters): Always report frame height without diff --git a/src/gtkutil.c b/src/gtkutil.c index 752cc8ec60e..afa41f3269a 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -3374,7 +3374,7 @@ xg_event_is_for_menubar (struct frame *f, const XEvent *event) if (! (event->xbutton.x >= 0 && event->xbutton.x < FRAME_PIXEL_WIDTH (f) && event->xbutton.y >= 0 - && event->xbutton.y < f->output_data.x->menubar_height + && event->xbutton.y < FRAME_MENUBAR_HEIGHT (f) && event->xbutton.same_screen)) return 0; diff --git a/src/xfns.c b/src/xfns.c index 868c5b68850..1bdb676af04 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -2274,7 +2274,7 @@ x_window (struct frame *f, long window_prompting, int minibuffer_only) } #endif - f->output_data.x->menubar_height = menubar_size; + FRAME_MENUBAR_HEIGHT (f) = menubar_size; #ifndef USE_LUCID /* Motif seems to need this amount added to the sizes @@ -2507,10 +2507,6 @@ x_window (struct frame *f) class_hints.res_class = SSDATA (Vx_resource_class); XSetClassHint (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), &class_hints); - /* The menubar is part of the ordinary display; - it does not count in addition to the height of the window. */ - f->output_data.x->menubar_height = 0; - /* This indicates that we use the "Passive Input" input model. Unless we do this, we don't get the Focus{In,Out} events that we need to draw the cursor correctly. Accursed bureaucrats. diff --git a/src/xmenu.c b/src/xmenu.c index eb98125f6bb..f4d0921762c 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -1023,7 +1023,7 @@ set_frame_menubar (struct frame *f, bool first_time, bool deep_p) #endif /* USE_LUCID */ #endif /* 1 */ - f->output_data.x->menubar_height = menubar_size; + FRAME_MENUBAR_HEIGHT (f) = menubar_size; } #endif /* not USE_GTK */ @@ -1066,7 +1066,7 @@ free_frame_menubar (struct frame *f) menubar_widget = f->output_data.x->menubar_widget; - f->output_data.x->menubar_height = 0; + FRAME_MENUBAR_HEIGHT (f) = 0; if (menubar_widget) { diff --git a/src/xterm.c b/src/xterm.c index c3eb0028206..98737951022 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -6834,7 +6834,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, && event->xbutton.x >= 0 && event->xbutton.x < FRAME_PIXEL_WIDTH (f) && event->xbutton.y >= 0 - && event->xbutton.y < f->output_data.x->menubar_height + && event->xbutton.y < FRAME_MENUBAR_HEIGHT (f) && event->xbutton.same_screen) { if (!f->output_data.x->saved_menu_event) diff --git a/src/xterm.h b/src/xterm.h index 0de9c99ab8f..398d70fc8fc 100644 --- a/src/xterm.h +++ b/src/xterm.h @@ -428,11 +428,11 @@ extern void select_visual (struct x_display_info *); struct x_output { - /* Height of menu bar widget, in pixels. - Zero if not using the X toolkit. - When using the toolkit, this value is not meaningful - if the menubar is turned off. */ +#if defined (USE_X_TOOLKIT) || defined (USE_GTK) + /* Height of menu bar widget, in pixels. This value + is not meaningful if the menubar is turned off. */ int menubar_height; +#endif /* Height of tool bar widget, in pixels. top_height is used if tool bar at top, bottom_height if tool bar is at the bottom. @@ -714,10 +714,14 @@ enum #endif /* !USE_GTK */ #endif +#if defined (USE_X_TOOLKIT) || defined (USE_GTK) +#define FRAME_MENUBAR_HEIGHT(f) ((f)->output_data.x->menubar_height) +#else +#define FRAME_MENUBAR_HEIGHT(f) ((void) f, 0) +#endif /* USE_X_TOOLKIT || USE_GTK */ #define FRAME_FONT(f) ((f)->output_data.x->font) #define FRAME_FONTSET(f) ((f)->output_data.x->fontset) -#define FRAME_MENUBAR_HEIGHT(f) ((f)->output_data.x->menubar_height) #define FRAME_TOOLBAR_TOP_HEIGHT(f) ((f)->output_data.x->toolbar_top_height) #define FRAME_TOOLBAR_BOTTOM_HEIGHT(f) \ ((f)->output_data.x->toolbar_bottom_height) -- 2.39.2