Commit 899c920e authored by runge's avatar runge

Fixes for MacOSX 10.5. Improve usage of x11 viewer on macosx.

parent 3d0bd736
......@@ -111,7 +111,7 @@ use_ours=0
if [ "X$VNCVIEWERCMD" = "X" ]; then
VNCVIEWERCMD="vncviewer"
export VNCVIEWERCMD
if [ "X$DARWIN_COTVNC" = "X" ]; then
if [ "X$DARWIN_COTVNC" != "X1" ]; then
use_ours=1
fi
fi
......@@ -183,7 +183,7 @@ else
export SSVNC_VIEWER_INTERNAL
fi
if [ "X$DARWIN_COTVNC" = "X" -a "X$VNCVIEWERCMD" = "Xvncviewer" ]; then
if [ "X$DARWIN_COTVNC" != "X1" -a "X$VNCVIEWERCMD" = "Xvncviewer" ]; then
hstr=`$VNCVIEWERCMD -h 2>&1 | head -5`
if echo "$hstr" | grep '^TightVNC.*version 1\.[23]' > /dev/null; then
# we need to avoid raw encoding
......
......@@ -907,8 +907,20 @@ sub xfer {
close($out);
}
'
echo "$cod" > $tf
# xpg_echo will expand \n \r, etc.
# try to unset and then test for it.
shopt -u xpg_echo >/dev/null 2>&1
v='print STDOUT "abc\n";'
echo "$v" > $tf
chmod 700 $tf
lc=`wc -l $tf | awk '{print $1}'`
if [ "X$lc" = "X1" ]; then
echo "$cod" > $tf
else
printf "%s" "$cod" > $tf
echo "" >> $tf
fi
# prime perl
perl -e 'use IO::Socket::INET; select(undef, undef, undef, 0.01)' >/dev/null 2>&1
}
......
......@@ -219,6 +219,7 @@ proc ts_help {} {
- File Transfer (Ultra or TightVNC filexfer)
- View Only (View only client)
- Change VNC Viewer (Realvnc, ultra, etc...)
- X11 viewer MacOSX (use bundled X11 vncviewer)
- Delete Profile... (Delete a saved profile)
- Advanced Options:
......@@ -1090,6 +1091,13 @@ set msg {
If you do not like the VNC Viewer bundled in the package, you can
indicate another one here.
X11 viewer MacOSX:
On MacOSX try to use the bundled X11 vncviewer instead of the
Chicken of the VNC viewer; the Xquartz X server must be installed
(it is by default on 10.5.x) and the DISPLAY variable must be set
(see tip 12 of SSVNC Help to do this manually.)
Advanced Options:
......@@ -1478,6 +1486,13 @@ set msg {
Do not use JPEG: Do not use the jpeg aspect of the tight encoding.
Use X11 vncviewer on MacOSX:
On MacOSX try to use the bundled X11 vncviewer
instead of the Chicken of the VNC viewer;
The Xquartz X server must be installed (it is by
default on 10.5.x) and the DISPLAY variable must
be set (see tip 12 of Help to do this manually.)
Compress Level/Quality: Set TightVNC encoding parameters.
Putty PW: On Windows only: use the supplied password for plink SSH
......@@ -1891,7 +1906,7 @@ proc set_defaults {} {
global mycert svcert crtdir
global use_alpha use_grab use_ssl use_ssh use_sshssl use_viewonly use_fullscreen use_bgr233
global use_nojpeg use_raise_on_beep use_compresslevel use_quality
global use_nojpeg use_raise_on_beep use_compresslevel use_quality use_x11_macosx
global compresslevel_text quality_text
global use_cups use_sound use_smbmnt
global cups_local_server cups_remote_port cups_manage_rcfile cups_x11vnc
......@@ -1923,6 +1938,7 @@ proc set_defaults {} {
set defs(use_alpha) 0
set defs(use_grab) 0
set defs(use_nojpeg) 0
set defs(use_x11_macosx) 0
set defs(use_compresslevel) "default"
set defs(use_quality) "default"
set defs(compresslevel_text) "Compress Level: default"
......@@ -3266,11 +3282,6 @@ proc unix_terminal_cmd {{geometry "+100+100"} {title "xterm-command"} {cmd "echo
if {$uname == "Darwin"} {
global env
set doX 0;
if [info exists env(DISPLAY)] {
if {[in_path "xterm"] != ""} {
set doX 1
}
}
if {! $doX} {
darwin_terminal_cmd $title $cmd $bg
return
......@@ -4515,6 +4526,16 @@ proc launch_unix {hp} {
global darwin_cotvnc
if {$darwin_cotvnc} {
set env(DARWIN_COTVNC) 1
} else {
if [info exists env(DISPLAY)] {
if {$env(DISPLAY) != ""} {
set env(DARWIN_COTVNC) 0
} else {
set env(DARWIN_COTVNC) 1
}
} else {
set env(DARWIN_COTVNC) 1
}
}
set cmd "$cmd $hp"
......@@ -5664,7 +5685,14 @@ proc get_idir_certs {str} {
}
if {$idir == ""} {
if [info exists env(SSVNC_HOME)] {
set t "$env(SSVNC_HOME)/.vnc"
if {! [file isdirectory $t]} {
catch {file mkdir $t}
}
set t "$env(SSVNC_HOME)/.vnc/certs"
if {! [file isdirectory $t]} {
catch {file mkdir $t}
}
if [file isdirectory $t] {
set idir $t
}
......@@ -7216,6 +7244,15 @@ proc load_profile {{parent "."} {infile ""}} {
set last_load [file tail $file]
## regsub {\.vnc$} $last_load "" last_load
global uname darwin_cotvnc
if {$uname == "Darwin"} {
if {$use_x11_macosx} {
set darwin_cotvnc 0;
} else {
set darwin_cotvnc 1;
}
}
mesg "Loaded [file tail $file]"
}
......@@ -7355,6 +7392,8 @@ proc save_profile {{parent "."}} {
regsub { .*$} $p "" p
if {$p == ""} {
set p 0
} elseif {![regexp {^[-0-9][0-9]*$} $p]} {
set p 0
}
if {$p < 0} {
set port $p
......@@ -7395,6 +7434,7 @@ proc save_profile {{parent "."}} {
puts $fh "proxyport=$proxyport"
puts $fh "disp=$vncdisp"
puts $fh "\n\[options\]"
puts $fh "# parameters commented out with '#' indicate the default setting."
if {$include_list != ""} {
load_include $include_list [get_profiles_dir]
......@@ -10771,6 +10811,7 @@ proc set_ts_options {} {
global use_cups use_sound use_smbmnt
global change_vncviewer choose_xserver
global ts_only
global darwin_cotvnc use_x11_macosx uname
if {! $ts_only} {
return
}
......@@ -10824,6 +10865,12 @@ proc set_ts_options {} {
-command {if {$change_vncviewer} {change_vncviewer_dialog}}
incr i
checkbutton .ot.b$i -anchor w -variable use_x11_macosx -text \
"X11 viewer MacOSX" \
-command {if {$use_x11_macosx} {set darwin_cotvnc 0} else {set darwin_cotvnc 1}; catch {destroy .ot}; set_ts_options}
if {$uname != "Darwin"} {.ot.b$i configure -state disabled}
incr i
button .ot.b$i -anchor w -text " Delete Profile..." \
-command {destroy .ot; delete_profile}
incr i
......@@ -11287,9 +11334,9 @@ proc x11vnc_find_adjust {which} {
proc set_options {} {
global use_alpha use_grab use_ssh use_sshssl use_viewonly use_fullscreen use_bgr233
global use_nojpeg use_raise_on_beep use_compresslevel use_quality
global use_nojpeg use_raise_on_beep use_compresslevel use_quality use_x11_macosx
global compresslevel_text quality_text
global env is_windows darwin_cotvnc
global env is_windows darwin_cotvnc uname
global use_listen
global use_x11vnc_find x11vnc_find_widget
global use_x11vnc_xlogin x11vnc_xlogin_widget
......@@ -11364,6 +11411,12 @@ proc set_options {} {
if {$darwin_cotvnc} {.o.b$i configure -state disabled}
incr i
checkbutton .o.b$i -anchor w -variable use_x11_macosx -text \
"Use X11 vncviewer on MacOSX" \
-command {if {$use_x11_macosx} {set darwin_cotvnc 0} else {set darwin_cotvnc 1}; catch {destroy .o}; set_options}
if {$uname != "Darwin"} {.o.b$i configure -state disabled}
incr i
menubutton .o.b$i -anchor w -menu .o.b$i.m -textvariable compresslevel_text -relief groove
set compresslevel_text "Compress Level: $use_compresslevel"
if {$darwin_cotvnc} {.o.b$i configure -state disabled}
......@@ -11764,6 +11817,8 @@ set darwin_cotvnc 0
if {$uname == "Darwin"} {
if {! [info exists env(DISPLAY)]} {
set darwin_cotvnc 1
} elseif {[regexp {/tmp/} $env(DISPLAY)]} {
set darwin_cotvnc 1
}
if [info exists env(SSVNC_HOME)] {
set t "$env(SSVNC_HOME)/.vnc"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment