mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-06 06:20:55 -08:00
* xlwmenu.c (openXftFont): Do not load regular X font here.
(XlwMenuInitialize): Remove ancient #if 0 code. (XlwMenuDestroy): Likewise. Free regular X font here.
This commit is contained in:
parent
827a3c3d8e
commit
0882152e22
2 changed files with 17 additions and 27 deletions
|
|
@ -1,3 +1,9 @@
|
||||||
|
2014-06-03 Dmitry Antipov <dmantipov@yandex.ru>
|
||||||
|
|
||||||
|
* xlwmenu.c (openXftFont): Do not load regular X font here.
|
||||||
|
(XlwMenuInitialize): Remove ancient #if 0 code.
|
||||||
|
(XlwMenuDestroy): Likewise. Free regular X font here.
|
||||||
|
|
||||||
2014-06-02 Dmitry Antipov <dmantipov@yandex.ru>
|
2014-06-02 Dmitry Antipov <dmantipov@yandex.ru>
|
||||||
|
|
||||||
Use common memory management functions for widgets.
|
Use common memory management functions for widgets.
|
||||||
|
|
|
||||||
|
|
@ -1863,16 +1863,9 @@ openXftFont (XlwMenuWidget mw)
|
||||||
fname[i] = '-';
|
fname[i] = '-';
|
||||||
}
|
}
|
||||||
|
|
||||||
mw->menu.font = XLoadQueryFont (XtDisplay (mw), fname);
|
mw->menu.xft_font = XftFontOpenName (XtDisplay (mw), screen, fname);
|
||||||
if (!mw->menu.font)
|
if (!mw->menu.xft_font)
|
||||||
{
|
mw->menu.xft_font = getDefaultXftFont (mw);
|
||||||
mw->menu.xft_font = XftFontOpenName (XtDisplay (mw), screen, fname);
|
|
||||||
if (!mw->menu.xft_font)
|
|
||||||
{
|
|
||||||
fprintf (stderr, "Can't find font '%s'\n", fname);
|
|
||||||
mw->menu.xft_font = getDefaultXftFont (mw);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fname != mw->menu.fontName) xfree (fname);
|
if (fname != mw->menu.fontName) xfree (fname);
|
||||||
|
|
@ -1889,15 +1882,6 @@ XlwMenuInitialize (Widget request, Widget w, ArgList args, Cardinal *num_args)
|
||||||
Window window = RootWindowOfScreen (DefaultScreenOfDisplay (XtDisplay (mw)));
|
Window window = RootWindowOfScreen (DefaultScreenOfDisplay (XtDisplay (mw)));
|
||||||
Display* display = XtDisplay (mw);
|
Display* display = XtDisplay (mw);
|
||||||
|
|
||||||
#if 0
|
|
||||||
widget_value *tem = (widget_value *) XtMalloc (sizeof (widget_value));
|
|
||||||
|
|
||||||
/* _XtCreate is freeing the object that was passed to us,
|
|
||||||
so make a copy that we will actually keep. */
|
|
||||||
memcpy (tem, mw->menu.contents, sizeof (widget_value));
|
|
||||||
mw->menu.contents = tem;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* mw->menu.cursor = XCreateFontCursor (display, mw->menu.cursor_shape); */
|
/* mw->menu.cursor = XCreateFontCursor (display, mw->menu.cursor_shape); */
|
||||||
mw->menu.cursor = mw->menu.cursor_shape;
|
mw->menu.cursor = mw->menu.cursor_shape;
|
||||||
|
|
||||||
|
|
@ -2074,19 +2058,15 @@ XlwMenuDestroy (Widget w)
|
||||||
XFreePixmap (XtDisplay (mw), mw->menu.gray_pixmap);
|
XFreePixmap (XtDisplay (mw), mw->menu.gray_pixmap);
|
||||||
mw->menu.gray_pixmap = (Pixmap) -1;
|
mw->menu.gray_pixmap = (Pixmap) -1;
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* Do free mw->menu.contents because nowadays we copy it
|
|
||||||
during initialization. */
|
|
||||||
XtFree (mw->menu.contents);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Don't free mw->menu.contents because that comes from our creator.
|
/* Don't free mw->menu.contents because that comes from our creator.
|
||||||
The `*_stack' elements are just pointers into `contents' so leave
|
The `*_stack' elements are just pointers into `contents' so leave
|
||||||
that alone too. But free the stacks themselves. */
|
that alone too. But free the stacks themselves. */
|
||||||
if (mw->menu.old_stack) XtFree ((char *) mw->menu.old_stack);
|
if (mw->menu.old_stack) XtFree ((char *) mw->menu.old_stack);
|
||||||
if (mw->menu.new_stack) XtFree ((char *) mw->menu.new_stack);
|
if (mw->menu.new_stack) XtFree ((char *) mw->menu.new_stack);
|
||||||
|
|
||||||
/* Remember, you can't free anything that came from the resource
|
/* Original comment was:
|
||||||
|
|
||||||
|
Remember, you can't free anything that came from the resource
|
||||||
database. This includes:
|
database. This includes:
|
||||||
mw->menu.cursor
|
mw->menu.cursor
|
||||||
mw->menu.top_shadow_pixmap
|
mw->menu.top_shadow_pixmap
|
||||||
|
|
@ -2095,7 +2075,11 @@ XlwMenuDestroy (Widget w)
|
||||||
Also the color cells of top_shadow_color, bottom_shadow_color,
|
Also the color cells of top_shadow_color, bottom_shadow_color,
|
||||||
foreground, and button_foreground will never be freed until this
|
foreground, and button_foreground will never be freed until this
|
||||||
client exits. Nice, eh?
|
client exits. Nice, eh?
|
||||||
*/
|
|
||||||
|
But now I can free font without any visible glitches. */
|
||||||
|
|
||||||
|
if (mw->menu.font)
|
||||||
|
XFreeFont (XtDisplay (mw), mw->menu.font);
|
||||||
|
|
||||||
#ifdef HAVE_XFT
|
#ifdef HAVE_XFT
|
||||||
if (mw->menu.windows [0].xft_draw)
|
if (mw->menu.windows [0].xft_draw)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue