summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lwlib/xlwmenu.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index 31773e1e001..4b5e589538f 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -516,10 +516,19 @@ display_menu_item (mw, val, ws, where, highlighted_p, horizontal_p, just_compute
}
else
{
+ int x_offset = x + h_spacing + shadow;
char* display_string = resource_widget_value (mw, val);
draw_shadow_rectangle (mw, ws->window, x, y, width, height, True);
- XDrawString (XtDisplay (mw), ws->window, text_gc,
- x + h_spacing + shadow,
+
+ /* Deal with centering a menu title. */
+ if (!horizontal_p && !val->contents && !val->call_data)
+ {
+ int l = string_width (mw, display_string);
+
+ if (width > l)
+ x_offset = (width - l) >> 1;
+ }
+ XDrawString (XtDisplay (mw), ws->window, text_gc, x_offset,
y + v_spacing + shadow + font_ascent,
display_string, strlen (display_string));