I have made an important discovery here. I've been using "release" mode when compiling, and had the following results: On Windows 11 enterprise (release): When using "translations_ignore", it correctly just prints "Ignoring" every time I cut/copy/paste. When using "translations_copypaste", the program crashes. On Windows 7 professional (release): When using "translations_ignore", it correctly just prints "Ignoring" every time I cut/copy/paste. When using "translations_copypaste", it correctly cuts/copies/pastes. I have now compiled and run the program in "debug" mode and have noticed an important difference. Instead of crashing on Windows 11 when trying to copy/paste, the program prints an error message and actually exits. The error message is: "Error: Error - registered format name must be nonnull" Does anyone know where this error message is coming from? I am starting to suspect that Windows clipboard integration routines have changed since Windows 7 and are not being used correctly internally. I see there are some functions (which I presume are used internally) that sound a lot like this error message. "RegisterClipboardFormat()" and "GetClipboardFormatName()", for instance. Hopefully this new information can help the experts help me determine why my program is working on Windows 7 and crashing on Windows 11. thanks! From: Stone, Timothy M Sent: Tuesday, November 7, 2023 12:21 PM To: cygwin@cygwin.com Subject: RE: [EXT] Re: XWin copy/paste succeeds on Windows 7, crashes on Windows 11 Enterprise. I have created an entire program to test this. It's only 40 lines. The program pops up a type in window...then you can type something in it and test the copy/paste. On Windows 11 enterprise: When using "translations_ignore", it correctly just prints "Ignoring" every time I cut/copy/paste. When using "translations_copypaste", the program crashes. On Windows 7 professional: When using "translations_ignore", it correctly just prints "Ignoring" every time I cut/copy/paste. When using "translations_copypaste", it correctly cuts/copies/pastes. Of course, you'll need to link with X/Motif libraries, and possibly change the one line to point at your XKeysymDB, but this 40 line program shows the whole problem: #include #include #include #include void ignore_cut_paste(Widget widget, XEvent *event, String *args, int *num_args) { printf("Ignoring\n"); } int main(int argc, char **argv) { Widget W,thewin,rowcol,textarea; XtAppContext app_context; XtActionsRec actions2; _putenv("display=127.0.0.1:0.0"); _putenv("xkeysymdb=.\\XKeysymDB"); W = XtAppInitialize(&app_context, (String)"Test",NULL,(Cardinal)0,&argc,argv,NULL,NULL,(Cardinal)0); actions2.string = "ignore_cut_paste"; actions2.proc = (XtActionProc)ignore_cut_paste; XtAppAddActions (app_context, &actions2, 1); String translations_copypaste = "#override\n Ctrlv: paste-clipboard()\n Ctrlc: copy-clipboard()\n Ctrlx: cut-clipboard()"; String translations_ignore = "#override\n Ctrlv: ignore_cut_paste()\n Ctrlc: ignore_cut_paste()\n Ctrlx: ignore_cut_paste()"; thewin = XtCreatePopupShell("Test", topLevelShellWidgetClass,W,NULL,0); rowcol = XtVaCreateWidget ("rowcol",xmRowColumnWidgetClass, thewin, NULL); textarea = XtVaCreateManagedWidget ("test_area", xmTextFieldWidgetClass, rowcol, XmNmaxLength, 80, XmNtranslations, XtParseTranslationTable ( translations_copypaste ) , NULL); XtManageChild(textarea); XtManageChild (rowcol); XtPopup(thewin,XtGrabNone); XtAppMainLoop(app_context); }