diff options
Diffstat (limited to 'packages/qte/qte-2.3.12/vt-switch.patch')
-rw-r--r-- | packages/qte/qte-2.3.12/vt-switch.patch | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/packages/qte/qte-2.3.12/vt-switch.patch b/packages/qte/qte-2.3.12/vt-switch.patch deleted file mode 100644 index 92b8e5436a..0000000000 --- a/packages/qte/qte-2.3.12/vt-switch.patch +++ /dev/null @@ -1,184 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - -Index: qt-2.3.10-snapshot-20060120/src/kernel/qapplication_qws.cpp -=================================================================== ---- qt-2.3.10-snapshot-20060120.orig/src/kernel/qapplication_qws.cpp 2006-01-20 20:44:13.910394088 +0100 -+++ qt-2.3.10-snapshot-20060120/src/kernel/qapplication_qws.cpp 2006-01-20 20:46:52.639263632 +0100 -@@ -125,6 +125,12 @@ - static int qt_thread_pipe[2]; - #endif - -+#if defined(_OS_LINUX_) -+#include <sys/ioctl.h> -+#include <linux/vt.h> -+#include <linux/kd.h> -+#endif -+ - const int qwsSharedRamSize = 32 * 1024; //Small amount to fit on small devices. - - // These are in qapplication.cpp in qt/main -@@ -165,6 +171,8 @@ - bool qws_accel = TRUE; // ### never set - const char *qws_display_spec = ":0"; - int qws_display_id = 0; -+int qws_terminal_id = 0; -+int qws_terminal_old = 0; - int qws_client_id = 0; - QWidget *qt_pressGrab = 0; - QWidget *qt_mouseGrb = 0; -@@ -1702,6 +1710,15 @@ - type = QApplication::GuiServer; - } else if ( arg == "-interlaced" ) { - qws_screen_is_interlaced = TRUE; -+ } else if ( arg == "-terminal" ) { -+ if ( ++i < argc ) -+ { -+ if ( ( qws_terminal_id = atoi( argv[i] ) ) < 1 ) -+ { -+ qWarning( "Ignoring Invalid Terminal Specification." ); -+ qws_terminal_id = 0; -+ } -+ } - } else if ( arg == "-display" ) { - if ( ++i < argc ) - qws_display_spec = argv[i]; -@@ -1727,6 +1744,53 @@ - if ( type == QApplication::GuiServer ) { - qt_appType = type; - qws_single_process = TRUE; -+ -+ /* Allocate a dedicated virtual terminal -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> -+ * Added a new command line option which only is relevant if the application is created as a GuiServer. -+ * The option is -terminal <num>, where <num> specifies the virtual terminal to be occupied by the server. -+ * As default in Linux, 0 means the current virtual terminal. -+ */ -+ #if defined(_OS_LINUX_) -+ if ( qws_terminal_id ) -+ { -+ qDebug( "qt_init() - terminal specification is '%d'.", qws_terminal_id ); -+ struct vt_stat console_stat; -+ int console_fd = ::open( QString().sprintf( "/dev/tty%d", qws_terminal_id ).latin1(), O_RDWR ); -+ if ( console_fd == -1) -+ { -+ qWarning( "qt_init() - can't open tty: %s", strerror( errno ) ); -+ exit( -1 ); -+ } -+ if ( ioctl( console_fd, VT_GETSTATE, &console_stat ) == -1 ) -+ { -+ qWarning( "qt_init() - can't ioctl(VT_GETSTATE): %s", strerror( errno ) ); -+ exit( -1 ); -+ } -+ qws_terminal_old = console_stat.v_active; -+ qDebug( "qt_init() - active vt is #%d, switching to #%d as requested...", qws_terminal_old, qws_terminal_id ); -+ -+ if ( ioctl( console_fd, VT_ACTIVATE, qws_terminal_id ) == -1 ) -+ { -+ qWarning( "qt_init() - can't ioctl(VT_ACTIVATE): %s", strerror( errno ) ); -+ exit( -1 ); -+ } -+ if ( ioctl( console_fd, VT_WAITACTIVE, qws_terminal_id ) == -1 ) -+ { -+ qWarning( "qt_init() - can't ioctl(VT_WAITACTIVE): %s", strerror( errno ) ); -+ exit( -1 ); -+ } -+ if ( ioctl( console_fd, KDSETMODE, KD_GRAPHICS ) == -1 ) -+ { -+ qWarning( "qt_init() - can't ioctl(KDSETMODE:KD_GRAPHICS): %s", strerror( errno ) ); -+ exit( -1 ); -+ } -+ ::close( console_fd ); -+ } -+ else -+ { -+ qDebug( "QWSApplication::qt_init() - current terminal specified." ); -+ } -+ #endif - QWSServer::startup(flags); - setenv("QWS_DISPLAY", qws_display_spec, 0); - } -@@ -1777,7 +1841,36 @@ - QFontManager::cleanup(); - - if ( qws_single_process ) { -- QWSServer::closedown(); -+ qDebug( "qt_cleanup() - shutting down QWSServer..." ); -+#ifndef QT_NO_QWS_KEYBOARD -+ if ( qwsServer ) -+ qwsServer->closeKeyboard(); -+#endif -+ QWSServer::closedown(); -+#if defined(_OS_LINUX_) -+ if ( qws_terminal_old > 0 ) -+ { -+ qDebug( "qt_cleanup() - switching back to virtual terminal #%d", qws_terminal_old ); -+ -+ int console_fd = ::open( "/dev/tty0", O_RDWR ); -+ if ( console_fd == -1) -+ { -+ qWarning( "qt_init() - can't open tty: %s", strerror( errno ) ); -+ } -+ else -+ { -+ if ( ioctl( console_fd, KDSETMODE, KD_TEXT ) == -1 ) -+ { -+ qWarning( "qt_init() - can't ioctl(KDSETMODE:KD_TEXT): %s", strerror( errno ) ); -+ } -+ if ( ioctl( console_fd, VT_ACTIVATE, qws_terminal_old ) == -1 ) -+ { -+ qWarning( "qt_init() - can't ioctl(VT_ACTIVATE): %s", strerror( errno ) ); -+ } -+ ::close( console_fd ); -+ } -+ } -+#endif - } - if ( qt_is_gui_used ) { - delete qt_fbdpy; -Index: qt-2.3.10-snapshot-20060120/src/kernel/qkeyboard_qws.cpp -=================================================================== ---- qt-2.3.10-snapshot-20060120.orig/src/kernel/qkeyboard_qws.cpp 2006-01-20 20:44:13.911393936 +0100 -+++ qt-2.3.10-snapshot-20060120/src/kernel/qkeyboard_qws.cpp 2006-01-20 20:46:52.640263480 +0100 -@@ -1247,6 +1247,24 @@ - { - if (kbdFD >= 0) - { -+ -+#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_) -+ struct vt_mode vtMode; -+ ioctl(kbdFD, VT_GETMODE, &vtMode); -+ -+ /* Mickey says: "Better give up control of VT switching. -+ * Hey, I really hate that OS-will-reacquire-resources on process-death -+ * kind of thinking! -+ */ -+ vtMode.mode = VT_AUTO; -+ vtMode.relsig = 0; -+ vtMode.acqsig = 0; -+ ioctl(kbdFD, VT_SETMODE, &vtMode); -+ -+ signal(VTSWITCHSIG, 0); -+ qDebug( "~QWSTtyKeyboardHandler() - released VT." ); -+#endif -+ - #if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_) - ioctl(kbdFD, KDSKBMODE, K_XLATE); - #endif -Index: qt-2.3.10-snapshot-20060120/src/kernel/qgfxlinuxfb_qws.cpp -=================================================================== ---- qt-2.3.10-snapshot-20060120.orig/src/kernel/qgfxlinuxfb_qws.cpp 2006-01-20 20:44:13.911393936 +0100 -+++ qt-2.3.10-snapshot-20060120/src/kernel/qgfxlinuxfb_qws.cpp 2006-01-20 20:46:52.641263328 +0100 -@@ -255,9 +255,9 @@ - - bool QLinuxFbScreen::initDevice() - { -- // No blankin' screen, no blinkin' cursor!, no cursor! -+ /* Setting up the VT parameters is done in qapplication_qws.cpp - const char termctl[]="\033[9;0]\033[?33l\033[?25l"; -- writeTerm(termctl,sizeof(termctl)); -+ writeTerm(termctl,sizeof(termctl)); */ - - // Grab current mode so we can reset it - fb_var_screeninfo vinfo; |