diff options
Diffstat (limited to 'src/screen.c')
-rw-r--r-- | src/screen.c | 13 |
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); |