summaryrefslogtreecommitdiffstats
path: root/xorg
diff options
context:
space:
mode:
Diffstat (limited to 'xorg')
-rw-r--r--xorg/.gitignore1
-rw-r--r--xorg/X11R7.6/.gitignore3
-rwxr-xr-xxorg/X11R7.6/buildx.sh94
-rw-r--r--xorg/X11R7.6/rdp/Makefile24
-rw-r--r--xorg/X11R7.6/rdp/rdp.h10
-rw-r--r--xorg/X11R7.6/rdp/rdpComposite.c12
-rw-r--r--xorg/X11R7.6/rdp/rdpPolyFillRect.c8
-rw-r--r--xorg/X11R7.6/rdp/rdpdraw.c6
-rw-r--r--xorg/X11R7.6/rdp/rdpglyph.c4
-rw-r--r--xorg/X11R7.6/rdp/rdpinput.c44
-rw-r--r--xorg/X11R7.6/rdp/rdpkeyboardbase.c6
-rw-r--r--xorg/X11R7.6/rdp/rdpkeyboardevdev.c4
-rw-r--r--xorg/X11R7.6/rdp/rdpmain.c19
-rw-r--r--xorg/X11R7.6/rdp/rdpmisc.c4
-rw-r--r--xorg/X11R7.6/rdp/rdprandr.c176
-rw-r--r--xorg/X11R7.6/rdp/rdprandr.h3
-rw-r--r--xorg/X11R7.6/rdp/rdpup.c81
-rw-r--r--xorg/X11R7.6/rdp/rdpxv.c2
-rw-r--r--xorg/X11R7.6/x11_file_list.txt19
-rw-r--r--xorg/X11R7.6/xkeyboard-config-2.0.patch88
-rw-r--r--xorg/tests/randr/trandr.c2
-rw-r--r--xorg/tests/xdemo/bmp_parser.c2
-rw-r--r--xorg/tests/xdemo/xdemo.c2
-rw-r--r--xorg/tests/xdemo/yosemite.bmpbin1843254 -> 1843254 bytes
24 files changed, 460 insertions, 154 deletions
diff --git a/xorg/.gitignore b/xorg/.gitignore
new file mode 100644
index 00000000..24600083
--- /dev/null
+++ b/xorg/.gitignore
@@ -0,0 +1 @@
+!Makefile
diff --git a/xorg/X11R7.6/.gitignore b/xorg/X11R7.6/.gitignore
new file mode 100644
index 00000000..218e4a9a
--- /dev/null
+++ b/xorg/X11R7.6/.gitignore
@@ -0,0 +1,3 @@
+build_dir
+cookies
+downloads
diff --git a/xorg/X11R7.6/buildx.sh b/xorg/X11R7.6/buildx.sh
index 22dfe15f..0c61b5e1 100755
--- a/xorg/X11R7.6/buildx.sh
+++ b/xorg/X11R7.6/buildx.sh
@@ -23,23 +23,19 @@
# debian packages needed
# flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils
-download_file()
+download_all_files()
{
- local file url status
- file=$1
+ # download files parallelly using keepalive
+ # a little bit faster than calling wget with single file more than 100 times
+ < x11_file_list.txt cut -f1 -d: | sed -e "s|^|${download_url}/|" | \
+ xargs -P2 -n $(expr $num_modules / 2 + 1) \
+ wget \
+ --directory-prefix=downloads \
+ --no-verbose \
+ --timestamping \
+ --continue
- # if we already have the file, don't download it
- if [ -r downloads/$file ]; then
- return 0
- fi
-
- echo "downloading file $download_url/$file"
-
- cd downloads
-
- wget -cq $download_url/$file
status=$?
- cd ..
return $status
}
@@ -74,15 +70,6 @@ extract_it()
return 0
fi
- # download file
- if ! download_file $mod_file
- then
- echo ""
- echo "failed to download $mod_file - aborting build"
- echo ""
- exit 1
- fi
-
cd build_dir
# if pkg has not yet been extracted, do so now
@@ -105,7 +92,7 @@ extract_it()
cd $mod_name
# check for patches
if [ -e ../../$mod_name.patch ]; then
- patch -p1 < ../../$mod_name.patch
+ patch -N -p1 < ../../$mod_name.patch
fi
# now configure
echo "executing ./configure --prefix=$PREFIX_DIR $mod_args"
@@ -149,7 +136,7 @@ make_it()
# make module
if [ ! -e cookies/$mod_name.made ]; then
- if ! make -C build_dir/$mod_name
+ if ! make -j $NPROC -C build_dir/$mod_name
then
echo ""
echo "make failed for module $mod_name"
@@ -168,14 +155,6 @@ make_it()
exit 1
fi
- # special case after installing python make this sym link
- # so Mesa builds using this python version
- case "$mod_name" in
- *Python-2*)
- ln -s python build_dir/$mod_name/$PREFIX_DIR/bin/python2
- ;;
- esac
-
touch cookies/$mod_name.installed
return 0
}
@@ -188,7 +167,7 @@ data_file=x11_file_list.txt
# was www.x.org/releases/X11R7.6/src/everything
download_url=http://server1.xrdp.org/xrdp/X11R7.6
-num_modules=`cat $data_file | wc -l`
+num_modules=`wc -l < $data_file`
count=0
##########################
@@ -198,7 +177,7 @@ count=0
if [ $# -lt 1 ]; then
echo ""
echo "usage: buildx.sh <installation dir>"
- echo "usage: buildx.sh <clean>"
+ echo "usage: buildx.sh clean"
echo "usage: buildx.sh default"
echo "usage: buildx.sh <installation dir> drop - set env and run bash in rdp dir"
echo ""
@@ -218,37 +197,28 @@ else
export PREFIX_DIR=$1
fi
-if ! test -d $PREFIX_DIR; then
- echo "dir does not exist, creating [$PREFIX_DIR]"
- if ! mkdir $PREFIX_DIR
- then
- echo "mkdir failed [$PREFIX_DIR]"
- exit 0
- fi
-fi
-
-echo "using $PREFIX_DIR"
-
-export PKG_CONFIG_PATH=$PREFIX_DIR/lib/pkgconfig:$PREFIX_DIR/share/pkgconfig
-export PATH=$PREFIX_DIR/bin:$PATH
-export LDFLAGS=-Wl,-rpath=$PREFIX_DIR/lib
-export CFLAGS="-I$PREFIX_DIR/include -fPIC -O2"
-
# prefix dir must exist...
if [ ! -d $PREFIX_DIR ]; then
- if ! mkdir -p $PREFIX_DIR
- then
- echo "$PREFIX_DIR does not exist; failed to create it - cannot continue"
+ echo "$PREFIX_DIR does not exist, creating it"
+ if ! mkdir -p $PREFIX_DIR; then
+ echo "$PREFIX_DIR cannot be created - cannot continue"
exit 1
fi
fi
# ...and be writable
if [ ! -w $PREFIX_DIR ]; then
- echo "directory $PREFIX_DIR is not writable - cannot continue"
+ echo "$PREFIX_DIR is not writable - cannot continue"
exit 1
fi
+echo "installation directory: $PREFIX_DIR"
+
+export PKG_CONFIG_PATH=$PREFIX_DIR/lib/pkgconfig:$PREFIX_DIR/share/pkgconfig
+export PATH=$PREFIX_DIR/bin:$PATH
+export LDFLAGS=-Wl,-rpath=$PREFIX_DIR/lib
+export CFLAGS="-I$PREFIX_DIR/include -fPIC -O2"
+
# create a downloads dir
if [ ! -d downloads ]; then
if ! mkdir downloads
@@ -276,6 +246,18 @@ if [ ! -d cookies ]; then
fi
fi
+if ! NPROC=`nproc`; then
+ NPROC=1
+fi
+
+if ! download_all_files; then
+ echo ""
+ echo "download failed - aborting build"
+ echo "rerun this script to resume download/build"
+ echo ""
+ exit 1
+fi
+
while IFS=: read mod_file mod_dir mod_args
do
mod_args=`eval echo $mod_args`
@@ -296,8 +278,8 @@ fi
# this will copy the build X server with the other X server binaries
cd rdp
-strip X11rdp
cp X11rdp $X11RDPBASE/bin
+strip $X11RDPBASE/bin/X11rdp
if [ "$2" = "drop" ]; then
echo ""
diff --git a/xorg/X11R7.6/rdp/Makefile b/xorg/X11R7.6/rdp/Makefile
index c18e01b6..cdfea385 100644
--- a/xorg/X11R7.6/rdp/Makefile
+++ b/xorg/X11R7.6/rdp/Makefile
@@ -1,6 +1,9 @@
+# X11RDPBASE is the top-level X11rdp install directory
+ifeq ($(X11RDPBASE),)
+$(error X11RDPBASE needs to be set)
+endif
-#X11RDPBASE is an environment variable that needs to be set
-
+BINBASE = $(X11RDPBASE)/bin
INCBASE = $(X11RDPBASE)/include
LIBBASE = $(X11RDPBASE)/lib
@@ -23,23 +26,24 @@ fbcmap_mi.o
#fbcmap_mi.o
#fbcmap.o
-LIBS = $(XSRCBASE)/dbe/.libs/libdbe.a \
- $(XSRCBASE)/dix/.libs/libdix.a \
+LIBS = \
$(XSRCBASE)/dix/.libs/libmain.a \
+ librdp.a \
+ $(XSRCBASE)/dbe/.libs/libdbe.a \
+ $(XSRCBASE)/dix/.libs/libdix.a \
$(XSRCBASE)/fb/.libs/libfb.a \
$(XSRCBASE)/mi/.libs/libmi.a \
- $(XSRCBASE)/os/.libs/libos.a \
$(XSRCBASE)/randr/.libs/librandr.a \
- $(XSRCBASE)/record/.libs/librecord.a \
$(XSRCBASE)/render/.libs/librender.a \
+ $(XSRCBASE)/os/.libs/libos.a \
+ $(XSRCBASE)/record/.libs/librecord.a \
$(XSRCBASE)/xkb/.libs/libxkb.a \
$(XSRCBASE)/Xext/.libs/libXext.a \
$(XSRCBASE)/Xi/.libs/libXi.a \
$(XSRCBASE)/glx/.libs/libglx.a \
$(XSRCBASE)/xfixes/.libs/libxfixes.a \
$(XSRCBASE)/damageext/.libs/libdamageext.a \
- $(XSRCBASE)/miext/damage/.libs/libdamage.a \
- librdp.a
+ $(XSRCBASE)/miext/damage/.libs/libdamage.a
LLIBS = -Wl,-rpath=$(LIBBASE) -lfreetype -lz -lm -lXfont -lXau \
-lXdmcp -lpixman-1 -lrt -ldl -lcrypto -lGL -lXdamage
@@ -98,7 +102,7 @@ all: X11rdp
X11rdp: $(OBJS)
$(AR) rvu librdp.a $(OBJS)
ranlib librdp.a
- $(CC) $(LDFLAGS) -o X11rdp $(LIBS) $(LIBS) $(LLIBS)
+ $(CC) $(LDFLAGS) -o X11rdp $(LIBS) $(LLIBS)
clean:
rm -f $(OBJS) librdp.a
@@ -113,4 +117,4 @@ fbcmap_mi.o: ../build_dir/xorg-server-1.9.3/fb/fbcmap_mi.c
$(CC) $(CFLAGS) -c ../build_dir/xorg-server-1.9.3/fb/fbcmap_mi.c
install: all
- $(INSTALL) X11rdp $(X11RDPBASE)/bin/X11rdp
+ $(INSTALL) X11rdp $(BINBASE)/X11rdp
diff --git a/xorg/X11R7.6/rdp/rdp.h b/xorg/X11R7.6/rdp/rdp.h
index 00725d11..9c373068 100644
--- a/xorg/X11R7.6/rdp/rdp.h
+++ b/xorg/X11R7.6/rdp/rdp.h
@@ -90,7 +90,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# endif
#endif
-#define X11RDPVER "0.7.0"
+#define X11RDPVER "0.9.1"
#define PixelDPI 100
#define PixelToMM(_size) (((_size) * 254 + (PixelDPI) * 5) / ((PixelDPI) * 10))
@@ -558,9 +558,9 @@ rdpup_set_cursor(short x, short y, char* cur_data, char* cur_mask);
int
rdpup_set_cursor_ex(short x, short y, char *cur_data, char *cur_mask, int bpp);
int
-rdpup_create_os_surface(int rdpindexd, int width, int height);
+rdpup_create_os_surface(int rdpindex, int width, int height);
int
-rdpup_create_os_surface_bpp(int rdpindexd, int width, int height, int bpp);
+rdpup_create_os_surface_bpp(int rdpindex, int width, int height, int bpp);
int
rdpup_switch_os_surface(int rdpindex);
int
@@ -582,10 +582,10 @@ rdpup_check_alpha_dirty(PixmapPtr pDirtyPixmap, rdpPixmapRec* pDirtyPriv);
int
rdpup_check_dirty_screen(rdpPixmapRec* pDirtyPriv);
int
-rdpup_add_char(int font, int charactor, short x, short y, int cx, int cy,
+rdpup_add_char(int font, int character, short x, short y, int cx, int cy,
char* bmpdata, int bmpdata_bytes);
int
-rdpup_add_char_alpha(int font, int charactor, short x, short y, int cx, int cy,
+rdpup_add_char_alpha(int font, int character, short x, short y, int cx, int cy,
char* bmpdata, int bmpdata_bytes);
int
rdpup_draw_text(int font, int flags, int mixmode,
diff --git a/xorg/X11R7.6/rdp/rdpComposite.c b/xorg/X11R7.6/rdp/rdpComposite.c
index f763783e..9376a533 100644
--- a/xorg/X11R7.6/rdp/rdpComposite.c
+++ b/xorg/X11R7.6/rdp/rdpComposite.c
@@ -224,7 +224,7 @@ print_format(PictFormatShort format)
/******************************************************************************/
static int
-compsoite_print(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
+composite_print(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst,
INT16 yDst, CARD16 width, CARD16 height)
{
@@ -233,7 +233,7 @@ compsoite_print(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
rdpPixmapRec* pSrcPriv;
rdpPixmapRec* pDstPriv;
- LLOGLN(0, ("compsoite_print: op %d xSrc %d ySrc %d xDst %d yDst %d "
+ LLOGLN(0, ("composite_print: op %d xSrc %d ySrc %d xDst %d yDst %d "
"width %d height %d",
op, xSrc, ySrc, xDst, yDst, width, height));
@@ -493,7 +493,7 @@ check_drawables(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
{
LLOGLN(10, ("check_drawables: can not remote [%s]", g_com_fail_strings[fail_reason]));
#if 0
- compsoite_print(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask,
+ composite_print(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask,
xDst, yDst, width, height);
#endif
}
@@ -501,7 +501,7 @@ check_drawables(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
{
LLOGLN(10, ("check_drawables: can remote [%s]", g_com_fail_strings[fail_reason]));
#if 0
- compsoite_print(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask,
+ composite_print(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask,
xDst, yDst, width, height);
#endif
}
@@ -707,7 +707,7 @@ rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
{
if (pMask != 0)
{
- /* TODO: here we can try to send it as a gylph */
+ /* TODO: here we can try to send it as a glyph */
}
}
}
@@ -745,7 +745,7 @@ rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
post_process = 1;
if (g_do_dirty_os)
{
- LLOGLN(10, ("rdpComposite: gettig dirty"));
+ LLOGLN(10, ("rdpComposite: getting dirty"));
pDstPriv->is_dirty = 1;
dirty_type = g_doing_font ? RDI_IMGLL : RDI_IMGLY;
pDirtyPriv = pDstPriv;
diff --git a/xorg/X11R7.6/rdp/rdpPolyFillRect.c b/xorg/X11R7.6/rdp/rdpPolyFillRect.c
index 7db4be69..6d37f587 100644
--- a/xorg/X11R7.6/rdp/rdpPolyFillRect.c
+++ b/xorg/X11R7.6/rdp/rdpPolyFillRect.c
@@ -188,7 +188,7 @@ rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
pGC->alu == GXnoop ||
pGC->alu == GXand ||
pGC->alu == GXcopy /*||
- pGC->alu == GXxor*/)) /* todo, why dosen't xor work? */
+ pGC->alu == GXxor*/)) /* todo, why doesn't xor work? */
{
draw_item_add_fill_region(pDirtyPriv, fill_reg, pGC->fgPixel,
pGC->alu);
@@ -210,7 +210,7 @@ rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
pGC->alu == GXnoop ||
pGC->alu == GXand ||
pGC->alu == GXcopy /*||
- pGC->alu == GXxor*/)) /* todo, why dosen't xor work? */
+ pGC->alu == GXxor*/)) /* todo, why doesn't xor work? */
{
rdpup_set_fgcolor(pGC->fgPixel);
rdpup_set_opcode(pGC->alu);
@@ -253,7 +253,7 @@ rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
pGC->alu == GXnoop ||
pGC->alu == GXand ||
pGC->alu == GXcopy /*||
- pGC->alu == GXxor*/)) /* todo, why dosen't xor work? */
+ pGC->alu == GXxor*/)) /* todo, why doesn't xor work? */
{
LLOGLN(10, ("rdpPolyFillRect: 3"));
draw_item_add_fill_region(pDirtyPriv, &clip_reg,
@@ -280,7 +280,7 @@ rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
pGC->alu == GXnoop ||
pGC->alu == GXand ||
pGC->alu == GXcopy /*||
- pGC->alu == GXxor*/)) /* todo, why dosen't xor work? */
+ pGC->alu == GXxor*/)) /* todo, why doesn't xor work? */
{
rdpup_set_fgcolor(pGC->fgPixel);
rdpup_set_opcode(pGC->alu);
diff --git a/xorg/X11R7.6/rdp/rdpdraw.c b/xorg/X11R7.6/rdp/rdpdraw.c
index e276c0b7..51fe5c61 100644
--- a/xorg/X11R7.6/rdp/rdpdraw.c
+++ b/xorg/X11R7.6/rdp/rdpdraw.c
@@ -108,7 +108,7 @@ rdp_get_clip(RegionPtr pRegion, DrawablePtr pDrawable, GCPtr pGC)
break;
case CT_REGION:
rv = 2;
- RegionCopy(pRegion, pGC->clientClip);
+ RegionCopy(pRegion, pGC->pCompositeClip);
break;
default:
rdpLog("unimp clip type %d\n", pGC->clientClipType);
@@ -608,7 +608,7 @@ dump_draw_list(rdpPixmapRec* priv)
/******************************************************************************/
/* returns boolean */
static int
-region_interect_at_all(RegionPtr reg_small, RegionPtr reg_big)
+region_intersect_at_all(RegionPtr reg_small, RegionPtr reg_big)
{
int rv;
RegionRec reg;
@@ -719,7 +719,7 @@ draw_item_pack(PixmapPtr pix, rdpPixmapRec *priv)
{
if ((di->type == RDI_TEXT) && (di_prev->type == RDI_IMGLY))
{
- if (region_interect_at_all(di->reg, di_prev->reg))
+ if (region_intersect_at_all(di->reg, di_prev->reg))
{
di_prev->type = RDI_IMGLL;
}
diff --git a/xorg/X11R7.6/rdp/rdpglyph.c b/xorg/X11R7.6/rdp/rdpglyph.c
index cb895ae5..f0dda8d4 100644
--- a/xorg/X11R7.6/rdp/rdpglyph.c
+++ b/xorg/X11R7.6/rdp/rdpglyph.c
@@ -503,7 +503,7 @@ rdp_text_chars_to_data(struct rdp_text* rtext)
PictFormatPtr format;
} GlyphListRec, *GlyphListPtr;
*/
-/* see ghyphstr.h but the follow is not in there
+/* see glyphstr.h but the following is not in there
typedef struct _XGlyphInfo {
unsigned short width;
unsigned short height;
@@ -557,7 +557,7 @@ rdpGlyphu(CARD8 op, PicturePtr pSrc, PicturePtr pDst,
post_process = 1;
if (g_do_dirty_os)
{
- LLOGLN(10, ("rdpGlyphu: gettig dirty"));
+ LLOGLN(10, ("rdpGlyphu: getting dirty"));
pDstPriv->is_dirty = 1;
dirty_type = RDI_IMGLL;
pDirtyPriv = pDstPriv;
diff --git a/xorg/X11R7.6/rdp/rdpinput.c b/xorg/X11R7.6/rdp/rdpinput.c
index a13c7b5b..6ef432e6 100644
--- a/xorg/X11R7.6/rdp/rdpinput.c
+++ b/xorg/X11R7.6/rdp/rdpinput.c
@@ -26,8 +26,8 @@ keyboard and mouse stuff
flags right so control down is used to determine between pause and
num lock */
/* this should be fixed in rdesktop */
-/* g_pause_spe flag for specal control sent by ms client before scan code
- 69 is sent to tell that its pause, not num lock. both pause and num
+/* g_pause_spe flag for special control sent by ms client before scan code
+ 69 is sent to tell that it's pause, not num lock. both pause and num
lock use scan code 69 */
/* tab notes */
@@ -59,6 +59,8 @@ extern int g_alt_down; /* in rdpmain.c */
extern int g_ctrl_down; /* in rdpmain.c */
static int g_old_button_mask = 0;
+static int g_old_x = 0;
+static int g_old_y = 0;
/* this is toggled every time num lock key is released, not like the
above *_down vars */
static int g_scroll_lock_down = 0;
@@ -66,7 +68,7 @@ static OsTimerPtr g_kbtimer = 0;
static OsTimerPtr g_timer = 0;
static int g_x = 0;
static int g_y = 0;
-static int g_timer_schedualed = 0;
+static int g_timer_scheduled = 0;
static int g_delay_motion = 1; /* turn on or off */
static int g_use_evdev = 0;
@@ -180,7 +182,7 @@ rdpChangeKeyboardControl(DeviceIntPtr pDev, KeybdCtrl *ctrl)
if (ctrls->enabled_ctrls & XkbRepeatKeysMask)
{
LLOGLN(10, ("rdpChangeKeyboardControl: autoRepeat on"));
- /* schedual to turn off the autorepeat after 100 ms so any app
+ /* schedule to turn off the autorepeat after 100 ms so any app
* polling it will be happy it's on */
g_kbtimer = TimerSet(g_kbtimer, 0, 100,
rdpInDeferredUpdateCallback, 0);
@@ -236,7 +238,7 @@ rdpChangeKeyboardControl(DeviceIntPtr pDev, KeybdCtrl *ctrl)
0x0000042C Azeri Latin
0x0000042F FYRO Macedonian
0x00000437 Georgian
-0x00000438 Faeroese
+0x00000438 Faroese
0x00000439 Devanagari - INSCRIPT
0x0000043A Maltese 47-key
0x0000043B Norwegian with Sami
@@ -323,6 +325,10 @@ rdpLoadLayout(struct xrdp_client_info *client_info)
{
set.layout = client_info->layout;
}
+ if (strlen(client_info->options) > 0)
+ {
+ set.options = client_info->options;
+ }
retry:
/* free some stuff so we can call InitKeyboardDeviceStruct again */
@@ -857,8 +863,13 @@ static CARD32
rdpDeferredInputCallback(OsTimerPtr timer, CARD32 now, pointer arg)
{
LLOGLN(10, ("rdpDeferredInputCallback:"));
- g_timer_schedualed = 0;
- rdpEnqueueMotion(g_x, g_y);
+ g_timer_scheduled = 0;
+ if ((g_old_x != g_x) || (g_old_y != g_y))
+ {
+ rdpEnqueueMotion(g_x, g_y);
+ g_old_x = g_x;
+ g_old_y = g_x;
+ }
return 0;
}
@@ -877,16 +888,21 @@ PtrAddEvent(int buttonMask, int x, int y)
return;
}
send_now = (buttonMask ^ g_old_button_mask) || (g_delay_motion == 0);
- LLOGLN(10, ("PtrAddEvent: send_now %d g_timer_schedualed %d",
- send_now, g_timer_schedualed));
+ LLOGLN(10, ("PtrAddEvent: send_now %d g_timer_scheduled %d",
+ send_now, g_timer_scheduled));
if (send_now)
{
- if (g_timer_schedualed)
+ if (g_timer_scheduled)
{
- g_timer_schedualed = 0;
+ g_timer_scheduled = 0;
TimerCancel(g_timer);
}
- rdpEnqueueMotion(x, y);
+ if ((g_old_x != x) || (g_old_y != y))
+ {
+ rdpEnqueueMotion(x, y);
+ g_old_x = x;
+ g_old_y = y;
+ }
for (i = 0; i < 5; i++)
{
if ((buttonMask ^ g_old_button_mask) & (1 << i))
@@ -911,9 +927,9 @@ PtrAddEvent(int buttonMask, int x, int y)
{
g_x = x;
g_y = y;
- if (!g_timer_schedualed)
+ if (!g_timer_scheduled)
{
- g_timer_schedualed = 1;
+ g_timer_scheduled = 1;
g_timer = TimerSet(g_timer, 0, 60, rdpDeferredInputCallback, 0);
}
}
diff --git a/xorg/X11R7.6/rdp/rdpkeyboardbase.c b/xorg/X11R7.6/rdp/rdpkeyboardbase.c
index 1c62541d..c35a0392 100644
--- a/xorg/X11R7.6/rdp/rdpkeyboardbase.c
+++ b/xorg/X11R7.6/rdp/rdpkeyboardbase.c
@@ -56,7 +56,7 @@ extern int g_tab_down; /* in rdpmain.c */
#define XSCAN_KP_3 89
#define XSCAN_KP_0 90
#define XSCAN_KP_Decimal 91
-/* "/ ?" on br keybaord */
+/* "/ ?" on br keyboard */
#define XSCAN_97 97 /* ------------------------------? */
#define XSCAN_Enter 108 /* 104 */ /* on keypad */
#define XSCAN_Control_R 109 /* 105 */
@@ -81,7 +81,7 @@ extern int g_tab_down; /* in rdpmain.c */
#define XSCAN_Menu 117 /* 135 */
#define XSCAN_LMeta 156
#define XSCAN_RMeta 156
-#define XSCAN_211 211 /* "/ ?" on br keybaord, "\ _" on jp keyboard */
+#define XSCAN_211 211 /* "/ ?" on br keyboard, "\ _" on jp keyboard */
/******************************************************************************/
void
@@ -279,7 +279,7 @@ KbdAddEvent_base(int down, int param1, int param2, int param3, int param4)
break;
case RDPSCAN_115:
- rdpEnqueueKey(type, XSCAN_211); /* "/ ?" on br keybaord, "\ _" on jp keyboard */
+ rdpEnqueueKey(type, XSCAN_211); /* "/ ?" on br keyboard, "\ _" on jp keyboard */
break;
case RDPSCAN_126:
diff --git a/xorg/X11R7.6/rdp/rdpkeyboardevdev.c b/xorg/X11R7.6/rdp/rdpkeyboardevdev.c
index 770a102f..0c560c83 100644
--- a/xorg/X11R7.6/rdp/rdpkeyboardevdev.c
+++ b/xorg/X11R7.6/rdp/rdpkeyboardevdev.c
@@ -56,7 +56,7 @@ extern int g_tab_down; /* in rdpmain.c */
#define XSCAN_KP_3 89
#define XSCAN_KP_0 90
#define XSCAN_KP_Decimal 91
-/* "/ ?" on br keybaord */
+/* "/ ?" on br keyboard */
#define XSCAN_97 97
#define XSCAN_Enter 104 /* on keypad */
#define XSCAN_Control_R 105
@@ -278,7 +278,7 @@ KbdAddEvent_evdev(int down, int param1, int param2, int param3, int param4)
break;
case RDPSCAN_115:
- rdpEnqueueKey(type, XSCAN_97); /* "/ ?" on br keybaord */
+ rdpEnqueueKey(type, XSCAN_97); /* "/ ?" on br keyboard */
break;
case RDPSCAN_126:
diff --git a/xorg/X11R7.6/rdp/rdpmain.c b/xorg/X11R7.6/rdp/rdpmain.c
index 884b8a3a..7540e12e 100644
--- a/xorg/X11R7.6/rdp/rdpmain.c
+++ b/xorg/X11R7.6/rdp/rdpmain.c
@@ -41,7 +41,7 @@ Sets up the functions
#endif
#if XRDP_DISABLE_LINUX_ABSTRACT
-/* because including <X11/Xtrans/Xtransint.h> in problematic
+/* because including <X11/Xtrans/Xtransint.h> is problematic
* we dup a small struct
* we need to set flags to zero to turn off abstract sockets */
struct _MyXtransport
@@ -139,6 +139,8 @@ static miPointerScreenFuncRec g_rdpPointerCursorFuncs =
rdpPointerNewEventScreen
};
+int glGetBufferSubData(void);
+
/******************************************************************************/
/* returns error, zero is good */
static int
@@ -189,6 +191,11 @@ set_bpp(int bpp)
g_greenBits = 8;
g_blueBits = 8;
}
+ else if (g_bpp == 33)
+ {
+ /* will never happen */
+ glGetBufferSubData();
+ }
else
{
rv = 1;
@@ -297,8 +304,8 @@ rdpScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
ErrorF("\n");
ErrorF("X11rdp, an X server for xrdp\n");
ErrorF("Version %s\n", X11RDPVER);
- ErrorF("Copyright (C) 2005-2012 Jay Sorg\n");
- ErrorF("See http://xrdp.sf.net for information on xrdp.\n");
+ ErrorF("Copyright (C) 2005-2015 Jay Sorg\n");
+ ErrorF("See http://www.xrdp.org for information on xrdp.\n");
#if defined(XORG_VERSION_CURRENT) && defined (XVENDORNAME)
ErrorF("Underlying X server release %d, %s\n",
XORG_VERSION_CURRENT, XVENDORNAME);
@@ -414,7 +421,7 @@ rdpScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
g_rdpScreen.CloseScreen = pScreen->CloseScreen;
/* GC procedures */
g_rdpScreen.CreateGC = pScreen->CreateGC;
- /* Pixmap procudures */
+ /* Pixmap procedures */
g_rdpScreen.CreatePixmap = pScreen->CreatePixmap;
g_rdpScreen.DestroyPixmap = pScreen->DestroyPixmap;
@@ -590,7 +597,7 @@ rdpScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
/******************************************************************************/
/* this is the first function called, it can be called many times
returns the number or parameters processed
- if it dosen't apply to the rdp part, return 0 */
+ if it doesn't apply to the rdp part, return 0 */
int
ddxProcessArgument(int argc, char **argv, int i)
{
@@ -654,7 +661,7 @@ void
OsVendorInit(void)
{
#if XRDP_DISABLE_LINUX_ABSTRACT
- /* turn off the Linux abstract unix doamin sockets TRANS_ABSTRACT */
+ /* turn off the Linux abstract unix domain sockets TRANS_ABSTRACT */
/* TRANS_NOLISTEN = 1 << 3 */
_XSERVTransSocketLocalFuncs.flags = 0;
#endif
diff --git a/xorg/X11R7.6/rdp/rdpmisc.c b/xorg/X11R7.6/rdp/rdpmisc.c
index 1d57d1fa..f8316ff8 100644
--- a/xorg/X11R7.6/rdp/rdpmisc.c
+++ b/xorg/X11R7.6/rdp/rdpmisc.c
@@ -254,7 +254,7 @@ g_malloc(int size, int zero)
//#ifdef _XSERVER64
#if 1
- /* I thought xalloc whould work here but I guess not, why, todo */
+ /* I thought xalloc would work here but I guess not, why, todo */
rv = (char *)malloc(size);
#else
rv = (char *)Xalloc(size);
@@ -279,7 +279,7 @@ g_free(void *ptr)
{
//#ifdef _XSERVER64
#if 1
- /* I thought xfree whould work here but I guess not, why, todo */
+ /* I thought xfree would work here but I guess not, why, todo */
free(ptr);
#else
Xfree(ptr);
diff --git a/xorg/X11R7.6/rdp/rdprandr.c b/xorg/X11R7.6/rdp/rdprandr.c
index d0ee6b1c..664a2244 100644
--- a/xorg/X11R7.6/rdp/rdprandr.c
+++ b/xorg/X11R7.6/rdp/rdprandr.c
@@ -38,6 +38,14 @@ extern WindowPtr g_invalidate_window; /* in rdpmain.c */
static XID g_wid = 0;
+static int g_panning = 0;
+
+#define LOG_LEVEL 1
+#define LLOG(_level, _args) \
+ do { if (_level < LOG_LEVEL) { ErrorF _args ; } } while (0)
+#define LLOGLN(_level, _args) \
+ do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
+
/******************************************************************************/
Bool
rdpRRRegisterSize(ScreenPtr pScreen, int width, int height)
@@ -68,15 +76,8 @@ rdpRRSetConfig(ScreenPtr pScreen, Rotation rotateKind, int rate,
Bool
rdpRRGetInfo(ScreenPtr pScreen, Rotation *pRotations)
{
- int width;
- int height;
-
ErrorF("rdpRRGetInfo:\n");
*pRotations = RR_Rotate_0;
-
- width = g_rdpScreen.width;
- height = g_rdpScreen.height;
- rdpRRRegisterSize(pScreen, width, height);
return TRUE;
}
@@ -214,6 +215,19 @@ Bool
rdpRRCrtcGetGamma(ScreenPtr pScreen, RRCrtcPtr crtc)
{
ErrorF("rdpRRCrtcGetGamma:\n");
+ crtc->gammaSize = 1;
+ if (crtc->gammaRed == NULL)
+ {
+ crtc->gammaRed = g_malloc(32, 1);
+ }
+ if (crtc->gammaBlue == NULL)
+ {
+ crtc->gammaBlue = g_malloc(32, 1);
+ }
+ if (crtc->gammaGreen == NULL)
+ {
+ crtc->gammaGreen = g_malloc(32, 1);
+ }
return TRUE;
}
@@ -257,6 +271,11 @@ rdpRRGetPanning(ScreenPtr pScrn, RRCrtcPtr crtc, BoxPtr totalArea,
{
ErrorF("rdpRRGetPanning:\n");
+ if (!g_panning)
+ {
+ return FALSE;
+ }
+
if (totalArea != 0)
{
totalArea->x1 = 0;
@@ -292,3 +311,146 @@ rdpRRSetPanning(ScreenPtr pScrn, RRCrtcPtr crtc, BoxPtr totalArea,
ErrorF("rdpRRSetPanning:\n");
return TRUE;
}
+
+/******************************************************************************/
+static RROutputPtr
+rdpRRAddOutput(const char *aname, int x, int y, int width, int height)
+{
+ RRModePtr mode;
+ RRCrtcPtr crtc;
+ RROutputPtr output;
+ xRRModeInfo modeInfo;
+ char name[64];
+ const int vfreq = 50;
+
+ sprintf (name, "%dx%d", width, height);
+ memset (&modeInfo, 0, sizeof(modeInfo));
+ modeInfo.width = width;
+ modeInfo.height = height;
+ modeInfo.hTotal = width;
+ modeInfo.vTotal = height;
+ modeInfo.dotClock = vfreq * width * height;
+ modeInfo.nameLength = strlen(name);
+ mode = RRModeGet(&modeInfo, name);
+ if (mode == 0)
+ {
+ LLOGLN(0, ("rdpRRAddOutput: RRModeGet failed"));
+ return 0;
+ }
+
+ crtc = RRCrtcCreate(g_pScreen, NULL);
+ if (crtc == 0)
+ {
+ LLOGLN(0, ("rdpRRAddOutput: RRCrtcCreate failed"));
+ RRModeDestroy(mode);
+ return 0;
+ }
+ output = RROutputCreate(g_pScreen, aname, strlen(aname), NULL);
+ if (output == 0)
+ {
+ LLOGLN(0, ("rdpRRAddOutput: RROutputCreate failed"));
+ RRCrtcDestroy(crtc);
+ RRModeDestroy(mode);
+ return 0;
+ }
+ if (!RROutputSetClones(output, NULL, 0))
+ {
+ LLOGLN(0, ("rdpRRAddOutput: RROutputSetClones failed"));
+ }
+ if (!RROutputSetModes(output, &mode, 1, 0))
+ {
+ LLOGLN(0, ("rdpRRAddOutput: RROutputSetModes failed"));
+ }
+ if (!RROutputSetCrtcs(output, &crtc, 1))
+ {
+ LLOGLN(0, ("rdpRRAddOutput: RROutputSetCrtcs failed"));
+ }
+ if (!RROutputSetConnection(output, RR_Connected))
+ {
+ LLOGLN(0, ("rdpRRAddOutput: RROutputSetConnection failed"));
+ }
+ RRCrtcNotify(crtc, mode, x, y, RR_Rotate_0, NULL, 1, &output);
+
+ return output;
+}
+
+/******************************************************************************/
+static void
+RRSetPrimaryOutput(rrScrPrivPtr pScrPriv, RROutputPtr output)
+{
+ if (pScrPriv->primaryOutput == output)
+ {
+ return;
+ }
+ /* clear the old primary */
+ if (pScrPriv->primaryOutput)
+ {
+ RROutputChanged(pScrPriv->primaryOutput, 0);
+ pScrPriv->primaryOutput = NULL;
+ }
+ /* set the new primary */
+ if (output)
+ {
+ pScrPriv->primaryOutput = output;
+ RROutputChanged(output, 0);
+ }
+ pScrPriv->layoutChanged = TRUE;
+}
+
+/******************************************************************************/
+int
+rdpRRSetRdpOutputs(void)
+{
+ rrScrPrivPtr pRRScrPriv;
+ int index;
+ int width;
+ int height;
+ char text[256];
+ RROutputPtr output;
+
+ pRRScrPriv = rrGetScrPriv(g_pScreen);
+
+ LLOGLN(0, ("rdpRRSetRdpOutputs: numCrtcs %d", pRRScrPriv->numCrtcs));
+ while (pRRScrPriv->numCrtcs > 0)
+ {
+ RRCrtcDestroy(pRRScrPriv->crtcs[0]);
+ }
+ LLOGLN(0, ("rdpRRSetRdpOutputs: numOutputs %d", pRRScrPriv->numOutputs));
+ while (pRRScrPriv->numOutputs > 0)
+ {
+ RROutputDestroy(pRRScrPriv->outputs[0]);
+ }
+
+ if (g_rdpScreen.client_info.monitorCount == 0)
+ {
+ rdpRRAddOutput("rdp0", 0, 0, g_rdpScreen.width, g_rdpScreen.height);
+ }
+ else
+ {
+ for (index = 0; index < g_rdpScreen.client_info.monitorCount; index++)
+ {
+ snprintf(text, 255, "rdp%d", index);
+ width = g_rdpScreen.client_info.minfo[index].right - g_rdpScreen.client_info.minfo[index].left + 1;
+ height = g_rdpScreen.client_info.minfo[index].bottom - g_rdpScreen.client_info.minfo[index].top + 1;
+ output = rdpRRAddOutput(text,
+ g_rdpScreen.client_info.minfo[index].left,
+ g_rdpScreen.client_info.minfo[index].top,
+ width, height);
+ if ((output != 0) && (g_rdpScreen.client_info.minfo[index].is_primary))
+ {
+ RRSetPrimaryOutput(pRRScrPriv, output);
+ }
+ }
+ }
+
+#if 0
+ for (index = 0; index < pRRScrPriv->numOutputs; index++)
+ {
+ RROutputSetCrtcs(pRRScrPriv->outputs[index], pRRScrPriv->crtcs,
+ pRRScrPriv->numCrtcs);
+ }
+#endif
+
+ return 0;
+}
+
diff --git a/xorg/X11R7.6/rdp/rdprandr.h b/xorg/X11R7.6/rdp/rdprandr.h
index 3aba7e1a..1860fa96 100644
--- a/xorg/X11R7.6/rdp/rdprandr.h
+++ b/xorg/X11R7.6/rdp/rdprandr.h
@@ -57,4 +57,7 @@ Bool
rdpRRSetPanning(ScreenPtr pScrn, RRCrtcPtr crtc, BoxPtr totalArea,
BoxPtr trackingArea, INT16* border);
+int
+rdpRRSetRdpOutputs(void);
+
#endif
diff --git a/xorg/X11R7.6/rdp/rdpup.c b/xorg/X11R7.6/rdp/rdpup.c
index f25b390a..54eb779d 100644
--- a/xorg/X11R7.6/rdp/rdpup.c
+++ b/xorg/X11R7.6/rdp/rdpup.c
@@ -22,6 +22,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "rdp.h"
#include "xrdp_rail.h"
#include "rdpglyph.h"
+#include "rdprandr.h"
#include <signal.h>
#include <sys/ipc.h>
@@ -35,7 +36,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
do { if (_level < LOG_LEVEL) { ErrorF _args ; ErrorF("\n"); } } while (0)
static int g_use_shmem = 1; /* turns on or off */
-static int g_shmemid = 0;
+static int g_shmemid = -1;
static char *g_shmemptr = 0;
static int g_shmem_lineBytes = 0;
static RegionPtr g_shm_reg = 0;
@@ -712,7 +713,6 @@ sck_can_recv(int sck, int millis)
static int
process_screen_size_msg(int width, int height, int bpp)
{
- RRScreenSizePtr pSize;
int mmwidth;
int mmheight;
int bytes;
@@ -750,29 +750,40 @@ process_screen_size_msg(int width, int height, int bpp)
if (g_shmemptr != 0)
{
shmdt(g_shmemptr);
+ g_shmemptr = 0;
}
bytes = g_rdpScreen.rdp_width * g_rdpScreen.rdp_height *
g_rdpScreen.rdp_Bpp;
g_shmemid = shmget(IPC_PRIVATE, bytes, IPC_CREAT | 0777);
- g_shmemptr = shmat(g_shmemid, 0, 0);
- shmctl(g_shmemid, IPC_RMID, NULL);
- LLOGLN(0, ("process_screen_size_msg: g_shmemid %d g_shmemptr %p",
- g_shmemid, g_shmemptr));
- g_shmem_lineBytes = g_rdpScreen.rdp_Bpp * g_rdpScreen.rdp_width;
-
- if (g_shm_reg != 0)
+ if (g_shmemid != -1)
{
- RegionDestroy(g_shm_reg);
+ g_shmemptr = shmat(g_shmemid, 0, 0);
+ if (g_shmemptr == (void *) -1)
+ {
+ LLOGLN(0, ("process_screen_size_msg: shmat failed for %d "
+ "bytes g_shmemid %d", bytes, g_shmemid));
+ g_shmemptr = 0;
+ shmctl(g_shmemid, IPC_RMID, NULL);
+ g_shmemid = -1;
+ }
+ else
+ {
+ shmctl(g_shmemid, IPC_RMID, NULL);
+ }
+ LLOGLN(0, ("process_screen_size_msg: g_shmemid %d g_shmemptr %p",
+ g_shmemid, g_shmemptr));
+ g_shmem_lineBytes = g_rdpScreen.rdp_Bpp * g_rdpScreen.rdp_width;
+ if (g_shm_reg != 0)
+ {
+ RegionDestroy(g_shm_reg);
+ }
+ g_shm_reg = RegionCreate(NullBox, 0);
}
- g_shm_reg = RegionCreate(NullBox, 0);
}
mmwidth = PixelToMM(width);
mmheight = PixelToMM(height);
- pSize = RRRegisterSize(g_pScreen, width, height, mmwidth, mmheight);
- RRSetCurrentConfig(g_pScreen, RR_Rotate_0, 0, pSize);
-
if ((g_rdpScreen.width != width) || (g_rdpScreen.height != height))
{
LLOGLN(0, (" calling RRScreenSizeSet"));
@@ -916,6 +927,7 @@ rdpup_process_msg(struct stream *s)
int y;
int cx;
int cy;
+ int index;
RegionRec reg;
BoxRec box;
@@ -1105,16 +1117,45 @@ rdpup_process_msg(struct stream *s)
{
LLOGLN(0, (" client can not do new(color) cursor"));
}
+
if (g_rdpScreen.client_info.monitorCount > 0)
{
LLOGLN(0, (" client can do multimon"));
LLOGLN(0, (" client monitor data, monitorCount= %d", g_rdpScreen.client_info.monitorCount));
+ box.x1 = g_rdpScreen.client_info.minfo[0].left;
+ box.y1 = g_rdpScreen.client_info.minfo[0].top;
+ box.x2 = g_rdpScreen.client_info.minfo[0].right;
+ box.y2 = g_rdpScreen.client_info.minfo[0].bottom;
g_do_multimon = 1;
+ /* adjust monitor info so it's not negative */
+ for (index = 1; index < g_rdpScreen.client_info.monitorCount; index++)
+ {
+ box.x1 = min(box.x1, g_rdpScreen.client_info.minfo[index].left);
+ box.y1 = min(box.y1, g_rdpScreen.client_info.minfo[index].top);
+ box.x2 = max(box.x2, g_rdpScreen.client_info.minfo[index].right);
+ box.y2 = max(box.y2, g_rdpScreen.client_info.minfo[index].bottom);
+ }
+ for (index = 0; index < g_rdpScreen.client_info.monitorCount; index++)
+ {
+ g_rdpScreen.client_info.minfo[index].left -= box.x1;
+ g_rdpScreen.client_info.minfo[index].top -= box.y1;
+ g_rdpScreen.client_info.minfo[index].right -= box.x1;
+ g_rdpScreen.client_info.minfo[index].bottom -= box.y1;
+ LLOGLN(0, (" left %d top %d right %d bottom %d",
+ g_rdpScreen.client_info.minfo[index].left,
+ g_rdpScreen.client_info.minfo[index].top,
+ g_rdpScreen.client_info.minfo[index].right,
+ g_rdpScreen.client_info.minfo[index].bottom));
+ }
+ rdpRRSetRdpOutputs();
+ RRTellChanged(g_pScreen);
}
else
{
LLOGLN(0, (" client can not do multimon"));
g_do_multimon = 0;
+ rdpRRSetRdpOutputs();
+ RRTellChanged(g_pScreen);
}
rdpLoadLayout(&(g_rdpScreen.client_info));
@@ -1305,7 +1346,7 @@ rdpup_init(void)
g_disconnect_timeout_s = 60;
}
- rdpLog("kill disconencted [%d] timeout [%d] sec\n", g_do_kill_disconnected,
+ rdpLog("kill disconnected [%d] timeout [%d] sec\n", g_do_kill_disconnected,
g_disconnect_timeout_s);
return 1;
@@ -2108,7 +2149,7 @@ rdpup_send_area(struct image_data *id, int x, int y, int w, int h)
safety = 0;
while (RegionContainsRect(g_shm_reg, &box))
{
- /* instread of rdpup_end_update, call rdpup_send_pending */
+ /* instead of rdpup_end_update, call rdpup_send_pending */
rdpup_send_pending();
rdpup_begin_update();
safety++;
@@ -2809,7 +2850,7 @@ rdpup_check_alpha_dirty(PixmapPtr pDirtyPixmap, rdpPixmapRec* pDirtyPriv)
/******************************************************************************/
int
-rdpup_add_char(int font, int charactor, short x, short y, int cx, int cy,
+rdpup_add_char(int font, int character, short x, short y, int cx, int cy,
char* bmpdata, int bmpdata_bytes)
{
if (g_connected)
@@ -2820,7 +2861,7 @@ rdpup_add_char(int font, int charactor, short x, short y, int cx, int cy,
out_uint16_le(g_out_s, 18 + bmpdata_bytes); /* size */
g_count++;
out_uint16_le(g_out_s, font);
- out_uint16_le(g_out_s, charactor);
+ out_uint16_le(g_out_s, character);
out_uint16_le(g_out_s, x);
out_uint16_le(g_out_s, y);
out_uint16_le(g_out_s, cx);
@@ -2833,7 +2874,7 @@ rdpup_add_char(int font, int charactor, short x, short y, int cx, int cy,
/******************************************************************************/
int
-rdpup_add_char_alpha(int font, int charactor, short x, short y, int cx, int cy,
+rdpup_add_char_alpha(int font, int character, short x, short y, int cx, int cy,
char* bmpdata, int bmpdata_bytes)
{
if (g_connected)
@@ -2844,7 +2885,7 @@ rdpup_add_char_alpha(int font, int charactor, short x, short y, int cx, int cy,
out_uint16_le(g_out_s, 18 + bmpdata_bytes); /* size */
g_count++;
out_uint16_le(g_out_s, font);
- out_uint16_le(g_out_s, charactor);
+ out_uint16_le(g_out_s, character);
out_uint16_le(g_out_s, x);
out_uint16_le(g_out_s, y);
out_uint16_le(g_out_s, cx);
diff --git a/xorg/X11R7.6/rdp/rdpxv.c b/xorg/X11R7.6/rdp/rdpxv.c
index d0ce8345..99fbd993 100644
--- a/xorg/X11R7.6/rdp/rdpxv.c
+++ b/xorg/X11R7.6/rdp/rdpxv.c
@@ -165,7 +165,7 @@ static int
rdpXvSetPortAttribute(ClientPtr client, XvPortPtr pPort, Atom attribute,
INT32 value)
{
- LLOGLN(0, ("rdpXvxSetPortAttribute:"));
+ LLOGLN(0, ("rdpXvSetPortAttribute:"));
return Success;
}
diff --git a/xorg/X11R7.6/x11_file_list.txt b/xorg/X11R7.6/x11_file_list.txt
index 254ac7a6..c4e9b986 100644
--- a/xorg/X11R7.6/x11_file_list.txt
+++ b/xorg/X11R7.6/x11_file_list.txt
@@ -1,4 +1,3 @@
-Python-2.7.tar.bz2 : Python-2.7 :
util-macros-1.11.0.tar.bz2 : util-macros-1.11.0 :
xf86driproto-2.1.0.tar.bz2 : xf86driproto-2.1.0 :
dri2proto-2.3.tar.bz2 : dri2proto-2.3 :
@@ -7,30 +6,34 @@ libpciaccess-0.12.0.tar.bz2 : libpciaccess-0.12.0
libpthread-stubs-0.3.tar.bz2 : libpthread-stubs-0.3 :
libdrm-2.4.26.tar.bz2 : libdrm-2.4.26 :
damageproto-1.2.1.tar.bz2 : damageproto-1.2.1 :
+xproto-7.0.20.tar.bz2 : xproto-7.0.20 :
makedepend-1.0.3.tar.bz2 : makedepend-1.0.3 :
libxml2-sources-2.7.8.tar.gz : libxml2-2.7.8 :
libpng-1.2.46.tar.gz : libpng-1.2.46 :
pixman-0.30.0.tar.bz2 : pixman-0.30.0 : --disable-gtk
freetype-2.4.6.tar.bz2 : freetype-2.4.6 :
-fontconfig-2.8.0.tar.gz : fontconfig-2.8.0 :
+fontconfig-2.8.0.tar.gz : fontconfig-2.8.0 : --disable-docs
cairo-1.8.8.tar.gz : cairo-1.8.8 :
expat-2.0.1.tar.gz : expat-2.0.1 :
xextproto-7.1.2.tar.bz2 : xextproto-7.1.2 :
-xproto-7.0.20.tar.bz2 : xproto-7.0.20 :
xcb-proto-1.6.tar.bz2 : xcb-proto-1.6 :
+libXau-1.0.6.tar.bz2 : libXau-1.0.6 :
+libXdmcp-1.1.0.tar.bz2 : libXdmcp-1.1.0 :
libxcb-1.7.tar.bz2 : libxcb-1.7 :
xtrans-1.2.6.tar.bz2 : xtrans-1.2.6 :
+kbproto-1.0.5.tar.bz2 : kbproto-1.0.5 :
+inputproto-2.0.1.tar.bz2 : inputproto-2.0.1 :
libX11-1.4.0.tar.bz2 : libX11-1.4.0 :
libXext-1.2.0.tar.bz2 : libXext-1.2.0 :
libICE-1.0.7.tar.bz2 : libICE-1.0.7 :
libSM-1.2.0.tar.bz2 : libSM-1.2.0 :
libXt-1.0.9.tar.bz2 : libXt-1.0.9 :
-libXdamage-1.1.3.tar.bz2 : libXdamage-1.1.3 :
+fixesproto-4.1.2.tar.bz2 : fixesproto-4.1.2 :
libXfixes-4.0.5.tar.bz2 : libXfixes-4.0.5 :
+libXdamage-1.1.3.tar.bz2 : libXdamage-1.1.3 :
MesaLib-7.10.3.tar.bz2 : Mesa-7.10.3 : --with-expat=$PREFIX_DIR --disable-gallium
randrproto-1.3.2.tar.bz2 : randrproto-1.3.2 :
renderproto-0.11.1.tar.bz2 : renderproto-0.11.1 :
-fixesproto-4.1.2.tar.bz2 : fixesproto-4.1.2 :
xcmiscproto-1.2.1.tar.bz2 : xcmiscproto-1.2.1 :
xf86vidmodeproto-2.3.tar.bz2 : xf86vidmodeproto-2.3 :
xf86bigfontproto-1.2.0.tar.bz2 : xf86bigfontproto-1.2.0 :
@@ -38,15 +41,11 @@ scrnsaverproto-1.2.1.tar.bz2 : scrnsaverproto-1.2.1
bigreqsproto-1.1.1.tar.bz2 : bigreqsproto-1.1.1 :
resourceproto-1.1.1.tar.bz2 : resourceproto-1.1.1 :
fontsproto-2.1.1.tar.bz2 : fontsproto-2.1.1 :
-inputproto-2.0.1.tar.bz2 : inputproto-2.0.1 :
xf86dgaproto-2.1.tar.bz2 : xf86dgaproto-2.1 :
videoproto-2.3.1.tar.bz2 : videoproto-2.3.1 :
compositeproto-0.4.2.tar.bz2 : compositeproto-0.4.2 :
recordproto-1.14.1.tar.bz2 : recordproto-1.14.1 :
xineramaproto-1.2.tar.bz2 : xineramaproto-1.2 :
-libXau-1.0.6.tar.bz2 : libXau-1.0.6 :
-kbproto-1.0.5.tar.bz2 : kbproto-1.0.5 :
-libXdmcp-1.1.0.tar.bz2 : libXdmcp-1.1.0 :
libxslt-1.1.26.tar.gz : libxslt-1.1.26 :
libxkbfile-1.0.7.tar.bz2 : libxkbfile-1.0.7 :
libfontenc-1.1.0.tar.bz2 : libfontenc-1.1.0 :
@@ -64,6 +63,7 @@ applewmproto-1.4.1.tar.bz2 : applewmproto-1.4.1
bdftopcf-1.0.3.tar.bz2 : bdftopcf-1.0.3 :
intltool-0.41.1.tar.gz : intltool-0.41.1 :
xkeyboard-config-2.0.tar.bz2 : xkeyboard-config-2.0 :
+font-util-1.2.0.tar.bz2 : font-util-1.2.0 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
font-adobe-75dpi-1.0.3.tar.bz2 : font-adobe-75dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
font-adobe-100dpi-1.0.3.tar.bz2 : font-adobe-100dpi-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
font-adobe-utopia-75dpi-1.0.4.tar.bz2 : font-adobe-utopia-75dpi-1.0.4 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
@@ -97,6 +97,5 @@ font-schumacher-misc-1.1.2.tar.bz2 : font-schumacher-misc-1.1.2
font-screen-cyrillic-1.0.4.tar.bz2 : font-screen-cyrillic-1.0.4 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
font-sony-misc-1.0.3.tar.bz2 : font-sony-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
font-sun-misc-1.0.3.tar.bz2 : font-sun-misc-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
-font-util-1.2.0.tar.bz2 : font-util-1.2.0 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
font-winitzki-cyrillic-1.0.3.tar.bz2 : font-winitzki-cyrillic-1.0.3 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
font-xfree86-type1-1.0.4.tar.bz2 : font-xfree86-type1-1.0.4 : --with-fontrootdir=$PREFIX_DIR/share/fonts/X11
diff --git a/xorg/X11R7.6/xkeyboard-config-2.0.patch b/xorg/X11R7.6/xkeyboard-config-2.0.patch
new file mode 100644
index 00000000..a77f117a
--- /dev/null
+++ b/xorg/X11R7.6/xkeyboard-config-2.0.patch
@@ -0,0 +1,88 @@
+diff -rupP xkeyboard-config-2.0.orig/rules/HDR xkeyboard-config-2.0/rules/HDR
+--- xkeyboard-config-2.0.orig/rules/HDR 2016-06-28 19:31:02.814647638 +0900
++++ xkeyboard-config-2.0/rules/HDR 2016-06-28 19:33:58.251517616 +0900
+@@ -15,6 +15,7 @@
+ ! model layout[3] variant[3] = symbols
+ ! model layout[4] variant[4] = symbols
+ ! model = symbols
++! model layout = symbols
+ ! layout variant = compat
+ ! layout[1] variant[1] = compat
+ ! layout[2] variant[2] = compat
+diff -rupP xkeyboard-config-2.0.orig/rules/Makefile.am xkeyboard-config-2.0/rules/Makefile.am
+--- xkeyboard-config-2.0.orig/rules/Makefile.am 2016-06-28 19:31:02.814647638 +0900
++++ xkeyboard-config-2.0/rules/Makefile.am 2016-06-28 20:58:22.276629031 +0900
+@@ -41,6 +41,7 @@ HDR compat/base.ml2v2_s.part extras/bas
+ HDR compat/base.ml3v3_s.part extras/base.ml3v3_s.part \
+ HDR compat/base.ml4v4_s.part extras/base.ml4v4_s.part \
+ HDR base.m_s.part \
++HDR base.ml_s1.part \
+ HDR compat/base.lv_c.part \
+ HDR compat/base.l1v1_c.part \
+ HDR compat/base.l2v2_c.part \
+@@ -114,6 +115,7 @@ HDR extras/base.ml2v2_s.part \
+ HDR extras/base.ml3v3_s.part \
+ HDR extras/base.ml4v4_s.part \
+ HDR base.m_s.part \
++HDR base.ml_s1.part \
+ HDR \
+ HDR \
+ HDR \
+@@ -183,6 +185,7 @@ base.ml2_s.part \
+ base.ml3_s.part \
+ base.ml4_s.part \
+ base.m_s.part \
++base.ml_s1.part \
+ base.ml_c.part \
+ base.ml1_c.part \
+ base.m_t.part \
+diff -rupP xkeyboard-config-2.0.orig/rules/Makefile.in xkeyboard-config-2.0/rules/Makefile.in
+--- xkeyboard-config-2.0.orig/rules/Makefile.in 2016-06-28 19:31:02.850647811 +0900
++++ xkeyboard-config-2.0/rules/Makefile.in 2016-06-28 21:00:57.569398853 +0900
+@@ -239,6 +239,7 @@ SUBDIRS = bin compat extras
+ @USE_COMPAT_RULES_FALSE@HDR extras/base.ml3v3_s.part \
+ @USE_COMPAT_RULES_FALSE@HDR extras/base.ml4v4_s.part \
+ @USE_COMPAT_RULES_FALSE@HDR base.m_s.part \
++@USE_COMPAT_RULES_FALSE@HDR base.ml_s1.part \
+ @USE_COMPAT_RULES_FALSE@HDR \
+ @USE_COMPAT_RULES_FALSE@HDR \
+ @USE_COMPAT_RULES_FALSE@HDR \
+@@ -275,6 +276,7 @@ SUBDIRS = bin compat extras
+ @USE_COMPAT_RULES_TRUE@HDR compat/base.ml3v3_s.part extras/base.ml3v3_s.part \
+ @USE_COMPAT_RULES_TRUE@HDR compat/base.ml4v4_s.part extras/base.ml4v4_s.part \
+ @USE_COMPAT_RULES_TRUE@HDR base.m_s.part \
++@USE_COMPAT_RULES_TRUE@HDR base.ml_s1.part \
+ @USE_COMPAT_RULES_TRUE@HDR compat/base.lv_c.part \
+ @USE_COMPAT_RULES_TRUE@HDR compat/base.l1v1_c.part \
+ @USE_COMPAT_RULES_TRUE@HDR compat/base.l2v2_c.part \
+@@ -378,6 +380,7 @@ base.ml2_s.part \
+ base.ml3_s.part \
+ base.ml4_s.part \
+ base.m_s.part \
++base.ml_s1.part \
+ base.ml_c.part \
+ base.ml1_c.part \
+ base.m_t.part \
+diff -rupP xkeyboard-config-2.0.orig/rules/base.ml_s1.part xkeyboard-config-2.0/rules/base.ml_s1.part
+--- xkeyboard-config-2.0.orig/rules/base.ml_s1.part 1970-01-01 09:00:00.000000000 +0900
++++ xkeyboard-config-2.0/rules/base.ml_s1.part 2016-06-28 19:59:05.238990192 +0900
+@@ -0,0 +1 @@
++ $inetkbds jp = +jp(henkan)
+diff -rupP xkeyboard-config-2.0.orig/symbols/jp xkeyboard-config-2.0/symbols/jp
+--- xkeyboard-config-2.0.orig/symbols/jp 2016-06-28 19:31:03.046648788 +0900
++++ xkeyboard-config-2.0/symbols/jp 2016-06-28 19:32:57.367215702 +0900
+@@ -105,6 +105,14 @@ xkb_symbols "common" {
+ };
+ };
+
++partial alphanumeric_keys
++xkb_symbols "henkan" {
++ key <XFER> {
++ type[Group1]= "PC_ALT_LEVEL2",
++ symbols[Group1]= [ Henkan, Mode_switch ]
++ };
++};
++
+ // OADG109A map
+ partial alphanumeric_keys
+ xkb_symbols "OADG109A" {
diff --git a/xorg/tests/randr/trandr.c b/xorg/tests/randr/trandr.c
index 4f7be527..6c51a000 100644
--- a/xorg/tests/randr/trandr.c
+++ b/xorg/tests/randr/trandr.c
@@ -143,4 +143,4 @@ main(int argc, char **argv)
}
return 0;
-} \ No newline at end of file
+}
diff --git a/xorg/tests/xdemo/bmp_parser.c b/xorg/tests/xdemo/bmp_parser.c
index 66c050d8..60d86864 100644
--- a/xorg/tests/xdemo/bmp_parser.c
+++ b/xorg/tests/xdemo/bmp_parser.c
@@ -70,7 +70,7 @@ int parse_bmp(char *filename, struct pic_info *pic_info)
if ((fd = open(filename, O_RDONLY)) < 0)
{
- printf("error opeing %s\n", filename);
+ printf("error opening %s\n", filename);
return -1;
}
diff --git a/xorg/tests/xdemo/xdemo.c b/xorg/tests/xdemo/xdemo.c
index f7e6b0ef..cef93274 100644
--- a/xorg/tests/xdemo/xdemo.c
+++ b/xorg/tests/xdemo/xdemo.c
@@ -205,7 +205,7 @@ int drawFont(int count, char *msg)
}
else
{
- printf("XListFonts() reted NULL\n");
+ printf("XListFonts() returned NULL\n");
}
#endif
diff --git a/xorg/tests/xdemo/yosemite.bmp b/xorg/tests/xdemo/yosemite.bmp
index c64aba75..da2e8eed 100644
--- a/xorg/tests/xdemo/yosemite.bmp
+++ b/xorg/tests/xdemo/yosemite.bmp
Binary files differ