diff options
Diffstat (limited to 'x11/sddm/files/patch-src_common_VirtualTerminal.cpp')
| -rw-r--r-- | x11/sddm/files/patch-src_common_VirtualTerminal.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/x11/sddm/files/patch-src_common_VirtualTerminal.cpp b/x11/sddm/files/patch-src_common_VirtualTerminal.cpp new file mode 100644 index 000000000000..89717f5bd0b9 --- /dev/null +++ b/x11/sddm/files/patch-src_common_VirtualTerminal.cpp @@ -0,0 +1,30 @@ +--- src/common/VirtualTerminal.cpp.orig 2025-01-31 09:57:01 UTC ++++ src/common/VirtualTerminal.cpp +@@ -29,6 +29,7 @@ + #include <signal.h> + #ifdef __FreeBSD__ + #include <sys/consio.h> ++#include <termios.h> + #else + #include <linux/vt.h> + #include <linux/kd.h> +@@ -217,6 +218,19 @@ out: + // set graphics mode to prevent flickering + if (ioctl(fd, KDSETMODE, KD_GRAPHICS) < 0) + qWarning("Failed to set graphics mode for VT %d: %s", vt, strerror(errno)); ++ ++#ifdef __FreeBSD__ ++ struct termios tios; ++ ++ if (tcgetattr(fd, &tios) != 0) { ++ qFatal("Failed to get term attrs for VT %d: %s", vt, strerror(errno)); ++ } else { ++ cfmakeraw(&tios); ++ if (tcsetattr(fd, TCSAFLUSH, &tios) != 0) { ++ qWarning("Failed to set term attrs for VT %d: %s", vt, strerror(errno)); ++ } ++ } ++#endif + + // it's possible that the current VT was left in a broken + // combination of states (KD_GRAPHICS with VT_AUTO) that we |
