diff options
| author | Jan Djärv | 2011-02-14 18:21:10 +0100 |
|---|---|---|
| committer | Jan Djärv | 2011-02-14 18:21:10 +0100 |
| commit | 3928f2b67e69cd22995558cc205a2fc6aa33d477 (patch) | |
| tree | 1a384801162ad5afaa0e5fa7f4e8f0cb023d8d60 /src | |
| parent | 4bb81cc2ba5b44f97b14f7c7ae0dd6b972e71677 (diff) | |
| download | emacs-3928f2b67e69cd22995558cc205a2fc6aa33d477.tar.gz emacs-3928f2b67e69cd22995558cc205a2fc6aa33d477.zip | |
Use *font for Xft font names for Lucid menus and dialogs.
* doc/emacs/xresources.texi (X Resources): Remove *faceName and replace it with
*font for Lucid.
* lwlib/lwlib-Xaw.c (make_dialog): Use *font even for Xft fonts. Try
XLoadQueryFont first and then Xft fonts.
* lwlib/xlwmenu.c (xlwmenu_default_font): Remove, does not work for
multi-display.
(xlwMenuResources): Remove XtNfaceName and XtNdefaultFace.
Make XtNFont a String resource.
(make_windows_if_needed): Call XFlush so later changes are seen by the
X server.
(remap_menubar): Use XtMoveWidget and then
XtResizeWidget/XtResizeWindow after XtPopup. Works better with
Compiz.
(make_drawing_gcs): Check if mw->menu.font is set.
(getDefaultXftFont): New function.
(openXftFont): faceName is now fontName. Try XLoadQueryFont first
and then XftFontOpenName.
(XlwMenuInitialize): Initialize mw->menu.font with XLoadQueryFont.
(XlwMenuClassInitialize): Remove initialization of
xlwmenu_default_font.
(fontname_changed): Renamed from facename_changed.
(XlwMenuSetValues): Use facename_changed.
* lwlib/xlwmenu.h: Remove Xt[CN]faceName and Xt[NC]defaultFace.
* lwlib/xlwmenuP.h (_XlwMenu_part): Remove faceName. Add fontName.
* src/xmenu.c (apply_systemfont_to_dialog): Apply to *dialog.font.
(apply_systemfont_to_menu): Set resources *menubar*font and
*popup*font. Remove defflt.
(set_frame_menubar, create_and_show_popup_menu): Call
apply_systemfont_to_menu before lw_create_widget.
* src/xrdb.c (x_load_resources): For LUCID and XFT, don't put a
resource that specifies helvetica for menus and dialogs.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 11 | ||||
| -rw-r--r-- | src/xmenu.c | 42 | ||||
| -rw-r--r-- | src/xrdb.c | 6 |
3 files changed, 34 insertions, 25 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 7f4e13b733f..54d9a32804d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,14 @@ | |||
| 1 | 2011-02-14 Jan Djärv <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * xrdb.c (x_load_resources): For LUCID and XFT, don't put a | ||
| 4 | resource that specifies helvetica for menus and dialogs. | ||
| 5 | |||
| 6 | * xmenu.c (apply_systemfont_to_dialog): Apply to *dialog.font. | ||
| 7 | (apply_systemfont_to_menu): Set resources *menubar*font and | ||
| 8 | *popup*font. Remove defflt. | ||
| 9 | (set_frame_menubar, create_and_show_popup_menu): Call | ||
| 10 | apply_systemfont_to_menu before lw_create_widget. | ||
| 11 | |||
| 1 | 2011-02-14 Tom Tromey <tromey@redhat.com> | 12 | 2011-02-14 Tom Tromey <tromey@redhat.com> |
| 2 | 13 | ||
| 3 | * keyboard.h: Remove obsolete comment. | 14 | * keyboard.h: Remove obsolete comment. |
diff --git a/src/xmenu.c b/src/xmenu.c index ad1a764eab8..934db0f0406 100644 --- a/src/xmenu.c +++ b/src/xmenu.c | |||
| @@ -887,31 +887,26 @@ apply_systemfont_to_dialog (Widget w) | |||
| 887 | { | 887 | { |
| 888 | XrmDatabase db = XtDatabase (XtDisplay (w)); | 888 | XrmDatabase db = XtDatabase (XtDisplay (w)); |
| 889 | if (db) | 889 | if (db) |
| 890 | XrmPutStringResource (&db, "*dialog.faceName", fn); | 890 | XrmPutStringResource (&db, "*dialog.font", fn); |
| 891 | } | 891 | } |
| 892 | } | 892 | } |
| 893 | 893 | ||
| 894 | static void | 894 | static void |
| 895 | apply_systemfont_to_menu (Widget w) | 895 | apply_systemfont_to_menu (struct frame *f, Widget w) |
| 896 | { | 896 | { |
| 897 | const char *fn = xsettings_get_system_normal_font (); | 897 | const char *fn = xsettings_get_system_normal_font (); |
| 898 | int defflt; | ||
| 899 | 898 | ||
| 900 | if (!fn) return; | 899 | if (fn) |
| 901 | |||
| 902 | if (XtIsShell (w)) /* popup menu */ | ||
| 903 | { | 900 | { |
| 904 | Widget *childs = NULL; | 901 | XrmDatabase db = XtDatabase (XtDisplay (w)); |
| 905 | 902 | if (db) | |
| 906 | XtVaGetValues (w, XtNchildren, &childs, NULL); | 903 | { |
| 907 | if (*childs) w = *childs; | 904 | XrmPutStringResource (&db, "*menubar*font", fn); |
| 905 | XrmPutStringResource (&db, "*popup*font", fn); | ||
| 906 | } | ||
| 908 | } | 907 | } |
| 909 | |||
| 910 | /* Only use system font if the default is used for the menu. */ | ||
| 911 | XtVaGetValues (w, XtNdefaultFace, &defflt, NULL); | ||
| 912 | if (defflt) | ||
| 913 | XtVaSetValues (w, XtNfaceName, fn, NULL); | ||
| 914 | } | 908 | } |
| 909 | |||
| 915 | #endif | 910 | #endif |
| 916 | 911 | ||
| 917 | /* Set the contents of the menubar widgets of frame F. | 912 | /* Set the contents of the menubar widgets of frame F. |
| @@ -1210,7 +1205,11 @@ set_frame_menubar (FRAME_PTR f, int first_time, int deep_p) | |||
| 1210 | char menuOverride[] = "Ctrl<KeyPress>g: MenuGadgetEscape()"; | 1205 | char menuOverride[] = "Ctrl<KeyPress>g: MenuGadgetEscape()"; |
| 1211 | XtTranslations override = XtParseTranslationTable (menuOverride); | 1206 | XtTranslations override = XtParseTranslationTable (menuOverride); |
| 1212 | 1207 | ||
| 1213 | menubar_widget = lw_create_widget ("menubar", "menubar", id, first_wv, | 1208 | #ifdef USE_LUCID |
| 1209 | apply_systemfont_to_menu (f, f->output_data.x->column_widget); | ||
| 1210 | #endif | ||
| 1211 | menubar_widget = lw_create_widget ("menubar", "menubar", id, | ||
| 1212 | first_wv, | ||
| 1214 | f->output_data.x->column_widget, | 1213 | f->output_data.x->column_widget, |
| 1215 | 0, | 1214 | 0, |
| 1216 | popup_activate_callback, | 1215 | popup_activate_callback, |
| @@ -1221,9 +1220,6 @@ set_frame_menubar (FRAME_PTR f, int first_time, int deep_p) | |||
| 1221 | 1220 | ||
| 1222 | /* Make menu pop down on C-g. */ | 1221 | /* Make menu pop down on C-g. */ |
| 1223 | XtOverrideTranslations (menubar_widget, override); | 1222 | XtOverrideTranslations (menubar_widget, override); |
| 1224 | #ifdef USE_LUCID | ||
| 1225 | apply_systemfont_to_menu (menubar_widget); | ||
| 1226 | #endif | ||
| 1227 | } | 1223 | } |
| 1228 | 1224 | ||
| 1229 | { | 1225 | { |
| @@ -1542,6 +1538,10 @@ create_and_show_popup_menu (FRAME_PTR f, widget_value *first_wv, | |||
| 1542 | if (! FRAME_X_P (f)) | 1538 | if (! FRAME_X_P (f)) |
| 1543 | abort (); | 1539 | abort (); |
| 1544 | 1540 | ||
| 1541 | #ifdef USE_LUCID | ||
| 1542 | apply_systemfont_to_menu (f, f->output_data.x->widget); | ||
| 1543 | #endif | ||
| 1544 | |||
| 1545 | menu_id = widget_id_tick++; | 1545 | menu_id = widget_id_tick++; |
| 1546 | menu = lw_create_widget ("popup", first_wv->name, menu_id, first_wv, | 1546 | menu = lw_create_widget ("popup", first_wv->name, menu_id, first_wv, |
| 1547 | f->output_data.x->widget, 1, 0, | 1547 | f->output_data.x->widget, 1, 0, |
| @@ -1549,10 +1549,6 @@ create_and_show_popup_menu (FRAME_PTR f, widget_value *first_wv, | |||
| 1549 | popup_deactivate_callback, | 1549 | popup_deactivate_callback, |
| 1550 | menu_highlight_callback); | 1550 | menu_highlight_callback); |
| 1551 | 1551 | ||
| 1552 | #ifdef USE_LUCID | ||
| 1553 | apply_systemfont_to_menu (menu); | ||
| 1554 | #endif | ||
| 1555 | |||
| 1556 | dummy.type = ButtonPress; | 1552 | dummy.type = ButtonPress; |
| 1557 | dummy.serial = 0; | 1553 | dummy.serial = 0; |
| 1558 | dummy.send_event = 0; | 1554 | dummy.send_event = 0; |
diff --git a/src/xrdb.c b/src/xrdb.c index 90afe32bb66..01714900752 100644 --- a/src/xrdb.c +++ b/src/xrdb.c | |||
| @@ -546,12 +546,14 @@ x_load_resources (Display *display, const char *xrm_string, | |||
| 546 | 546 | ||
| 547 | #else /* not USE_MOTIF */ | 547 | #else /* not USE_MOTIF */ |
| 548 | 548 | ||
| 549 | sprintf (line, "Emacs.dialog*.font: %s", helv); | ||
| 550 | XrmPutLineResource (&rdb, line); | ||
| 551 | sprintf (line, "Emacs.dialog*.background: grey75"); | 549 | sprintf (line, "Emacs.dialog*.background: grey75"); |
| 552 | XrmPutLineResource (&rdb, line); | 550 | XrmPutLineResource (&rdb, line); |
| 551 | #if !defined (HAVE_XFT) || !defined (USE_LUCID) | ||
| 552 | sprintf (line, "Emacs.dialog*.font: %s", helv); | ||
| 553 | XrmPutLineResource (&rdb, line); | ||
| 553 | sprintf (line, "*XlwMenu*font: %s", helv); | 554 | sprintf (line, "*XlwMenu*font: %s", helv); |
| 554 | XrmPutLineResource (&rdb, line); | 555 | XrmPutLineResource (&rdb, line); |
| 556 | #endif | ||
| 555 | sprintf (line, "*XlwMenu*background: grey75"); | 557 | sprintf (line, "*XlwMenu*background: grey75"); |
| 556 | XrmPutLineResource (&rdb, line); | 558 | XrmPutLineResource (&rdb, line); |
| 557 | sprintf (line, "Emacs*verticalScrollBar.background: grey75"); | 559 | sprintf (line, "Emacs*verticalScrollBar.background: grey75"); |