add olaf's neophyte theme, honor numlock and use kp numerics
[goodguy/history.git] / cinelerra-5.1 / guicast / bcwindowbase.C
index db085e863655fc86bc011af6c875b825a7d9d43a..c380792efce09c9ffd16e6c9933af95033620ffe 100644 (file)
@@ -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;