summaryrefslogtreecommitdiff
path: root/qt/qt-2.3.7.patch/qte237-0-vtswitch.patch
Side-by-side diff
Diffstat (limited to 'qt/qt-2.3.7.patch/qte237-0-vtswitch.patch') (more/less context) (ignore whitespace changes)
-rw-r--r--qt/qt-2.3.7.patch/qte237-0-vtswitch.patch205
1 files changed, 0 insertions, 205 deletions
diff --git a/qt/qt-2.3.7.patch/qte237-0-vtswitch.patch b/qt/qt-2.3.7.patch/qte237-0-vtswitch.patch
deleted file mode 100644
index be2745c..0000000
--- a/qt/qt-2.3.7.patch/qte237-0-vtswitch.patch
+++ b/dev/null
@@ -1,205 +0,0 @@
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
---- qt-2.3.7/src/kernel/qapplication_qws.cpp~vt-switch.patch
-+++ qt-2.3.7/src/kernel/qapplication_qws.cpp
-@@ -123,6 +123,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
-@@ -163,6 +169,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;
-@@ -1628,6 +1636,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];
-@@ -1652,6 +1669,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);
- }
-@@ -1702,7 +1766,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;
-@@ -2584,7 +2677,7 @@
- if ( !widget ) { // don't know this window
- if ( !QWidget::mouseGrabber()
- #ifndef QT_NO_QWS_MANAGER
-- && !QWSManager::grabbedMouse()
-+ && !QWSManager::grabbedMouse()
- #endif
- ) {
- qt_last_cursor = 0xffffffff; // cursor can be changed by another application
-@@ -3394,7 +3487,7 @@
- #ifndef QT_NO_QWS_IM
- if ( mouse.state&button && w != QInputContext::microFocusWidget() ) //button press
- QInputContext::reset( oldFocus );
--#endif
-+#endif
- QFocusEvent::setReason( QFocusEvent::Mouse);
- w->setFocus();
- QFocusEvent::resetReason();
-@@ -3540,7 +3633,7 @@
- QApplication::sendEvent( widget, &enter );
- (*mouseInWidget) = widget;
- #ifndef QT_NO_QWS_IM
-- if ( e.type() == QEvent::MouseButtonPress &&
-+ if ( e.type() == QEvent::MouseButtonPress &&
- !widget->testWFlags( Qt::WStyle_Tool ) &&
- !widget->topLevelWidget()->testWFlags( Qt::WStyle_Tool ) )
- QInputContext::reset( oldFocus );
---- qt-2.3.7/src/kernel/qkeyboard_qws.cpp~vt-switch.patch
-+++ qt-2.3.7/src/kernel/qkeyboard_qws.cpp
-@@ -1068,6 +1068,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
---- qt-2.3.7/src/kernel/qgfxlinuxfb_qws.cpp~vt-switch.patch
-+++ qt-2.3.7/src/kernel/qgfxlinuxfb_qws.cpp
-@@ -251,9 +251,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;