[BRLTTY] changing screen windows

Dave Mielke Dave at mielke.cc
Mon Jul 30 15:38:05 EDT 2018


[quoted lines by Dave Mielke on 2018/07/30 at 15:06 -0400]

>The help for the Braille Edge includes:
>
>* switch to specific virtual terminal: Space+F5, RoutingKey
>* switch to the previous virtual terminal: Space+Dots12367
>* switch to the next virtual terminal: Space+Dots12368
>
>The problem seems to be that the Screen screen driver doesn't currently
>implement the needed method. This should be easy to fix.

Could you please test the attached patch (screen-switch-1.patch) to verify that
these three bindings work?

-- 
I believe the Bible to be the very Word of God: http://Mielke.cc/bible/
Dave Mielke            | 2213 Fox Crescent | WebHome: http://Mielke.cc/
EMail: Dave at Mielke.cc  | Ottawa, Ontario   | Twitter: @Dave_Mielke
Phone: +1 613 726 0014 | Canada  K2A 1H7   |
-------------- next part --------------
diff --git a/Drivers/Screen/Screen/screen.c b/Drivers/Screen/Screen/screen.c
index 3f926949f..d1bbf2f20 100644
--- a/Drivers/Screen/Screen/screen.c
+++ b/Drivers/Screen/Screen/screen.c
@@ -283,6 +283,13 @@ insertKey_ScreenScreen (ScreenKey key) {
   return doScreenCommand("stuff", sequence, NULL);
 }
 
+static int
+switchVirtualTerminal_ScreenScreen (int vt) {
+  char number[0X10];
+  snprintf(number, sizeof(number), "%d", vt);
+  return doScreenCommand("select", number, NULL);
+}
+
 static void
 destruct_ScreenScreen (void) {
 #ifdef HAVE_SHMGET
@@ -309,6 +316,7 @@ scr_initialize (MainScreen *main) {
   main->base.describe = describe_ScreenScreen;
   main->base.readCharacters = readCharacters_ScreenScreen;
   main->base.insertKey = insertKey_ScreenScreen;
+  main->base.switchVirtualTerminal = switchVirtualTerminal_ScreenScreen;
   main->construct = construct_ScreenScreen;
   main->destruct = destruct_ScreenScreen;
   main->userVirtualTerminal = userVirtualTerminal_ScreenScreen;


More information about the BRLTTY mailing list