diff --git a/cross-compiling-TDE-for-the-RPi3.html b/cross-compiling-TDE-for-the-RPi3.html
index 539fa95..217d5f8 100755
--- a/cross-compiling-TDE-for-the-RPi3.html
+++ b/cross-compiling-TDE-for-the-RPi3.html
@@ -133,7 +133,7 @@ Builds have been done for the RPi3 running systems based on Slackware-arm-curren
The packages listed on this page have been built on an x86_64 machine and installed and tested OK on an RPi3.
-[Edit: builds for R14.0.9 have been verified for 64-bit arm only].
+[Edit: builds for R14.0.10 have been verified for 64-bit arm only].
For any problems, questions, etc please open an issue at tde-slackbuilds.
@@ -337,10 +337,7 @@ contrib/download_prerequisites --no-verify
echo $'--- libsanitizer/asan/asan_linux.cc
+++ libsanitizer/asan/asan_linux.cc
@@ -33,0 +34 @@
-+#include <linux/limits.h>' | while read line
-do
-patch -p0
-done
++#include <linux/limits.h>' | patch -p0
## Build Binutils
## The cross compiler toolchain is going to be built with defaults for the RPi3 using machine [arch/tune/fpu/float] options
@@ -593,7 +590,7 @@ To keep track of where stuff is installed use the package management system - de
installpkg /tmp/xgcc910-glibc2.29-${K_VER}_RPi_headers-en_GB-$ARM.txz
## Set the variables for the TDE packages builds
-export TDE_VERSION=14.0.9
+
export TDE_VERSION=14.0.10
export INSTALL_TDE=/opt/tde
export SYS_CNF_DIR=/etc/tde
[[ $ARM == aarch64 ]] && export LIBDIRSUFFIX=64
@@ -637,6 +634,9 @@ ln -sf $TDE_SRC/* $SYSROOT/src/
## only need qemu-$ARM from the qemu build/installation - just place it somewhere the kernel can find it …
mkdir -p $SYSROOT/x86
+
@@ -749,6 +749,8 @@ installpkg l/libwebp-*.txz
installpkg l/zstd-*.txz
## + for 14.0.9+ builds
installpkg d/intltool-*.txz
+## + for 14.0.10+ builds
+installpkg ap/lm_sensors-*.txz
## remove .la files and any links to them - they can cause a problem because the paths are hard-coded to /usr/... and so pick up the build machine libs rather than the libs in SYSROOT
find $SYSROOT/usr/lib$LIBDIRSUFFIX -type l -name \*.la -exec rename .la .la-bak {} \;
@@ -982,10 +984,7 @@ mv ../linux-g++ mkspecs/
+QMAKE_LINK_SHLIB\t= $(COMPILER_CXX)
@@ -58 +58 @@
-QMAKE_RPATH\t\t= -Wl,-rpath,
-+QMAKE_RPATH =' | while read line
-do
-patch -p0
-done
++QMAKE_RPATH =' | patch -p0
## Remove any previously installed files if they are for an older version build
+rm $SYSROOT/x86/*
+
cp /tmp/qemu-temp/usr/local/bin/qemu-$ARM $SYSROOT/x86
rm -rf /tmp/qemu*
chown_fn
@@ -1011,10 +1010,7 @@ echo $'--- mkspecs/linux-arm-g++/qmake.conf
-QMAKE_INCDIR_OPENGL\t= /usr/include/GL
-QMAKE_LIBDIR_OPENGL\t= /usr/lib$(LIBDIRSUFFIX)
+QMAKE_INCDIR_OPENGL\t= $(SYSROOT)/usr/include/GL
-+QMAKE_LIBDIR_OPENGL\t= $(SYSROOT)/usr/lib$(LIBDIRSUFFIX)' | while read line
-do
-patch -p0
-done
++QMAKE_LIBDIR_OPENGL\t= $(SYSROOT)/usr/lib$(LIBDIRSUFFIX)' | patch -p0
## Set -platform to arm so that tqmoc is built as an arm binary for installation on RPi3.
## Set -rpath so that libtqt-mt.so.3 can be found during the build
@@ -1571,7 +1567,7 @@ tdelfeditor/tdelfeditor.cpp \
tdeio/tests/kurifiltertest.cpp \
tdeio/tests/kmimetypetest.sh.cmake \
tdeio/tests/jobtest.cpp \
-tdeio/kssl/kopenssl.cc \
+tdeio/kssl/kopenssl.cpp \
tdeinit/tdestartupconfig.cpp \
tdecore/tdeconfig_compiler/tests/test9main.cpp
do
@@ -1630,14 +1626,25 @@ EOF
cd_builddir_fn
+## Set some paths to required binaries
+## /bin/sh: dcopidl2cpp: command not found
+## /bin/sh: tdeconfig_compiler: command not found
+## /bin/sh: meinproc: command not found
+sed -i "s|dcopidl2cpp|$PWD/dcop/dcopidl2cpp/dcopidl2cpp|" ../CMakeLists.txt
+sed -i "s|tdeconfig_compiler|$PWD/tdecore/tdeconfig_compiler/tdeconfig_compiler|" ../CMakeLists.txt
+## Take this opportunity to use the native meinproc
+sed -i "s|meinproc|$INSTALL_TDE/bin/meinproc-x86|" ../CMakeLists.txt
+
## Add exitcodes for try_run tests which produce a cmake error when x-compiling, unless CMAKE_CROSSCOMPILING_EMULATOR is set
## Set exitcodes to values that a native build would give
## Additionally, command line '-D HAVE_xxxxx_EXITCODE:STRING=x' option fails with cmake 3.12, so these builds use cmake 3.10
+## Use native binary intltool-merge for ARCH independent desktop files
## rm -rf $TMP/tmp-$PRGNAM/$PRGNAM*/build-$PRGNAM/*
cmake-toolchain_fn
cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-D HAVE_GOOD_GETADDRINFO_EXITCODE:STRING=0 \
-D HAVE_OPENPTY_EXITCODE:STRING=0 \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
@@ -1666,6 +1673,7 @@ cmake \
-DWITH_GCC_VISIBILITY="OFF" \
-DWITH_HAL="OFF" \
-DWITH_HSPELL="OFF" \
+ -DWITH_IMAGETOPS_BINARY="OFF" \
-DWITH_INOTIFY="ON" \
-DWITH_ISPELL="OFF" \
-DWITH_JASPER="OFF" \
@@ -1702,12 +1710,6 @@ cmake \
sed -i "s|=/usr/include|=$SYSROOT/usr/include|" CMakeCache.txt
sed -i "s|=/usr/lib$LIBDIRSUFFIX|=$SYSROOT/usr/lib$LIBDIRSUFFIX|" CMakeCache.txt
-## Quick fix for:
-## /bin/sh: dcopidl2cpp: command not found
-## /bin/sh: tdeconfig_compiler: command not found
-## /bin/sh: meinproc: command not found
-PATH=$PATH:$PWD/dcop/dcopidl2cpp:$PWD/tdecore/tdeconfig_compiler:$PWD/kdoctools
-
make $NUMJOBS
make DESTDIR=$PKG install
@@ -1758,7 +1760,7 @@ untar_fn
## picking up the wrong limits.h - MAX_PATH not defined
sed -i 's|<limits.h>|&\n#include <linux/limits.h>|' kcontrol/krdb/krdb.cpp
-sed -i '20s|^|#include <linux/limits.h>|' kdesktop/lock/lockprocess.cc
+sed -i '20s|^|#include <linux/limits.h>|' kdesktop/lock/lockprocess.cpp
## make default tdm screen text clearer against dark background and align login button with clickable area
## edit color="#ffff74" and/or color="#ff0000" for your own choice
@@ -1790,10 +1792,7 @@ sed -i '20s|^|#include <linux/limits.h>|' kdesktop/lock/lockprocess.cc
-\t\t\t\t<pos x="435" y="323" anchor="s" />
+\t\t\t\t<normal color="#ff0000" font="Sans 11" />
+\t\t\t\t<pos x="435" y="260" anchor="s" />
-' | while read line
-do
-patch -p0
-done
+' | patch -p0
## enable konqueror filemanagement ViewMode to be set - TDE bug 1963
echo $'
@@ -1821,10 +1820,7 @@ done
+++ konqueror/listview/konq_treeview.desktop
@@ -87,0 +88 @@
+X-TDE-BrowserView-Built-Into=konqueror
-' | while read line
-do
-patch -p0
-done
+' | patch -p0
## Configuration files are in /etc/tde, and plugins in $INSTALL_TDE/lib$LIBDIRSUFFIX/tde
sed -i "s|trinity|$PLUGIN_INSTALL_DIR|g" tdm/config.def || true
@@ -1868,6 +1864,7 @@ cmake \
-D HTDIG_SEARCH_BINARY=$SYSROOT/var/www/cgi-bin/htsearch \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
@@ -1893,7 +1890,7 @@ cmake \
-DWITH_PCRE="ON" \
-DWITH_SAMBA="OFF" \
-DWITH_SASL="OFF" \
- -DWITH_SENSORS="OFF" \
+ -DWITH_SENSORS="ON" \
-DWITH_SHADOW="ON" \
-DWITH_SUDO_KONSOLE_SUPER_USER_COMMAND="ON" \
-DWITH_SUDO_TDESU_BACKEND="ON" \
@@ -1956,6 +1953,7 @@ cmake \
-DBUILD_TDESCREENSAVER="ON" \
-DBUILD_TDESU="ON" \
-DBUILD_TDM="ON" \
+ -DBUILD_TDM_SYSTEMD_UNIT_FILE="OFF" \
-DBUILD_TQT3INTEGRATION="ON" \
-DBUILD_TSAK="ON" \
-DBUILD_TWIN="ON" \
@@ -2309,6 +2307,7 @@ cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
@@ -2380,6 +2379,10 @@ mkdir $TMP/tmp-$PRGNAM
untar_fn
+## Set some paths to required binaries
+## /bin/sh: makecrc: command not found
+sed -i "s|COMMAND makecrc|COMMAND ./makecrc|" klaptopdaemon/CMakeLists.txt
+
chown_fn
cd_builddir_fn
@@ -2390,6 +2393,7 @@ cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
@@ -2433,10 +2437,6 @@ cmake \
-Wno-dev \
..
-## Quick fix for:
-## /bin/sh: makecrc: command not found
-PATH=$PATH:$PWD/klaptopdaemon
-
make $NUMJOBS
make DESTDIR=$PKG install
@@ -2490,6 +2490,7 @@ cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
@@ -2498,6 +2499,7 @@ cmake \
-DCMAKE_INSTALL_PREFIX=$INSTALL_TDE \
-DLIB_SUFFIX=$LIBDIRSUFFIX \
-DPLUGIN_INSTALL_DIR=$INSTALL_TDE/lib$LIBDIRSUFFIX/$PLUGIN_INSTALL_DIR \
+ -DWITH_ALL_INCLUDED_XSCREENSAVERS="OFF" \
-DWITH_ARTS="ON" \
-DWITH_XSCREENSAVER="OFF" \
-DWITH_LIBART="ON" \
@@ -3007,10 +3009,7 @@ untar_fn
+\t\t\t if (colptr + ls < sizeof(col))
@@ -1560,0 +1583 @@
+ free(line);
-' | while read line
-do
-patch -p0
-done
+' | patch -p0
ltoolupdate_fn
@@ -3081,6 +3080,7 @@ cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
@@ -3171,6 +3171,7 @@ cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
@@ -3247,6 +3248,7 @@ cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
@@ -3327,6 +3329,7 @@ cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \
-DCMAKE_C_COMPILER=$COMPILER \
@@ -3455,885 +3458,181 @@ mkdir $TMP/tmp-$PRGNAM
untar_fn
-These patches are to build Kvkbd to
-• add a LSGT key, which is required for non-US keyboards
-• add a RWIN key
-• support evdev key mapping
-• support dead keys
-• fix num pad keycodes
-• show & and shift characters
-• add 'Lock on screen' feature
-• add i18n support
-• add ColorDialog for user to set keyboard and keys colours
-• add tooltips
-
Kvkbd can be run with a different style than the system style, for example kvkbd --style plastik:
+These patches provide Kvkbd build options
+• Use Win keys as modifier keys or for characters set with xmodmap.
+• Use alternative text on the num pad keys.
+• Show small icons on the buttons.
+• Show blank keys where AltGr doesn't produce a character.
+
Kvkbd can be run with a different style than the system style, for example kvkbd --style plastik for the basic Greek keyboard:
-## Add a key, LSGT, between 'left shift' and 'z' for non-US keyboards.
-## This duplicates '<' and '>' characters for US keyboards, but otherwise leaves the US keyboard fully functional.
-## The key which is normally lower left of Enter on non-US keyboards is above the Enter key.
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-#
-## add a key[code] to row 4
-@@ -46 +46 @@
--#define R4LEN 7
-+#define R4LEN 8
-#
-## add keycode 94 key between l-shift and z key
-## gb=\| fr=<> de=<>| [us=<>] etc
-@@ -72,3 +72,3 @@
--\t//TQString k4="zxcvbnm"; //,./";
--\t//TQString k4s="ZXCVBNM";
--\tunsigned int kc4[R4LEN] = {52,53,54,55,56,57,58};//59,60,61};
-+\t//TQString k4="<zxcvbnm"; //,./";
-+\t//TQString k4s=">ZXCVBNM";
-+\tunsigned int kc4[R4LEN] = {94,52,53,54,55,56,57,58};//59,60,61};
-#
-## reduce width of left shift key
-@@ -249 +249 @@
--\tlshft->resize ( 80,30 );
-+\tlshft->resize ( 45,30 );
-#
-## remove one key space after left shift
-## and fix spacing
-@@ -262 +262 @@
--\t\tv->move ( stx+35+16+35+ ( 35*a ),sty+ ( 4*35 ) );
-+\t\tv->move ( stx+lshft->width() +5+ ( 35*a ),sty+ ( 4*35 ) );
-' | patch -N -p0
-#
-## add RWin key
-echo $'--- src/MainWidget.h
-+++ src/MainWidget.h
-@@ -96,2 +96,3 @@
-\tVButton *win;
-+\tVButton *rwin;
-\tVButton *mnu;
---- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -353,2 +354,11 @@
-
-+\trwin = new VButton ( this,"" );
-+\trwin->resize ( 50,30 );
-+\trwin->move ( ralt->x() +ralt->width() +5, sty+ ( 5*35 ) );
-+\trwin->setText ( "RWin" );
-+\trwin->setKeyCode ( 134 );
-+\trwin->setToggleButton ( true );
-+\tmod_keys.append( rwin );
-+\trwin->res();
-+
-
-@@ -355,4 +364,4 @@
- \tmnu = new VButton ( this,"" );
--\tmnu->resize ( 45,30 );
--\tmnu->move ( 5+ralt->x() +ralt->width(), sty+ ( 5*35 ) );
-+\tmnu->resize ( 50,30 );
-+\tmnu->move ( rwin->x() +rwin->width() +5, sty+ ( 5*35 ) );
- \tmnu->setText ( "Menu" );
-' | patch -N -p0
-#
-## Fix keycodes for evdev mapping:
-## Right shift, LWin, AltGr, Menu, Right Ctrl, Num pad divide, Num pad Enter
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -296 +296 @@
--\trshft->setKeyCode ( 50 );
-+\trshft->setKeyCode ( 62 );
-@@ -321 +321 @@
--\twin->setKeyCode ( 115 );
-+\twin->setKeyCode ( 133 );
-@@ -349 +349 @@
--\tralt->setKeyCode ( 113 );
-+\tralt->setKeyCode ( 108 );
-@@ -368 +368 @@
--\tmnu->setKeyCode ( 117 );
-+\tmnu->setKeyCode ( 135 );
-@@ -379 +379 @@
--\trctrl->setKeyCode ( 37 );
-+\trctrl->setKeyCode ( 105 );
-@@ -468 +468 @@
--\tdiv->setKeyCode(112);
-+\tdiv->setKeyCode(106);
-@@ -485 +485 @@
--\tent->setKeyCode(36);
-+\tent->setKeyCode(104);
-' | patch -N -p0
-#
-## Cosmetic changes:
-## Set F4-F5 spacing as per F8-F9
-echo $'--- src/MainWidget.cpp
+## change num-pad keys text
+echo $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
-@@ -97 +97 @@
--\t\tf->move ( stx+esc->width() + ( 35*a ) +20,sty );
-+\t\tf->move ( stx+esc->width() +30 + ( 35*a ),sty );
-@@ -107 +107 @@
--\t\tf->move ( stx+esc->width() + ( 35*a ) +40+ ( 4*35 ),sty );
-+\t\tf->move ( stx+esc->width() +30 + ( 4*35 ) +14 + ( 35*a ),sty );
-@@ -118 +118 @@
--\t\tf->move ( stx+esc->width() + ( 35*a ) +45+ ( 8*35 ) +10,sty );
-+\t\tf->move ( stx+esc->width() +30 + ( 8*35 ) +28 + ( 35*a ),sty );
-#
-## resize keys for alignment on right side of keyboard
-@@ -139 +139 @@
--\tbksp->resize ( 46,30 );
-+\tbksp->resize ( 48,30 );
-@@ -149 +149 @@
--\ttab->resize ( 47,30 );
-+\ttab->resize ( 48,30 );
-## reduce size of Dock image
-@@ -938 +938 @@
--\tresize ( 96,47 );
-+\tresize ( 64,31 );
-' | patch -N -p0
-#
-## Revise positions of keys and reformat code to represent the calculations left-to-right
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -219,3 +219,3 @@
- \tsmcl->setKeyCode ( 47 );
--\tsmcl->move ( stx+ ( R3LEN *35 ) +caps->width() +5,sty+ ( 3*35 ) );
-+\tsmcl->move ( stx+caps->width() +5+ ( R3LEN *35 ) ,sty+ ( 3*35 ) );
- \t//smcl->setText ( ";" );
-@@ -228,3 +228,3 @@
- \tsngq->setKeyCode ( 48 );
--\tsngq->move ( stx+ ( ( R3LEN +1 ) *35 ) +caps->width() +5,sty+ ( 3*35 ) );
-+\tsngq->move ( stx+caps->width() +5+ ( ( R3LEN +1 ) *35 ) ,sty+ ( 3*35 ) );
- \t//sngq->setText ( "\'" );
-@@ -237,3 +237,3 @@
- \tenter->setKeyCode ( 36 );
--\tenter->move ( stx+ ( ( R3LEN +2 ) *35 ) +caps->width() +5,sty+ ( 3*35 ) );
-+\tenter->move ( stx+caps->width() +5+ ( ( R3LEN +2 ) *35 ) ,sty+ ( 3*35 ) );
- \tenter->resize ( 50,30 );
-@@ -269,3 +269,3 @@
- \tsm->setKeyCode ( 59 );
--\tsm->move ( stx+ ( R4LEN *35 ) +lshft->width() +5,sty+ ( 4*35 ) );
-+\tsm->move ( stx+lshft->width() +5+ ( R4LEN *35 ) ,sty+ ( 4*35 ) );
- \t//sm->setText ( "," );
-@@ -278,3 +278,3 @@
- \tgr->setKeyCode ( 60 );
--\tgr->move ( stx+ ( ( R4LEN +1 ) *35 ) +lshft->width() +5,sty+ ( 4*35 ) );
-+\tgr->move ( stx+lshft->width() +5+ ( ( R4LEN +1 ) *35 ) ,sty+ ( 4*35 ) );
- \t//gr->setText ( "." );
-@@ -287,3 +287,3 @@
- \tsl->setKeyCode ( 61 );
--\tsl->move ( stx+ ( ( R4LEN +2 ) *35 ) +lshft->width() +5,sty+ ( 4*35 ) );
-+\tsl->move ( stx+lshft->width() +5+ ( ( R4LEN +2 ) *35 ) ,sty+ ( 4*35 ) );
- \t//sl->setText ( "/" );
-@@ -296,3 +296,3 @@
- \trshft->setKeyCode ( 62 );
--\trshft->move ( stx+ ( ( R4LEN +3 ) *35 ) +lshft->width() +5,sty+ ( 4*35 ) );
-+\trshft->move ( stx+lshft->width() +5+ ( ( R4LEN +3 ) *35 ) ,sty+ ( 4*35 ) );
- \trshft->resize ( 68,30 );
-@@ -305,3 +305,3 @@
- \t
--
-+\t//ROW 5
- \tlctrl = new VButton ( this,"" );
-@@ -317,5 +317,5 @@
- \twin = new VButton ( this,"" );
--\twin->resize ( 45,30 );
--\twin->move ( 5+lctrl->x() +lctrl->width(), sty+ ( 5*35 ) );
--\twin->setText ( "Win" );
-+\twin->resize ( 50,30 );
-+\twin->move ( lctrl->x() +lctrl->width() +5, sty+ ( 5*35 ) );
-+\twin->setText ( "LWin" );
-\twin->setKeyCode ( 133 );
-@@ -328,3 +328,3 @@
- \tlalt->resize ( 45,30 );
--\tlalt->move ( 5+win->x() +win->width(), sty+ ( 5*35 ) );
-+\tlalt->move ( win->x() +win->width() +5, sty+ ( 5*35 ) );
- \tlalt->setText ( "Alt" );
-@@ -338,4 +338,4 @@
- \tspace->setKeyCode ( 65 );
--\tspace->resize ( 5*35+28,30 );
--\tspace->move ( 5+lalt->x() +lalt->width(),sty+ ( 5*35 ) );
-+\tspace->resize ( 133,30 );
-+\tspace->move ( lalt->x() +lalt->width() +5, sty+ ( 5*35 ) );
- \tconnect ( space, TQT_SIGNAL ( keyClick ( unsigned int ) ), this, TQT_SLOT ( keyPress ( unsigned int ) ) );
-@@ -345,4 +345,4 @@
- \tralt = new VButton ( this,"" );
--\tralt->resize ( 45,30 );
--\tralt->move ( 5+space->x() +space->width(), sty+ ( 5*35 ) );
-+\tralt->resize ( 50,30 );
-+\tralt->move ( space->x() +space->width() +5, sty+ ( 5*35 ) );
- \tralt->setText ( "AltGr" );
-@@ -376,3 +376,3 @@
- \trctrl->resize ( 45,30 );
--\trctrl->move ( 5+mnu->x() +mnu->width(), sty+ ( 5*35 ) );
-+\trctrl->move ( mnu->x() +mnu->width() +5, sty+ ( 5*35 ) );
- \trctrl->setText ( "Ctrl" );
-' | patch -N -p0
-#
-## Replace text on Num pad keys for a better fit
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -411 +411 @@
+@@ -408 +408 @@
-\tTQString txt[9] = { "Ho\\nme", TQString::fromUtf8("▲"), "Pg\\nUp",
-+\tTQString txt[9] = { TQString::fromUtf8("H\\u2190"), TQString::fromUtf8("▲"), TQString::fromUtf8("P\\u2191"),
-@@ -413 +413 @@
++\tTQString txt[9] = { TQString::fromUtf8("H\u2190"), TQString::fromUtf8("▲"), TQString::fromUtf8("P\u2191"),
+@@ -410 +410 @@
-\t\t"End", TQString::fromUtf8("▼"), "Pg\\nDn" };
-+\t\tTQString::fromUtf8("E\\u2192"), TQString::fromUtf8("▼"), TQString::fromUtf8("P\\u2193") };
-@@ -457 +457 @@
++\t\tTQString::fromUtf8("E\u2192"), TQString::fromUtf8("▼"), TQString::fromUtf8("P\u2193") };
+@@ -453 +453 @@
-\tnuml->setText("Num\\nLock");
-+\tnuml->setText(TQString::fromUtf8("\\u2116"));
-' | patch -N -p0
-#
-## dead_* characters don't display on keys, so add single click printable character equivalents
-## to display on keys - the printed character remains as dead_<whatever>
-## Only needed for levels 0 and 1 - higher levels don't show on keys
-## NoSymbol shows as an outline square [.notdef] on keys - replace with space=blank
-## Re: MainWidget.cpp "* therefore keysymtab[] must remain SORTED by keysym value."
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -1008,2 +1030,3 @@
- } keysymtab[] = {
-+ { 0x0000, 0x0020 }, /* NoSymbol -> <- space */
- { 0x01a1, 0x0104 }, /* Aogonek Ą LATIN CAPITAL LETTER A WITH OGONEK */
-@@ -1781,2 +1782,18 @@
- { 0x20ac, 0x20ac }, /* EuroSign € EURO SIGN */
-+ { 0xfe50, 0x0060 }, /* dead_grave ` */
-+ { 0xfe51, 0x00b4 }, /* dead_acute ´ */
-+ { 0xfe52, 0x02c6 }, /* dead_circumflex ˆ */
-+ { 0xfe53, 0x02dc }, /* dead_tilde ˜ small tilde */
-+ { 0xfe54, 0x00af }, /* dead_macron ¯ */
-+ { 0xfe55, 0x02d8 }, /* dead_breve ˘ */
-+ { 0xfe56, 0x02d9 }, /* dead_abovedot ˙ */
-+ { 0xfe57, 0x00a8 }, /* dead_diaeresis ¨ */
-+ { 0xfe58, 0x02da }, /* dead_abovering ° */
-+ { 0xfe59, 0x02dd }, /* dead_doubleacute ˝ */
-+ { 0xfe5a, 0x02c7 }, /* dead_caron ˇ */
-+ { 0xfe5b, 0x00b8 }, /* dead_cedilla ¸ */
-+ { 0xfe5c, 0x02db }, /* dead_ogonek ˛ */
-+ { 0xfe5d, 0x0269 }, /* dead_iota ɩ Latin small iota */
-+ { 0xfe64, 0x1fbf }, /* dead_abovecomma ᾽ Greek Psili */
-+ { 0xfe65, 0x1ffe }, /* dead_abovereversedcomma ῾ Greek Dasia */
- };
-' | patch -N -p0
-#
-## add a tooltip for the panel icon
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -1834,3 +1834,3 @@
- {
--
-+\tTQToolTip::add ( this, "Virtual keyboard" );
- }
-' | patch -N -p0
-#
-## Fix Num pad numbers where 0-9 aren't the non-shift characters on the keyboard
-## E.g. for fr, the num pad '1' [KP_1 keycode 87] appears as '&' [keycode 10] when Num Lock is on
-## And fix Del keycode so that KP_Separator prints correctly, eg for gr = comma
-## This is a quick-and-dirty fix because it effectively means that this routine is redundant.
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -416 +416 @@
--\tint nval[9] = {16,17,18,13,14,15,10,11,12};
-+\tint nval[9] = {79,80,81,83,84,85,87,88,89};
-@@ -436 +436 @@
--\tins->setKeyCode(19,90);
-+\tins->setKeyCode(90,90);
-@@ -448 +448 @@
--\tdel->setKeyCode(60,91);
-+\tdel->setKeyCode(91,91);
-' | patch -N -p0
-#
-## Set a default keyboard background colour
-## - changeable from configuration menu with a later patch
-## For the plastik and keramik styles which have a key boundary within the key 30x30 footprint,
-## setting the button/key background colour will bleed through outside that boundary
-## except for the configuration button and the num pad keys, which follow these two lines.
-## Moving these settings to the beginning of MainWidget::MainWidget enables all keys to be displayed correctly.
-#
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -79,2 +79,5 @@
-
-+\tsetPaletteBackgroundColor ( TQColor("#cdc0b0") );
-+\tsetFocusPolicy ( TQ_NoFocus );
-+
- // \tresize ( 550,235 );
-@@ -405,5 +408,2 @@
-
--\tsetPaletteBackgroundColor ( TQt::black );
--\tsetFocusPolicy ( TQ_NoFocus );
--
-
-' | patch -N -p0
-#
-## Use icons for quit and num pad show/hide buttons
-## these are the 16x16/actions icons used for the system selected icon set
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-#
-## num pad show button
-@@ -400 +400 @@
--\textent->setText(">>");
-+\textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
-@@ -698 +698 @@
--\t\textent->setText(">>");
-+\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
-#
-## num pad hide button
-@@ -702 +702 @@
--\t\textent->setText("<<");
-+\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-backward")).pixmap());
-#
-## quit button
---- src/MainWidget.cpp
++\tnuml->setText(TQString::fromUtf8("\u2116"));
+@@ -479 +479 @@
+-\tent->setText("En\\nter");
++\tent->setText("Ent");'|patch -p0
+
+## set small icons to better fit on buttons for keyboard used at default size
+echo $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
-@@ -392 +392 @@
--\tquit->setPaletteBackgroundColor ( TQt::red );
+@@ -380 +380 @@
+-\tquit->setPixmap(TQIconSet(SmallIcon("application-exit", TDEIcon::SizeMedium)).pixmap());
+\tquit->setPixmap(TQIconSet(SmallIcon("application-exit")).pixmap());
-' | patch -N -p0
-#
-## Display '&' where it is the lower key character on the key
-## E.g. fr be azerty keyboards
-echo $'--- src/MainWidget.cpp
+@@ -391 +391 @@
+-\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-backward", TDEIcon::SizeMedium)).pixmap());
++\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-backward")).pixmap());
+@@ -396 +396 @@
+-\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward", TDEIcon::SizeMedium)).pixmap());
++\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
+@@ -561 +561 @@
+-\t\tpopup_menu->setPixmap(TQIconSet(SmallIcon("configure", TDEIcon::SizeMedium)).pixmap());
++\t\tpopup_menu->setPixmap(TQIconSet(SmallIcon("configure")).pixmap());
+@@ -748 +748 @@
+-\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward", TDEIcon::SizeMedium)).pixmap());
++\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
+@@ -754 +754 @@
+-\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-backward", TDEIcon::SizeMedium)).pixmap());
++\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-backward")).pixmap());'|patch -p0
+
+## configuration menu
+echo $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
-@@ -895,5 +897,9 @@
- \tTQString btn_text(TQChar((uint)ret));
- \t
--\tv.setText(btn_text);
-+\t\tTQChar c((uint)ret);
-+\t\tif (c==\'&\')
-+\t\t\tv.setText("&&");
-+\t\telse
-+\t\t\tv.setText(btn_text);
-
- \tTQString btn_upper(btn_text.upper());
-' | patch -N -p0
-#
-## resize quit, num pad show/hide, configure buttons to see the icons better at reduced size of keyboard
-echo $'--- src/MainWidget.cpp
+@@ -515 +515 @@
+-\t\tm->insertItem ( i18n("Font ..."), this, TQT_SLOT ( chooseFont() ) );
++\t\tm->insertItem ( i18n("Font"), this, TQT_SLOT ( chooseFont() ) );
+@@ -520,0 +521 @@
++\t\tm->insertSeparator();
+@@ -522 +523 @@
+-\t\tm->insertItem ( i18n ("Keys color"), this, TQT_SLOT ( chooseKeysColor() ) );
++\t\tm->insertItem ( i18n ("Key color"), this, TQT_SLOT ( chooseKeysColor() ) );'|patch -p0
+
+## key spacing & sizing
+echo $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
-@@ -390,2 +390,2 @@
--\tquit->resize ( 15,30 );
--\tquit->move ( 525,15 );
-+\tquit->resize ( 20,30 );
+@@ -323 +323 @@
+-\tlalt->move ( lwin->x() +lwin->width() +6, sty+ ( 5*35 ) );
++\tlalt->move ( lwin->x() +lwin->width() +5, sty+ ( 5*35 ) );
+@@ -340 +340 @@
+-\tralt->resize ( 48,30 );
++\tralt->resize ( 50,30 );
+@@ -350 +350 @@
+-\trwin->resize ( 48,30 );
++\trwin->resize ( 50,30 );
+@@ -359 +359 @@
+-\tmnu->resize ( 49,30 );
++\tmnu->resize ( 50,30 );
+@@ -369 +369 @@
+-\trctrl->resize ( 49,30 );
++\trctrl->resize ( 45,30 );
+@@ -379 +379 @@
+-\tquit->move ( 524,15 );
+\tquit->move ( 526,15 );
-@@ -398,2 +398,2 @@
--\textent->resize( 15,65 );
--\textent->move(525, 85 );
-+\textent->resize ( 20,65 );
-+\textent->move(526, 85 );
-@@ -551,2 +551,2 @@
--\t\tpopup_menu->resize ( 15,30 );
--\t\tpopup_menu->move ( 525,15+35 );
-+\t\tpopup_menu->resize ( 20,30 );
+@@ -388 +388 @@
+-\textent->move (524, 85 );
++\textent->move (526, 85 );
+@@ -558 +558 @@
+-\t\tpopup_menu->move ( 524,15+35 );
+\t\tpopup_menu->move ( 526,15+35 );
-#
-## move numpad after resizing buttons
---- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -410 +410 @@
--\tint padx= 550;
-+\tint padx= 554;
-#
-## move and resize keyboard
---- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -593 +593 @@
--\tint d_width=550;
-+\tint d_width=553;
-@@ -639,2 +639,2 @@
--\t\tsdxs = width() - (width() * (150.0/700.0));
--\t\tVButton::pw=700.0;
-+\t\tsdxs = width() - (width() * (150.0/703.0));
-+\t\tVButton::pw=703.0;
-@@ -642 +642 @@
--\t\tsetMinimumSize(700/3,235/3);
-+\t\tsetMinimumSize(703/3,235/3);
-@@ -646,2 +646,2 @@
--\t\tsdxb = width() + (width() * (150.0/550.0));
--\t\tVButton::pw=550.0;
-+\t\tsdxb = width() + (width() * (150.0/552.0));
-+\t\tVButton::pw=552.0;
-@@ -649 +649 @@
--\t\tsetMinimumSize(550/3,235/3);
-+\t\tsetMinimumSize(552/3,235/3);
---- src/VButton.cpp
+@@ -959 +959 @@
+-\tresize ( 96,47 );
++\tresize ( 64,31 );'|patch -p0
+
+## Caps+AltGr[+Shift] displayed characters should be toggled from the non-Caps state
+echo $'--- src/VButton.cpp
+++ src/VButton.cpp
-@@ -5 +5 @@
--double VButton::pw=550.0;
-+double VButton::pw=552.0;
-' | patch -N -p0
-#
-## missing characters in keysymtab[] - for AC12 -> AD13 key on ua keyboard
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -1251,2 +1251,3 @@
- { 0x06ac, 0x045c }, /* Macedonia_kje ќ CYRILLIC SMALL LETTER KJE */
-+ { 0x06ad, 0x0491 }, /* Ukrainian_ghe_with_upturn ґ CYRILLIC SMALL LETTER GHE WITH UPTURN */
- { 0x06ae, 0x045e }, /* Byelorussian_shortu ў CYRILLIC SMALL LETTER SHORT U */
-@@ -1266,2 +1267,3 @@
- { 0x06bc, 0x040c }, /* Macedonia_KJE Ќ CYRILLIC CAPITAL LETTER KJE */
-+ { 0x06bd, 0x0490 }, /* Ukrainian_GHE_WITH_UPTURN Ґ CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
- { 0x06be, 0x040e }, /* Byelorussian_SHORTU Ў CYRILLIC CAPITAL LETTER SHORT U */
-' | patch -N -p0
-#
+@@ -94,2 +94,13 @@
+-\t\t// Caps does not seem to make any difference when AltGr is pressed
+-\t\tif (shift)
++\t\t// If Caps is on, displayed alpha characters should be toggled from the AltGr case
++\t\tif (caps)
++\t\t{
++\t\t\tif (shift)
++\t\t\t{
++\t\t\t\tTQPushButton::setText(altGrShiftText.lower());
++\t\t\t}
++\t\t\telse
++\t\t\t{
++\t\t\t\tTQPushButton::setText(altGrText.upper());
++\t\t\t}
++\t\t}
++\t\telse if (shift)'|patch -p0
+
+## blank character display where AltGr does not provide extra characters
+echo $'--- src/VButton.cpp
++++ src/VButton.cpp
+@@ -56,6 +56,6 @@
+-\tif (c == " ")
+-\t{
+-\t\t// use normal text in case altGr does not provide extra characters.
+-\t\t// This is required at least on US keyboards, where altGr works as Alt.
+-\t\tc = nc;
+-\t}
++//\tif (c == " ")
++//\t{
++//\t\t// use normal text in case altGr does not provide extra characters.
++//\t\t// This is required at least on US keyboards, where altGr works as Alt.
++//\t\tc = nc;
++//\t}
+@@ -74,6 +74,6 @@
+-\tif (c == " ")
+-\t{
+-\t\t// use shift text in case altGr does not provide extra characters.
+-\t\t// This is required at least on US keyboards, where altGr works as Alt.
+-\t\tc = sc;
+-\t}
++//\tif (c == " ")
++//\t{
++//\t\t// use shift text in case altGr does not provide extra characters.
++//\t\t// This is required at least on US keyboards, where altGr works as Alt.
++//\t\tc = sc;
++//\t}
+#
+## substitute the .notdef, VoidSymbol, with a space
+--- src/Xutils.cpp
++++ src/Xutils.cpp
+@@ -839,0 +840 @@
++ { 0x00ffffffL, 0x0020 }, /* VoidSymbol -> <- space */'|patch -p0
+
## generate keycode for Win keys with single click so that they can be used for xmodmap
-echo $'--- src/MainWidget.cpp
+echo $'--- src/MainWidget.cpp
+++ src/MainWidget.cpp
#
-## don\'t lock the LWin button
-@@ -325 +325 @@
--\twin->setToggleButton ( true );
-+\twin->setToggleButton ( false );
-## don\'t lock the RWin button
-@@ -362 +362 @@
+## donʹt lock the LWin button
+@@ -317 +317 @@
+-\tlwin->setToggleButton ( true );
++\tlwin->setToggleButton ( false );
+## generate keycode on click rather than wait for next key-click
+@@ -318 +318,2 @@
+-\tmod_keys.append ( lwin );
++\tconnect ( lwin, TQT_SIGNAL ( keyClick ( unsigned int ) ), this, TQT_SLOT ( keyPress ( unsigned int ) ) );
++\tother_keys.append( lwin );
+#
+## donʹt lock the RWin button
+@@ -354 +355 @@
-\trwin->setToggleButton ( true );
+\trwin->setToggleButton ( false );
-#
-## generate keycode on click rather than wait for next key-click for keycode
---- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-#
-## for LWin
-@@ -326 +326,2 @@
--\tmod_keys.append ( win );
-+\tconnect ( win, TQT_SIGNAL ( keyClick ( unsigned int ) ), this, TQT_SLOT ( keyPress ( unsigned int ) ) );
-+\tother_keys.append( win );
-#
-## for RWin
-@@ -363 +364,2 @@
--\tmod_keys.append( rwin );
+## generate keycode on click rather than wait for next key-click
+@@ -355 +356,2 @@
+-\tmod_keys.append ( rwin );
+\tconnect ( rwin, TQT_SIGNAL ( keyClick ( unsigned int ) ), this, TQT_SLOT ( keyPress ( unsigned int ) ) );
-+\tother_keys.append( rwin );
-' | patch -N -p0
-#
-## add 'Lock on screen' feature from v0.5
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -529,4 +529,8 @@
- \t\tm->setItemChecked(mnu_dock, show_dock);
- \t\t
-+\t\tmnu_lock = m->insertItem("Lock on screen", this, TQT_SLOT(toggleLock()));
-+\t\tbool is_locked = cfg->readBoolEntry("locked",false);
-+\t\tm->setItemChecked(mnu_lock,is_locked);
-+\t\t
- \t\t//m->insertItem("Configure", this, TQT_SLOT(config()));
- \t\tm->insertSeparator();
-@@ -742,2 +746,14 @@
- }
-+void MainWidget::toggleLock()
-+{
-+\tbool c = isLocked();
-+
-+\ttray->contextMenu()->setItemChecked ( mnu_lock, !c );
-+\tsetLocked(!c);
-+
-+\tTDEConfig *cfg = TDEApplication::kApplication()->config();
-+\tcfg->writeEntry ("locked", !c);
-+\tcfg->sync();
-+
-+}
- void MainWidget::showDock()
-#
-##
---- src/MainWidget.h
-+++ src/MainWidget.h
-@@ -69,2 +69,3 @@
- \tvoid saveState();
-+\tvoid toggleLock();
-
-@@ -131,2 +131,3 @@
- \tint mnu_autores;
-+\tint mnu_lock;
-
-#
-##
---- src/DragWidget.cpp
-+++ src/DragWidget.cpp
-@@ -6,3 +6,3 @@
- \tdrag=false;
--
-+\tlocked=false;
- }
-@@ -17,2 +17,3 @@
- \tgpress=e->globalPos();
-+\tif (locked)return;
- \tdrag=true;
-@@ -34,2 +35,12 @@
- }
-+
-+void DragWidget::setLocked(bool mode)
-+{
-+\tlocked=mode;
-+}
-+
-+const bool DragWidget::isLocked() const
-+{
-+\treturn locked;
-+}
-
-#
-##
---- src/DragWidget.h
-+++ src/DragWidget.h
-@@ -14,2 +14,5 @@
-
-+\tvoid setLocked(bool mode);
-+\tconst bool isLocked() const;
-+
- private:
-@@ -24,2 +27,3 @@
- \tTQPoint gpress;
-+\tbool locked;
-
-#
-##
---- src/resizabledragwidget.cpp
-+++ src/resizabledragwidget.cpp
-@@ -38,2 +38,3 @@
- {
-+\tif (locked)return;
- \t
-' | patch -N -p0
-#
-## Fix azerty keyboards shift keys showing caps by simplifying the algorithm:
-# * if Shift Lock is on, set text as shift character, else use lower character
-# * if Caps Lock is on, set text as l.upper(), which will be upper case for alpha characters, or lower level for non-alpha characters, else use lower character
-# * for lower level or shift characters, set ampersand as a special case
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -905,30 +905,22 @@
- \tKeyCode keycode=v.getKeyCode();
--
-+// first level character keysym
- \tKeySym keysym_l = XkbKeycodeToKeysym(display, keycode, 0, 0);
-+// second level, ie shift, character keysym
-+\tKeySym keysym_s = XkbKeycodeToKeysym(display, keycode, 0, 1);
-
--\tKeySym keysym_u = XkbKeycodeToKeysym(display, keycode, 0, 1);
--
--\tlong ret = keysym2ucs(keysym_l);
--
--\tTQString btn_text(TQChar((uint)ret));
-+\tlong retl = keysym2ucs(keysym_l);
- \t
--\t\tTQChar c((uint)ret);
--\t\tif (c==\'&\')
-+\t\tTQChar l((uint)retl);
-+\t\tif (l==\'&\')
- \t\t\tv.setText("&&");
- \t\telse
--\t\t\tv.setText(btn_text);
-+\t\t\tv.setText(l);
-
--\tTQString btn_upper(btn_text.upper());
-+\tlong rets = keysym2ucs(keysym_s);
-
--\tif (btn_upper==btn_text) {
--\t\tret = keysym2ucs(keysym_u);
--\t\tTQChar c((uint)ret);
--\t\tif (c==\'&\')
-+\t\tTQChar s((uint)rets);
-+\t\tif (s==\'&\')
- \t\t\tv.setShiftText("&&");
- \t\telse
--\t\t\tv.setShiftText(c);
--\t}
--\telse {
--\t\tv.setShiftText(btn_upper);
--\t}
-+\t\t\tv.setShiftText(s);
- }
-' | patch -N -p0
-#
-echo $'--- src/VButton.cpp
-+++ src/VButton.cpp
-@@ -22,16 +22,6 @@
- {
--\tif (press==true){\t
--\t\tTQString tu=l.upper();
--\t\tif (tu.compare(l)==0){
--\t\t\t//TQPushButton::setText(tu);
--\t\t\tTQPushButton::setText(u);
--\t\t}
--\t\telse{
--\t\t\tTQPushButton::setText(tu);
--\t\t}
--
--\t}
--\telse{
-+\tif (press==true)
-+\t\tTQPushButton::setText(s);
-+\telse
- \t\tTQPushButton::setText(l);
--\t}
- }
-@@ -39,14 +29,7 @@
- {
--\tif (press==true){\t
-+\tif (press==true) {
- \t\tTQString tu=l.upper();
--\t\tif (tu.compare(l)==0){
--\t\t\tTQPushButton::setText(tu);
--\t\t}
--\t\telse{
--\t\t\tTQPushButton::setText(u);
--\t\t}
--\t}
--\telse{
-+\t\tTQPushButton::setText(tu); }
-+\telse
- \t\tTQPushButton::setText(l);
--\t}
- }
-@@ -60,3 +43,3 @@
- {
--\tu=text;
-+\ts=text;
- }
-' | patch -N -p0
-#
-echo $'--- src/VButton.h
-+++ src/VButton.h
-@@ -31,3 +31,3 @@
- \tunsigned int keycode;
--\tTQString u;
-+\tTQString s;
- \tTQString l;
-' | patch -N -p0
-#
-echo $'--- src/numpadvbutton.cpp
-+++ src/numpadvbutton.cpp
-@@ -35,3 +35,3 @@
- \tif (press==true){
--\t\tTQPushButton::setText(u);
-+\t\tTQPushButton::setText(s);
- \t\tVButton::setKeyCode(numlock_code);
-' | patch -N -p0
-#
-## Set a default button background colour which otherwise defaults to system colour
-## Changeable from configuration menu
-echo $'--- src/VButton.cpp
-+++ src/VButton.cpp
-@@ -11,2 +11,3 @@
- \t//connect(this,TQT_SIGNAL(clicked()),this,TQT_SLOT(sendKey()));
-+\tsetPaletteBackgroundColor ( TQColor("#f0f0f0") );
- \tsetFocusPolicy(TQ_NoFocus);
-' | patch -N -p0
-#
-## Base the auto font size on main board size otherwise when the num pad is brought into view
-## the font size immediately increases in proportion, ie by 703/552.
-## and set a more realistic initial font size
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -690,3 +690,6 @@
- \t\t//double rs = (100.0/700.0)*width();
--\t\tdouble rp = (8.0/600.0)*width();
-+\tif (extent_visible) {
-+\t\trp = (11.0/600.0)*width() * (552.0/703.0); }
-+\telse {
-+\t\trp = (11.0/600.0)*width(); }
- \t\t//fnt.setStretch(rs);
-' | patch -N -p0
-#
-echo $'--- src/MainWidget.h
-+++ src/MainWidget.h
-@@ -130,2 +130,3 @@
- \tdouble sdxb;
-+\tdouble rp;
- \tint mnu_dock;
-' | patch -N -p0
-#
-## i18n
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -519 +519 @@
--\t\tm->insertItem ( "Font ...", this, TQT_SLOT ( chooseFont() ) );
-+\t\tm->insertItem ( i18n ("Font"), this, TQT_SLOT ( chooseFont() ) );
-@@ -521 +521 @@
--\t\tmnu_autores = m->insertItem( "Auto resize font",this, TQT_SLOT ( toggleFontAutoRes() ) );
-+\t\tmnu_autores = m->insertItem( i18n ("Auto resize font"),this, TQT_SLOT ( toggleFontAutoRes() ) );
-@@ -524 +524,0 @@
--\t\t
-@@ -526 +525 @@
--\t\tmnu_dock = m->insertItem ( "Dock widget", this, TQT_SLOT ( showDock() ) );
-+\t\tmnu_dock = m->insertItem ( i18n ("Dock widget"), this, TQT_SLOT ( showDock() ) );
-@@ -531 +530 @@
--\t\tmnu_lock = m->insertItem("Lock on screen", this, TQT_SLOT(toggleLock()));
-+\t\tmnu_lock = m->insertItem( i18n ("Lock on screen"), this, TQT_SLOT(toggleLock()));
-@@ -537 +536 @@
--\t\tm->insertItem ( "Help", h->menu() );
-+\t\tm->insertItem ( i18n ("Help"), h->menu() );
-@@ -1854 +1853 @@
--\tTQToolTip::add ( this, "Virtual keyboard" );
-+\tTQToolTip::add ( this, i18n ("Virtual keyboard") );
-' | patch -N -p0
-#
-## Add TQColorDialog
-## keyboard colour defaults to #cdc0b0
-## key/button colour defaults to #f0f0f0
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -39,4 +39,3 @@
- #include <tdeapplication.h>
--
--
-+#include <ntqcolordialog.h>
-
-## load any existing chosen colours for the keyboard, otherwise default to #cdc0b0
-@@ -79,3 +78,7 @@
-
--\tsetPaletteBackgroundColor ( TQColor("#cdc0b0") );
-+\tTDEConfig *cfg = TDEApplication::kApplication()->config();
-+// if "kbColor" entry doesn\'t exist - either because it hasn\'t been saved
-+// or kvkbdrc doesn\'t exist, default to "#cdc0b0"
-+\tTQColor bc = cfg->readEntry ("kbColor","#cdc0b0");
-+\tsetPaletteBackgroundColor ( TQColor(bc) );
- \tsetFocusPolicy ( TQ_NoFocus );
-## new configuration menu entries
-@@ -524,2 +527,8 @@
-
-+\t\tm->insertSeparator();
-+\t\tm->insertItem ( i18n ("Keyboard color"), this, TQT_SLOT ( Colorb() ) );
-+
-+\t\tm->insertItem ( i18n ("Key color (restart if changed)"), this, TQT_SLOT ( Colork() ) );
-+
-+\t\tm->insertSeparator();
- \t\tmnu_dock = m->insertItem ( i18n ("Dock widget"), this, TQT_SLOT ( showDock() ) );
-## open ColorDialog and save chosen colours
-@@ -573,3 +582,26 @@
-
--
-+void MainWidget::Colorb() // keyboard colour chosen through the configuration menu
-+{
-+\tTDEConfig *cfg = TDEApplication::kApplication()->config();
-+// if "kbColor" entry exists, start with that, otherwise start with the default "#cdc0b0"
-+\tTQColor bc = cfg->readEntry ("kbColor","#cdc0b0");
-+\tTQColor b = TQColorDialog::getColor( TQColor( bc ) );
-+// if the selection of the new colour is cancelled, b will be invalid
-+// otherwise the new value is written to kvkbdrc
-+// - this must be in the #rrggbb format
-+\tif ( b.isValid() ) {
-+\tcfg->writeEntry ("kbColor", b.name() );
-+\tcfg->sync();
-+\tsetPaletteBackgroundColor ( TQColor( b ) ); }
-+}
-+void MainWidget::Colork() // key/button colour chosen through the configuration menu
-+{
-+\tTDEConfig *cfg = TDEApplication::kApplication()->config();
-+\tTQColor kc = cfg->readEntry ("keyColor","#f0f0f0");
-+\tTQColor k = TQColorDialog::getColor( TQColor( kc ) );
-+\tif ( k.isValid() ) {
-+\tcfg->writeEntry ("keyColor", k.name() );
-+\tcfg->sync(); }
-+// can\'t set PaletteBackgroundColor because it\'s in VButton::VButton - needs restart to read configuration entry
-+}
- void MainWidget::finishInit()
-## set initially 150 from the RH edge of the screen to allow for the num pad
-## and set 50 from the bottom edge to allow for the panel
-@@ -599,3 +631,3 @@
- \tint d_height=235;
--\tTQRect dflt_geom(screen_geom.width()-d_width,screen_geom.height()-d_height,d_width,d_height);
-+\tTQRect dflt_geom(screen_geom.width()-d_width-150,screen_geom.height()-d_height-50,d_width,d_height);
-
---- src/MainWidget.h
-+++ src/MainWidget.h
-@@ -70,2 +70,4 @@
- \tvoid toggleLock();
-+\tvoid Colorb();
-+\tvoid Colork();
-
---- src/VButton.cpp
-+++ src/VButton.cpp
-@@ -3,2 +3,4 @@
- #include <tqfont.h>
-+#include <tdeconfig.h>
-+#include <tdeapplication.h>
-
-## load any existing chosen colours for the keys/buttons, otherwise default to #f0f0f0
-@@ -11,4 +13,10 @@
- \t//connect(this,TQT_SIGNAL(clicked()),this,TQT_SLOT(sendKey()));
--\tsetPaletteBackgroundColor ( TQColor("#f0f0f0") );
-+\tTDEConfig *cfg = TDEApplication::kApplication()->config();
-+// if "keyColor" entry doesn\'t exist - either because it hasn\'t been saved
-+// or kvkbdrc doesn\'t exist, default to "#f0f0f0"
-+\tTQColor kc = cfg->readEntry ("keyColor","#f0f0f0");
-+\tsetPaletteBackgroundColor ( TQColor(kc) );
-+
- \tsetFocusPolicy(TQ_NoFocus);
-+
- \tresize(30,30);
-' | patch -N -p0
-#
-<<'comment'
-The keyboard geometry is saved when either of the Quit options is selected.
-If the num pad is visible [extent_visible=true] when Kvkbd is Quit, then when it is run again, with the default being extent_visible=false, the keyboard will display without the num pad but at an x-axis size which includes the num pad dimension, ie elongated.
-To fix this, add the state of extent_visible to the configuration file and start with that when Kvkbd is re-started.
-comment
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -76,5 +76,6 @@
- \tint sty=15;
--\textent_visible=false;
-
- \tTDEConfig *cfg = TDEApplication::kApplication()->config();
-+// if the num pad was visible when Kvkbd was \'Quit\', the geometry includes it, so start with the num pad in the same state
-+\textent_visible = cfg->readBoolEntry("numpad_visible",false);
- // if "kbColor" entry doesn\'t exist - either because it hasn\'t been saved
-@@ -659,2 +660,3 @@
- \t\tcfg->writeEntry("geometry",geometry());
-+\t\tcfg->writeEntry("numpad_visible",extent_visible);
- \t\tcfg->sync();
-' | patch -N -p0
-#
-## add tooltips to buttons
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -398,2 +398,3 @@
- \tquit->setPixmap(TQIconSet(SmallIcon("application-exit")).pixmap());
-+\tTQToolTip::add( quit, i18n( "Hide keyboard" ) );
- \tquit->res();
-@@ -406,2 +407,3 @@
- \textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
-+\tTQToolTip::add( extent, i18n( "Show num pad" ) );
- \textent->res();
-@@ -571,3 +573,3 @@
- \t\tpopup_menu->setPixmap(TQIconSet(SmallIcon("configure")).pixmap());
--
-+\t\tTQToolTip::add( popup_menu, i18n( "Configure" ) );
- \t\tother_keys.append(popup_menu);
-@@ -989,3 +991,3 @@
-
--\tTQToolTip::add ( this, "Toggle keyboard visibility" );
-+\tTQToolTip::add ( this, i18n ("Toggle keyboard visibility") );
- }
-' | patch -N -p0
-#
-## more add tooltips to buttons
-## if the num pad was visible, the tooltip continued to show 'Show num pad'
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -742,2 +742,3 @@
- \t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
-+\t\tTQToolTip::add( extent, i18n( "Show num pad" ) );
- \t}
-@@ -747,2 +748,3 @@
- \t\tTQWidget::resize ( (int)sdxb, height() );
-+\t\tTQToolTip::add( extent, i18n( "Hide num pad" ) );
- \t}
-' | patch -N -p0
-#
-## yet more add tooltips to buttons
-## if Kvkbd was 'Quit' with the num pad visible, on restart the double arrow was indicating 'Show num pad'
-echo $'--- src/MainWidget.cpp
-+++ src/MainWidget.cpp
-@@ -406,4 +406,8 @@
- \textent->move(526, 85 );
--\textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
--\tTQToolTip::add( extent, i18n( "Show num pad" ) );
-+\tif (extent_visible) {
-+\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-backward")).pixmap());
-+\t\tTQToolTip::add( extent, i18n( "Hide num pad" ) ); }
-+\telse {
-+\t\textent->setPixmap(TQIconSet(SmallIcon("media-seek-forward")).pixmap());
-+\t\tTQToolTip::add( extent, i18n( "Show num pad" ) ); }
- \textent->res();
-' | patch -N -p0
++\tother_keys.append( rwin );'|patch -p0
+
+## another combining character to display
+echo $'--- src/Xutils.cpp
++++ src/Xutils.cpp
+@@ -871,0 +872 @@
++ { 0x01000358L, 0x02d9 }, /* combining dot above right ˙ dot above */'|patch -p0
chown_fn
@@ -4344,6 +3643,7 @@ cmake-toolchain_fn
cmake \
-D CMAKE_TOOLCHAIN_FILE=./cmake-toolchain.cmake \
-D MOC_EXECUTABLE=$SYSROOT/x86/tqmoc \
+ -D INTLTOOL_MERGE_EXECUTABLE=$(which intltool-merge) \
-D KDE3_MEINPROC_EXECUTABLE:INTERNAL=$INSTALL_TDE/bin/meinproc-x86 \
-DCMAKE_C_FLAGS="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS="$SLKCFLAGS" \