emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Non-ASCII in Lucid menus


From: Stefan Monnier
Subject: Re: Non-ASCII in Lucid menus
Date: Sun, 13 Mar 2005 08:44:32 -0500
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

>> The patch below makes the Lucid menu use fontsets to draw its text, so that
>> it's able to write non-ASCII (the set of chars supported is dependent on the
>> locale, and of course on the fonts).
>> 
>> I'm very much an idiot when it comes to X11 programming, xfaces.c, and
>> lwlib, so this might be riddled with bugs and misunderstandings, but after
>> some trial-and-error this not only works for me, but it even looks sensible
>> to me.
>> 
>> Any objection?

> It is incompatible in the sense that settings in .Xresources that previously
> used
> ...*menu*font: ...

> now must use
> ...*menu*fontSet:

> for the lucid menus.  This should be mentioned in NEWS.

Hmm... good point.  Do you happen to know how I could get the expected
behavior that "if `font' is set but `fontSet' isn't, use `font'"?

> Also, the default font used for lucid menus will most certainly be
> different now.

Why?  What can I do about it?

>> PS: The use of XrmPutLineResource in xfaces.c seems amazingly brittle and
>> hackish, but that's what the rest of the code uses.

> It basically sets a default value.  If the user overrides it (with an
> X resource or -xrm on the command line) the user setting takes precedence.
> Yes, it is a bit hackish.

It also seems wrong: user settings on the `menu' face should take
precedence, shouldn't they?


        Stefan


PS: A part of the patch I sent was missing:

--- src/xmenu.c 12 Mar 2005 23:29:04 -0000      1.281
+++ src/xmenu.c 13 Mar 2005 13:42:40 -0000
@@ -137,6 +137,8 @@
 #ifdef USE_GTK
 /* gtk just uses utf-8.  */
 # define ENCODE_MENU_STRING(str) ENCODE_UTF_8 (str)
+#elif defined HAVE_X_I18N
+# define ENCODE_MENU_STRING(str) ENCODE_SYSTEM (str)
 #else
 # define ENCODE_MENU_STRING(str) string_make_unibyte (str)
 #endif




reply via email to

[Prev in Thread] Current Thread [Next in Thread]