X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fbcwindowbase.C;h=c380792efce09c9ffd16e6c9933af95033620ffe;hb=c5feedfabe3ee87dfae9a254c9b67c566ec15d2e;hp=db085e863655fc86bc011af6c875b825a7d9d43a;hpb=b9f98da8f1cd8b7b31ead02fa41f299b56cac3da;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/guicast/bcwindowbase.C b/cinelerra-5.1/guicast/bcwindowbase.C index db085e86..c380792e 100644 --- a/cinelerra-5.1/guicast/bcwindowbase.C +++ b/cinelerra-5.1/guicast/bcwindowbase.C @@ -182,10 +182,12 @@ BC_WindowBase::~BC_WindowBase() 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, @@ -1231,25 +1233,25 @@ locking_message = event->xclient.message_type; case XK_KP_Subtract: key_pressed = KPMINUS; break; case XK_KP_Multiply: key_pressed = KPSTAR; break; case XK_KP_Divide: key_pressed = KPSLASH; break; - case XK_KP_1: + case XK_KP_1: key_pressed = '1'; break; case XK_KP_End: key_pressed = KP1; break; - case XK_KP_2: + case XK_KP_2: key_pressed = '2'; break; case XK_KP_Down: key_pressed = KP2; break; - case XK_KP_3: + case XK_KP_3: key_pressed = '3'; break; case XK_KP_Page_Down: key_pressed = KP3; break; - case XK_KP_4: + case XK_KP_4: key_pressed = '4'; break; case XK_KP_Left: key_pressed = KP4; break; - case XK_KP_5: + case XK_KP_5: key_pressed = '5'; break; case XK_KP_Begin: key_pressed = KP5; break; - case XK_KP_6: + case XK_KP_6: key_pressed = '6'; break; case XK_KP_Right: key_pressed = KP6; break; - case XK_KP_7: + case XK_KP_7: key_pressed = '7'; break; case XK_KP_Home: key_pressed = KP7; break; - case XK_KP_8: + case XK_KP_8: key_pressed = '8'; break; case XK_KP_Up: key_pressed = KP8; break; - case XK_KP_9: + case XK_KP_9: key_pressed = '9'; break; case XK_KP_Page_Up: key_pressed = KP9; break; - case XK_KP_0: + case XK_KP_0: key_pressed = '0'; break; case XK_KP_Insert: key_pressed = KPINS; break; case XK_KP_Decimal: case XK_KP_Delete: key_pressed = KPDEL; break;