for( int i=sizeof(xfont)/sizeof(xfont[0]); --i>=0; )
XFreeFont(display, this->*xfont[i]);
-// past bug in X caused XRenderExtensionInfo to be damaged
-// if this is done here. left to be done in XCloseDisplay by Xlib.
-// works in more modern systems, and needed for leak testing.
-#if defined(HAVE_XFT) && defined(VALGRIND)
+#ifdef HAVE_XFT
+// prevents a bug when Xft closes with unrefd fonts
+ FcPattern *defaults = FcPatternCreate();
+ FcPatternAddInteger(defaults, "maxunreffonts", 0);
+ XftDefaultSet(display, defaults);
+
static void *BC_WindowBase::*xft_font[] = {
&BC_WindowBase::smallfont_xft,
&BC_WindowBase::mediumfont_xft,
done = 1;
} else
{ // We currently use X marshalling for xatom events, we can switch to something else later
- recieve_custom_xatoms((xatom_event *)ptr);
+ receive_custom_xatoms((xatom_event *)ptr);
}
break;
break;
case LeaveNotify:
+ if( event->xcrossing.mode != NotifyNormal ) break;
if( cursor_entered && event->xcrossing.window == win ) {
cursor_entered = 0;
}
break;
case EnterNotify:
+ if( event->xcrossing.mode != NotifyNormal ) break;
if( !cursor_entered && event->xcrossing.window == win ) {
if( !event->xcrossing.focus && get_resources()->grab_input_focus ) {
XSetInputFocus(display, win, RevertToParent, CurrentTime);
}
#endif
-int BC_WindowBase::recieve_custom_xatoms(xatom_event *event)
+int BC_WindowBase::receive_custom_xatoms(xatom_event *event)
{
return 0;
}