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