This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Quick fix for missing WM_KEYUP messages on window exits in multiwindowmode (part of RE: Multiwindows problem)


Colin,

I have applied Earle's version (moved the call to WM_KILLFOCUS) of your patch to my local tree. It does indeed fix the problem and it seems like the correct way to fix this.

The funny thing is that I had forgotten that I (or somebody else?) had rewritten winKeybdReleaseKeys to release *all* pressed keys rather than just modifier keys. I was looking at your patching thinking, "sure, that works for exits with Ctrl+D, but what about typing 'exit' and pressing Enter?" Silly me. :)

In any case, I will be attributing this fix to both yourself and Earle.

Thanks for contributing,

Harold

Colin Harrison wrote:
Hi,

I've got to stop working on this for a while.

The 'best' minimal quick fix I have for the missed WM_KEYUP events on exits
from xterms etc. in multiwindow is:-

diff -ubB  orig_winmultiwindowwindow.c winmultiwindowwindow.c
--- save_winmultiwindowwindow.c 2003-05-18 19:19:59.000000000 +0100
+++ winmultiwindowwindow.c      2003-05-21 14:47:37.000000000 +0100
@@ -984,6 +984,12 @@
       SendMessage(hwndScreen, message, wParam, lParam);
       return 0;

+    case WM_SETFOCUS:
+      if (hwndScreen == NULL)
+        break;
+      winKeybdReleaseKeys ();
+      return 0;
+
     case WM_SYSKEYDOWN:
     case WM_SYSKEYUP:
     case WM_SYSDEADCHAR:


It's a hack, it works for me, but it does not get to gripes with the ultimate cause of the problem. I will put more time and effort into this ASAP, with a view to fixing problems, not adding to the work-arounds!


Colin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]