summaryrefslogtreecommitdiff
path: root/src/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/screen.c')
-rw-r--r--src/screen.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/screen.c b/src/screen.c
index 75a7bb3c..30b79aad 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -563,7 +563,7 @@ meta_screen_new (MetaDisplay *display,
{
gc_values.font = font_info->fid;
value_mask |= GCFont;
- XFreeFontInfo (NULL, font_info, 0);
+ XFreeFontInfo (NULL, font_info, 1);
}
else
meta_warning ("xserver doesn't have 'fixed' font.\n");
@@ -671,6 +671,7 @@ void
meta_screen_free (MetaScreen *screen)
{
MetaDisplay *display;
+ XGCValues gc_values = { 0 };
display = screen->display;
@@ -721,6 +722,16 @@ meta_screen_free (MetaScreen *screen)
if (screen->work_area_idle != 0)
g_source_remove (screen->work_area_idle);
+
+ if (XGetGCValues (screen->display->xdisplay,
+ screen->root_xor_gc,
+ GCFont,
+ &gc_values))
+ {
+ XUnloadFont (screen->display->xdisplay,
+ gc_values.font);
+ }
+
XFreeGC (screen->display->xdisplay,
screen->root_xor_gc);