From 6a970ec4e909a257cb762db70ebb210c7593650a Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Sun, 28 Apr 2019 12:47:49 -0600 Subject: [PATCH] apps/graphics/twm4nx: Suppress input thread if using the VNC server. We don't need to catch input fromo keyboard and mouse devices in that case; those inputs will be injected into NX directly by the VNC server. Includes a couple of fixes from initial bringup attempts. --- graphics/twm4nx/README.txt | 10 ++++------ graphics/twm4nx/Twm4NX-Threading.pdf | Bin 33844 -> 34386 bytes graphics/twm4nx/src/ctwm4nx.cxx | 19 ++++++++++++++++--- include/graphics/twm4nx/ctwm4nx.hxx | 4 +++- include/graphics/twm4nx/twm4nx_config.hxx | 19 +++++++------------ 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/graphics/twm4nx/README.txt b/graphics/twm4nx/README.txt index 8e6cf98e6..d04e464e9 100644 --- a/graphics/twm4nx/README.txt +++ b/graphics/twm4nx/README.txt @@ -29,7 +29,7 @@ within this directory. STATUS ====== - 2019-04-27: This port was brutal. Much TWM logic was removed because it + 2019-04-28: This port was brutal. Much TWM logic was removed because it depended on X11 features (or just because I could not understand how to use it). The replacement logic is only mostly in place but more needs to be done to have a complete system (hence, it is marked @@ -38,11 +38,9 @@ STATUS 1. Update some logic that is only fragmentary for things like resizing. Resizing events should be be generated when user pulls to right, left, top, bottom, etc. None of that is implemented. - 2. Revisit Icons. They are windows now, but need to be compound widgets - lying on the background (compound: CImage + CLabel) - 3. Left click on background should bring up a user provided main main menu. + 2. Left click on background should bring up a user provided main menu. Right click should bring up a window list (like the icon manager???) - 4. For TWM-like behavior, a window frame and toolbar should be highlighted + 3. For TWM-like behavior, a window frame and toolbar should be highlighted when the window has focus. - 5. A right click on the toolbar should bring up a window-specific menu. + 4. A right click on the toolbar should bring up a window-specific menu. diff --git a/graphics/twm4nx/Twm4NX-Threading.pdf b/graphics/twm4nx/Twm4NX-Threading.pdf index 9e857384cb5d1c6042b570669803cde3ec33ee91..c07eec4f1eb539f107d0e75c642f92bf68a3a6e2 100644 GIT binary patch delta 15725 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