x11vnc: Fix problems in --without-x builds. Fix crash

with -QD query for dbus info.  Adjust window size for
small screens in -gui.  Improve F1 help for xdm, etc.
include ssvnc 1.0.25 source.
pull/1/head
runge 15 years ago
parent 018f152bc5
commit 5764cd3fdd

@ -1,3 +1,9 @@
2009-12-28 Karl Runge <runge@karlrunge.com>
* x11vnc: Fix problems in --without-x builds. Fix crash
with -QD query for dbus info. Adjust window size for
small screens in -gui. Improve F1 help for xdm, etc.
include ssvnc 1.0.25 source.
2009-12-24 Karl Runge <runge@karlrunge.com> 2009-12-24 Karl Runge <runge@karlrunge.com>
* x11vnc: prepare_x11vnc_dist.sh for 0.9.10. -xdummy_xvfb, * x11vnc: prepare_x11vnc_dist.sh for 0.9.10. -xdummy_xvfb,
-svc_xdummy_xvfb and -create_x shorthand. lxde session. -svc_xdummy_xvfb and -create_x shorthand. lxde session.

File diff suppressed because it is too large Load Diff

@ -563,6 +563,9 @@ static void be_helper_pid(char *dpy_str) {
if (ms < 50) ms = 50; if (ms < 50) ms = 50;
#if NO_X11
fprintf(stderr, "be_helper_pid: not compiled with X11.\n");
#else
dpy = XOpenDisplay(dpy_str); dpy = XOpenDisplay(dpy_str);
ticker_atom = XInternAtom(dpy, ticker_atom_str, False); ticker_atom = XInternAtom(dpy, ticker_atom_str, False);
@ -583,6 +586,7 @@ static void be_helper_pid(char *dpy_str) {
} }
} }
} }
#endif
exit(0); exit(0);
} }
@ -895,7 +899,7 @@ static void delete_win(Window win) {
static void recurse_search(int level, int level_max, Window top, Window app, int *nw) { static void recurse_search(int level, int level_max, Window top, Window app, int *nw) {
Window w, r, parent, *list = NULL; Window w, r, parent, *list = NULL;
unsigned int nchild; unsigned int nchild;
int ok; int ok = 0;
if (appshare_debug > 1) { if (appshare_debug > 1) {
fprintf(stderr, "level: %d level_max: %d top: 0x%lx app: 0x%lx\n", level, level_max, top, app); fprintf(stderr, "level: %d level_max: %d top: 0x%lx app: 0x%lx\n", level, level_max, top, app);
@ -904,6 +908,7 @@ static void recurse_search(int level, int level_max, Window top, Window app, int
return; return;
} }
#if !NO_X11
ok = XQueryTree(dpy, top, &r, &parent, &list, &nchild); ok = XQueryTree(dpy, top, &r, &parent, &list, &nchild);
if (ok) { if (ok) {
int i; int i;
@ -930,6 +935,7 @@ static void recurse_search(int level, int level_max, Window top, Window app, int
if (list) { if (list) {
XFree(list); XFree(list);
} }
#endif
} }
static void add_app(Window app) { static void add_app(Window app) {

@ -652,7 +652,8 @@ if [ -e "$xserver_path" -a "X$root" = "X" -a "X$runit" != "X" ]; then
warn "" warn ""
warn "Please restart Xdummy now." warn "Please restart Xdummy now."
exit 0 exit 0
elif [ ! -O $new ]; then fi
if [ ! -O $new ]; then
warn "file \"$new\" not owned by us!" warn "file \"$new\" not owned by us!"
ls -l $new ls -l $new
exit 1 exit 1

@ -17,6 +17,7 @@ SYNOPSIS
ssvnc [host][:display] ssvnc [host][:display]
ssvnc [saved-profile-name] ssvnc [saved-profile-name]
ssvnc [options] [host-or-profile] ssvnc [options] [host-or-profile]
ssvnc -cmd [ssvnc_cmd-args]
ssvnc --help ssvnc --help
DESCRIPTION DESCRIPTION
@ -33,6 +34,12 @@ OPTIONS
--help Starts up the GUI as though the 'Help' button was pressed to --help Starts up the GUI as though the 'Help' button was pressed to
show the main Help panel. show the main Help panel.
-cmd [ssvnc_cmd-args]
Launch the ssvnc_cmd utility command directly (no GUI) with the
given arguments (for use when ssvnc_cmd is not in one's PATH.)
If neither ssvnc_cmd nor ssvncviewer is in PATH, one can launch
the viewer directly via: ssvnc -cmd -viewer [viewer-args]
-profiles -profiles
List the saved SSVNC profiles you have created. A profile is a List the saved SSVNC profiles you have created. A profile is a
destination host with specific parameter settings. destination host with specific parameter settings.
@ -63,11 +70,12 @@ OPTIONS
Make the Profile Selection Dialog window bigger. Same as Make the Profile Selection Dialog window bigger. Same as
SSVNC_BIGGER_DIALOG=1. SSVNC_BIGGER_DIALOG=1.
-noenc Start off in a mode where a 'No Encryption' check button is -noenc Start off in a mode where a 'No Encryption' check button is
present. You can toggle the mode with Ctrl-E. Same as present. You can toggle the mode with Ctrl-E. Same as
SSVNC_DISABLE_ENCRYPTION_BUTTON=1. Or noenc=1 in ~/.ssvncrc. SSVNC_DISABLE_ENCRYPTION_BUTTON=1. Or noenc=1 in ~/.ssvncrc.
Selecting no encryption is the same as the vnc:// and Vnc:// Selecting no encryption is the same as the vnc:// and Vnc://
prefixes described below. -enc implies the opposite. prefixes described below. The -noenc mode is now the default,
use -enc or noenc=0 for the opposite behavior.
-killstunnel -killstunnel
On Windows, automatically terminate the STUNNEL process when the On Windows, automatically terminate the STUNNEL process when the
@ -271,7 +279,7 @@ if [ -f "$dir/util/ultraftp.jar" ]; then
export SSVNC_ULTRA_FTP_JAR export SSVNC_ULTRA_FTP_JAR
fi fi
if [ "X$1" = "X-cmd" ]; then if [ "X$1" = "X-cmd" -o "X$1" = "X--cmd" ]; then
shift shift
exec ssvnc_cmd "$@" exec ssvnc_cmd "$@"
elif [ "X$WISH" = "Xwish" ]; then elif [ "X$WISH" = "Xwish" ]; then

@ -25,13 +25,16 @@
# #
# ssvnc_cmd [ss_vncviewer-args] hostname:N [vncviewer-args] # ssvnc_cmd [ss_vncviewer-args] hostname:N [vncviewer-args]
# #
# if, instead, this script is named "tightvncviewer" it calls the # if, instead, this script is named "tightvncviewer" or "-viewer" is the
# vncviewer directly and must be invoked as: # first argument it calls the vncviewer directly (there is no encryption)
# and must be invoked as:
# #
# tightvncviewer [vncviewer-args] hostname:N # tightvncviewer [vncviewer-args] hostname:N
# or
# ssvnc_cmd -viewer [vncviewer-args] hostname:N
# #
# In both cases, "hostname:N" is the host and VNC display to connect to, # In both cases, "hostname:N" is the host and VNC display to connect to,
# e.g. snoopy:0 # e.g. snoopy:0. (-listen N and -appshare N modes works too.)
# #
# See the script util/ss_vncviewer for details about its arguments: # See the script util/ss_vncviewer for details about its arguments:
# #
@ -240,6 +243,15 @@ if [ "X$1" = "X-ssl" ]; then
base="ssvnc_cmd" base="ssvnc_cmd"
fi fi
do_viewer_directly=""
if [ "X$1" = "X-viewer" ]; then
do_viewer_directly=1
shift
fi
if [ "X$base" = "Xtightvncviewer" ]; then
do_viewer_directly=1
fi
# If ours (and not cotvnc), force the use of tight encoding for localhost # If ours (and not cotvnc), force the use of tight encoding for localhost
# redir connection: # redir connection:
# #
@ -260,13 +272,13 @@ if [ $use_ours = 1 ]; then
fi fi
fi fi
if [ "X$base" = "Xtightvncviewer" ]; then if [ "X$do_viewer_directly" = "X1" ]; then
$VNCVIEWERCMD -encodings 'copyrect tight zrle zlib hextile' "$@" $VNCVIEWERCMD -encodings 'copyrect tight zrle zlib hextile' "$@"
else else
ss_vncviewer "$@" -encodings 'copyrect tight zrle zlib hextile' ss_vncviewer "$@" -encodings 'copyrect tight zrle zlib hextile'
fi fi
else else
if [ "X$base" = "Xtightvncviewer" ]; then if [ "X$do_viewer_directly" = "X1" ]; then
$VNCVIEWERCMD "$@" $VNCVIEWERCMD "$@"
else else
ss_vncviewer "$@" ss_vncviewer "$@"

@ -33,6 +33,15 @@ proc center_win {w} {
update update
} }
proc small_height {} {
set H [winfo screenheight .]
if {$H < 700} {
return 1
} else {
return 0
}
}
proc mac_raise {} { proc mac_raise {} {
global uname global uname
if {$uname == "Darwin"} { if {$uname == "Darwin"} {
@ -67,6 +76,9 @@ proc line_count {{str ""} {pad 0}} {
proc scroll_text {fr {w 80} {h 35}} { proc scroll_text {fr {w 80} {h 35}} {
global help_font is_windows scroll_text_focus global help_font is_windows scroll_text_focus
if {$h == 35 && [small_height]} {
set h 28
}
catch {destroy $fr} catch {destroy $fr}
frame $fr -bd 0 frame $fr -bd 0
@ -88,6 +100,9 @@ proc scroll_text {fr {w 80} {h 35}} {
proc scroll_text_dismiss {fr {w 80} {h 35}} { proc scroll_text_dismiss {fr {w 80} {h 35}} {
global help_font global help_font
if {$h == 35 && [small_height]} {
set h 28
}
scroll_text $fr $w $h scroll_text $fr $w $h
set up $fr set up $fr
@ -354,7 +369,11 @@ proc help {} {
} }
toplev .h toplev .h
scroll_text_dismiss .h.f 82 37 set h 37
if [small_height] {
set h 26
}
scroll_text_dismiss .h.f 82 $h
center_win .h center_win .h
wm title .h "SSL/SSH VNC Viewer Help" wm title .h "SSL/SSH VNC Viewer Help"
@ -1693,7 +1712,11 @@ proc ssvnc_escape_help {} {
proc help_certs {} { proc help_certs {} {
toplev .ch toplev .ch
scroll_text_dismiss .ch.f 87 33 set h 33
if [small_height] {
set h 28
}
scroll_text_dismiss .ch.f 87 $h
center_win .ch center_win .ch
wm resizable .ch 1 0 wm resizable .ch 1 0
@ -2506,7 +2529,11 @@ set msg {
proc help_fetch_cert {{selfsigned 1}} { proc help_fetch_cert {{selfsigned 1}} {
toplev .fh toplev .fh
scroll_text_dismiss .fh.f 85 35 set h 35
if [small_height] {
set h 28
}
scroll_text_dismiss .fh.f 85 $h
center_win .fh center_win .fh
wm resizable .fh 1 0 wm resizable .fh 1 0
@ -3566,7 +3593,11 @@ proc check_debug_netstat {port str wn} {
toplev .dbns toplev .dbns
scroll_text_dismiss .dbns.f 82 35 set h 35
if [small_height] {
set h 28
}
scroll_text_dismiss .dbns.f 82 $h
center_win .dbns center_win .dbns
.dbns.f.t insert end "LOOKING FOR PORT: $port\n\n$str" .dbns.f.t insert end "LOOKING FOR PORT: $port\n\n$str"
jiggle_text .dbns.f.t jiggle_text .dbns.f.t
@ -5189,6 +5220,10 @@ proc skip_non_self_signed {w hp} {
proc fetch_dialog {cert_text hp hpnew ok n} { proc fetch_dialog {cert_text hp hpnew ok n} {
toplev .fetch toplev .fetch
if [small_height] {
set n 28
}
scroll_text_dismiss .fetch.f 90 $n scroll_text_dismiss .fetch.f 90 $n
if {$ok} { if {$ok} {
@ -5868,6 +5903,11 @@ proc check_accepted_certs {{probe_only 0}} {
} else { } else {
set n [expr $n + 1] set n [expr $n + 1]
} }
if [small_height] {
if {$n > 26} {
set n 26
}
}
toplev .acert toplev .acert
scroll_text .acert.f 83 $n scroll_text .acert.f 83 $n
@ -9005,11 +9045,13 @@ proc create_cert {{name ""}} {
wm title .ccrt "Create SSL Certificate" wm title .ccrt "Create SSL Certificate"
global uname global uname
if {$uname == "Darwin"} { set h 27
scroll_text .ccrt.f 80 20 if [small_height] {
} else { set h 14
scroll_text .ccrt.f 80 30 } elseif {$uname == "Darwin"} {
set h 20
} }
scroll_text .ccrt.f 80 $h
set msg { set msg {
This dialog helps you to create a simple Self-Signed SSL certificate. This dialog helps you to create a simple Self-Signed SSL certificate.
@ -9451,11 +9493,13 @@ proc import_cert {} {
global scroll_text_focus global scroll_text_focus
set scroll_text_focus 0 set scroll_text_focus 0
global uname global uname
if {$uname == "Darwin"} { set h 19
scroll_text .icrt.f 90 16 if [small_height] {
} else { set h 12
scroll_text .icrt.f 90 20 } elseif {$uname == "Darwin"} {
set h 16
} }
scroll_text .icrt.f 90 $h
set scroll_text_focus 1 set scroll_text_focus 1
set msg { set msg {
@ -9530,11 +9574,13 @@ TCQ+tbQ/DOiTXGKx1nlcKoPdkG+QVQVJthlQcpam
$w.e configure -state disabled $w.e configure -state disabled
label .icrt.plab -anchor w -text "Paste Certificate here: (extra blank lines above or below are OK)" label .icrt.plab -anchor w -text "Paste Certificate here: (extra blank lines above or below are OK)"
if {$uname == "Darwin"} { set h 22
scroll_text .icrt.paste 90 11 if [small_height] {
} else { set h 11
scroll_text .icrt.paste 90 22 } elseif {$uname == "Darwin"} {
set h 11
} }
scroll_text .icrt.paste 90 $h
button .icrt.cancel -text "Cancel" -command {destroy .icrt; catch {raise .c}} button .icrt.cancel -text "Cancel" -command {destroy .icrt; catch {raise .c}}
bind .icrt <Escape> {destroy .icrt; catch {raise .c}} bind .icrt <Escape> {destroy .icrt; catch {raise .c}}
@ -9577,20 +9623,29 @@ proc save_cert {hp} {
global cert_text global cert_text
toplev .scrt toplev .scrt
wm title .scrt "Import SSL Certificate" wm title .scrt "Import/Save SSL Certificate"
global scroll_text_focus global scroll_text_focus
set scroll_text_focus 0 set scroll_text_focus 0
global uname global uname
global accepted_cert_dialog_in_progress global accepted_cert_dialog_in_progress
set h 20
if {$accepted_cert_dialog_in_progress} { if {$accepted_cert_dialog_in_progress} {
set mode "accepted" set mode "accepted"
scroll_text .scrt.f 90 15 set h 15
if [small_height] {
set h 11
}
} else { } else {
set mode "normal" set mode "normal"
scroll_text .scrt.f 90 20 set h 20
if [small_height] {
set h 16
}
} }
scroll_text .scrt.f 90 $h
set scroll_text_focus 1 set scroll_text_focus 1
set msg1 { set msg1 {
@ -9647,7 +9702,11 @@ proc save_cert {hp} {
set import_file "" set import_file ""
entry $w.e -width 40 -textvariable import_file entry $w.e -width 40 -textvariable import_file
scroll_text .scrt.paste 90 23 set h 22
if [small_height] {
set h 10
}
scroll_text .scrt.paste 90 $h
button .scrt.cancel -text "Cancel" -command {destroy .scrt; catch {raise .c}} button .scrt.cancel -text "Cancel" -command {destroy .scrt; catch {raise .c}}
bind .scrt <Escape> {destroy .scrt; catch {raise .c}} bind .scrt <Escape> {destroy .scrt; catch {raise .c}}
@ -11358,7 +11417,11 @@ proc ts_xlogin_dialog {} {
toplev .xlog toplev .xlog
wm title .xlog "X Login Greeter" wm title .xlog "X Login Greeter"
scroll_text .xlog.f 80 33 set h 33
if [small_height] {
set h 28
}
scroll_text .xlog.f 80 $h
global ts_xlogin global ts_xlogin
@ -11569,7 +11632,11 @@ proc ts_x11vnc_opts_dialog {} {
toplev .x11v toplev .x11v
wm title .x11v "x11vnc Options" wm title .x11v "x11vnc Options"
scroll_text .x11v.f 80 23 set h 23
if [small_height] {
set h 21
}
scroll_text .x11v.f 80 $h
global ts_x11vnc_opts ts_x11vnc_path ts_x11vnc_autoport choose_x11vnc_opts global ts_x11vnc_opts ts_x11vnc_path ts_x11vnc_autoport choose_x11vnc_opts
global additional_port_redirs_list global additional_port_redirs_list
@ -11699,7 +11766,11 @@ proc ts_cups_dialog {} {
global cups_local_server cups_remote_port cups_manage_rcfile ts_cups_manage_rcfile cups_x11vnc global cups_local_server cups_remote_port cups_manage_rcfile ts_cups_manage_rcfile cups_x11vnc
global cups_local_smb_server cups_remote_smb_port global cups_local_smb_server cups_remote_smb_port
scroll_text .cups.f 80 30 set h 30
if [small_height] {
set h 24
}
scroll_text .cups.f 80 $h
set msg { set msg {
@ -11844,11 +11915,13 @@ proc cups_dialog {} {
} }
global uname global uname
if {$uname == "Darwin"} { set h 33
scroll_text .cups.f 80 25 if [small_height] {
} else { set h 17
scroll_text .cups.f } elseif {$uname == "Darwin"} {
set h 24
} }
scroll_text .cups.f 80 $h
set msg { set msg {
@ -12210,11 +12283,13 @@ proc sound_dialog {} {
wm title .snd "ESD/ARTSD Sound Tunnelling" wm title .snd "ESD/ARTSD Sound Tunnelling"
global uname global uname
if {$uname == "Darwin"} { set h 28
scroll_text .snd.f 80 20 if [small_height] {
} else { set h 14
scroll_text .snd.f 80 30 } elseif {$uname == "Darwin"} {
set h 20
} }
scroll_text .snd.f 80 $h
set msg { set msg {
Sound tunnelling to a sound daemon requires SSH be used to set up the Sound tunnelling to a sound daemon requires SSH be used to set up the
@ -12765,7 +12840,11 @@ proc smb_help_me_decide {} {
wm title .smbwiz $title wm title .smbwiz $title
set id " " set id " "
scroll_text .smbwiz.f 100 40 set h 40
if [small_height] {
set h 30
}
scroll_text .smbwiz.f 100 $h
set msg { set msg {
For now you will have to verify the following information manually. For now you will have to verify the following information manually.
@ -12979,11 +13058,13 @@ proc smb_dialog {} {
global help_font global help_font
global uname global uname
if {$uname == "Darwin"} { set h 33
scroll_text .smb.f 80 25 if [small_height] {
} else { set h 17
scroll_text .smb.f } elseif {$uname == "Darwin"} {
set h 24
} }
scroll_text .smb.f 80 $h
set msg { set msg {
Windows/Samba Filesystem mounting requires SSH be used to set up the SMB Windows/Samba Filesystem mounting requires SSH be used to set up the SMB
@ -13679,7 +13760,11 @@ proc help_ssvncviewer_opts {} {
proc show_viewer_help {} { proc show_viewer_help {} {
toplev .vhlp toplev .vhlp
scroll_text_dismiss .vhlp.f 83 35 set h 35
if [small_height] {
set h 30
}
scroll_text_dismiss .vhlp.f 83 $h
center_win .vhlp center_win .vhlp
wm resizable .vhlp 1 0 wm resizable .vhlp 1 0
@ -13710,9 +13795,9 @@ proc change_vncviewer_dialog {} {
global help_font global help_font
if {$ts_only} { if {$ts_only} {
eval text .chviewer.t -width 90 -height 18 $help_font eval text .chviewer.t -width 90 -height 16 $help_font
} else { } else {
eval text .chviewer.t -width 90 -height 29 $help_font eval text .chviewer.t -width 90 -height 27 $help_font
} }
apply_bg .chviewer.t apply_bg .chviewer.t
@ -13726,8 +13811,7 @@ proc change_vncviewer_dialog {} {
You can specify your own command line options below if you like (and try to You can specify your own command line options below if you like (and try to
avoid setting any others in this GUI under "Options"). avoid setting any others in this GUI under "Options").
If the path to the program name has any spaces it in, please surround it with If the path to the program name has spaces it in, surround it with double quotes:
double quotes, e.g.
"C:\Program Files\My Vnc Viewer\VNCVIEWER.EXE" "C:\Program Files\My Vnc Viewer\VNCVIEWER.EXE"
@ -13739,11 +13823,10 @@ proc change_vncviewer_dialog {} {
Since the command line options differ between them greatly, if you know it Since the command line options differ between them greatly, if you know it
is of the RealVNC 4.x flavor, indicate on the check box. Otherwise we guess. is of the RealVNC 4.x flavor, indicate on the check box. Otherwise we guess.
To have SSVNC act as a general STUNNEL redirector (no VNC) set the viewer to To have SSVNC act as a general STUNNEL redirector (no VNC) set the viewer to be
be "xmessage OK" or "xmessage <port>" or "sleep n" or "sleep n <port>" (or "xmessage OK" or "xmessage <port>" or "sleep n" or "sleep n <port>" (or "NOTEPAD"
"NOTEPAD" on Windows). The default listen port is 5930. The destination is on Windows). The default listen port is 5930. The destination is set in "VNC
set in "VNC Host:Display" (for a remote port less then 200 use the negative Host:Display" (for a remote port less than 200 use the negative of the port value).
of the port value).
} }
if {$ts_only} { if {$ts_only} {
@ -13785,11 +13868,11 @@ proc port_redir_dialog {} {
wm title .redirs "Additional Port Redirections (via SSH)" wm title .redirs "Additional Port Redirections (via SSH)"
global help_font uname global help_font uname
if {$uname == "Darwin"} { set h 35
eval text .redirs.t -width 80 -height 35 $help_font if [small_height] {
} else { set h 27
eval text .redirs.t -width 80 -height 35 $help_font
} }
eval text .redirs.t -width 80 -height $h $help_font
apply_bg .redirs.t apply_bg .redirs.t
set msg { set msg {
@ -13856,11 +13939,12 @@ proc stunnel_sec_dialog {} {
wm title .stlsec "STUNNEL Local Port Protections" wm title .stlsec "STUNNEL Local Port Protections"
global help_font uname global help_font uname
if {$uname == "Darwin"} {
scroll_text .stlsec.f 82 37 set h 37
} else { if [small_height] {
scroll_text .stlsec.f 82 37 set h 26
} }
scroll_text .stlsec.f 82 $h
apply_bg .stlsec.f apply_bg .stlsec.f
@ -13924,7 +14008,11 @@ proc disable_ssl_workarounds_dialog {} {
wm title .sslwrk "Disable SSL Workarounds" wm title .sslwrk "Disable SSL Workarounds"
global help_font uname global help_font uname
scroll_text .sslwrk.f 86 36 set h 36
if [small_height] {
set h 24
}
scroll_text .sslwrk.f 86 $h
apply_bg .sslwrk.f apply_bg .sslwrk.f
@ -14020,7 +14108,11 @@ proc ultra_dsm_dialog {} {
wm title .ultradsm "UltraVNC DSM Encryption Plugin" wm title .ultradsm "UltraVNC DSM Encryption Plugin"
global help_font global help_font
scroll_text .ultradsm.f 85 40 set h 40
if [small_height] {
set h 22
}
scroll_text .ultradsm.f 85 $h
set msg { set msg {
On Unix and MacOSX with the provided SSVNC vncviewer, you can connect to an On Unix and MacOSX with the provided SSVNC vncviewer, you can connect to an
@ -14200,7 +14292,11 @@ proc ssh_known_hosts_dialog {} {
wm title .sshknownhosts "Private SSH KnownHosts file" wm title .sshknownhosts "Private SSH KnownHosts file"
global help_font global help_font
scroll_text .sshknownhosts.f 80 31 set h 31
if [small_height] {
set h 23
}
scroll_text .sshknownhosts.f 80 $h
set msg { set msg {
Private SSH KnownHosts file: Private SSH KnownHosts file:
@ -14318,7 +14414,11 @@ proc multilisten_dialog {} {
wm title .multil "Multiple LISTEN Connections" wm title .multil "Multiple LISTEN Connections"
global help_font global help_font
eval text .multil.t -width 84 -height 35 $help_font set h 35
if [small_height] {
set h 30
}
eval text .multil.t -width 84 -height $h $help_font
apply_bg .multil.t apply_bg .multil.t
@ -14805,11 +14905,14 @@ proc port_knocking_dialog {} {
global help_font global help_font
global uname global uname
if {$uname == "Darwin"} {
scroll_text .pk.f 85 25 set h 35
} else { if [small_height] {
scroll_text .pk.f 85 set h 22
} elseif {$uname == "Darwin"} {
set h 25
} }
scroll_text .pk.f 85 $h
set msg { set msg {
Description: Description:
@ -15355,18 +15458,18 @@ proc set_ts_adv_options {} {
} }
proc change_vncviewer_dialog_wrap {} { proc change_vncviewer_dialog_wrap {} {
global change_vncviewer ts_uss_button global change_vncviewer ts_uss_button is_windows
if {$change_vncviewer} { if {$change_vncviewer} {
change_vncviewer_dialog change_vncviewer_dialog
catch {tkwait window .chviewer} catch {tkwait window .chviewer}
} }
if {$change_vncviewer} { if {$change_vncviewer || $is_windows} {
catch {.oa.ss configure -state disabled} catch {.oa.ss configure -state disabled}
} else { } else {
catch {.oa.ss configure -state normal} catch {.oa.ss configure -state normal}
} }
if [info exists ts_uss_button] { if [info exists ts_uss_button] {
if {$change_vncviewer} { if {$change_vncviewer || $is_windows} {
catch {$ts_uss_button configure -state disabled} catch {$ts_uss_button configure -state disabled}
} else { } else {
catch {$ts_uss_button configure -state normal} catch {$ts_uss_button configure -state normal}
@ -15529,7 +15632,7 @@ proc set_advanced_options {} {
set t1 " Unix ssvncviewer ..." set t1 " Unix ssvncviewer ..."
if {$uname == "Darwin" } { regsub {^ *} $t1 "" t1 } if {$uname == "Darwin" } { regsub {^ *} $t1 "" t1 }
button .oa.ss -anchor w -text $t1 -command set_ssvncviewer_options button .oa.ss -anchor w -text $t1 -command set_ssvncviewer_options
pack .oa.ss -side top -fill x pack .oa.ss -side top -fill x
if {$is_windows} { if {$is_windows} {
.oa.ss configure -state disabled .oa.ss configure -state disabled
} }
@ -15817,7 +15920,7 @@ proc set_ssvncviewer_options {} {
frame $fr.b$j -relief $relief -borderwidth 2 frame $fr.b$j -relief $relief -borderwidth 2
label $fr.b$j.l1 -font $ffont -anchor w -text "Add any extra options for ssvncviewer that you want."; label $fr.b$j.l1 -font $ffont -anchor w -text "Add any extra options for ssvncviewer that you want.";
label $fr.b$j.l2 -font $ffont -anchor w -text "For example: -16bpp -noshm etc. See Help for a list."; label $fr.b$j.l2 -font $ffont -anchor w -text "For example: -16bpp -appshare -noshm etc. See Help for a list.";
global ssvnc_extra_opts global ssvnc_extra_opts
frame $fr.b$j.f frame $fr.b$j.f

@ -2,13 +2,13 @@
.\" ** The above line should force tbl to be a preprocessor ** .\" ** The above line should force tbl to be a preprocessor **
.\" Man page for the SSVNC vncviewer .\" Man page for the SSVNC vncviewer
.\" .\"
.\" Copyright (C) 2006-2008 Karl J. Runge <runge@karlrunge.com> .\" Copyright (C) 2006-2009 Karl J. Runge <runge@karlrunge.com>
.\" .\"
.\" You may distribute under the terms of the GNU General Public .\" You may distribute under the terms of the GNU General Public
.\" License as specified in the file LICENCE.TXT that comes with the .\" License as specified in the file LICENCE.TXT that comes with the
.\" TightVNC distribution. .\" TightVNC distribution.
.\" .\"
.TH ssvnc 1 "September 2009" "" "SSVNC" .TH ssvnc 1 "December 2009" "" "SSVNC"
.SH NAME .SH NAME
ssvnc \- a GUI wrapper for SSL and SSH VNC connections. ssvnc \- a GUI wrapper for SSL and SSH VNC connections.
.SH SYNOPSIS .SH SYNOPSIS
@ -24,6 +24,10 @@ ssvnc \- a GUI wrapper for SSL and SSH VNC connections.
.RI [\| options \|]\ [\| host-or-profile \] .RI [\| options \|]\ [\| host-or-profile \]
.br .br
.B ssvnc .B ssvnc
.IR \-cmd
.RI [\| ssvnc_cmd-args \|]
.br
.B ssvnc
.IR \--help .IR \--help
.br .br
.SH DESCRIPTION .SH DESCRIPTION
@ -47,10 +51,10 @@ Or supply user@hostname:display and click on the "Use SSH" option, then
press the "Connect" button to connect to the server via an SSH tunnel. press the "Connect" button to connect to the server via an SSH tunnel.
E.g. "fred@far-away.east:0". E.g. "fred@far-away.east:0".
As an easter egg, we note it is also possible to disable the use of SSL/SSH Note it is also possible to disable the use of SSL/SSH
encryption tunnels by using a vnc:// or Vnc:// prefix before encryption tunnels by using a vnc:// or Vnc:// prefix before
host:display. Shift+Ctrl-E is a short-cut to add/remove it. host:display. Shift+Ctrl-E is a short-cut to add/remove it.
See also the \fB-noenc\fR option below. See also the \fB-noenc\fR option below for the 'No Encryption' button.
Normally you do not specify any command line options. You simply Normally you do not specify any command line options. You simply
run \fBssvnc\fR and use the GUI that starts up. run \fBssvnc\fR and use the GUI that starts up.
@ -70,6 +74,12 @@ See below and the application Help for more information on the modes.
You can also place certain settings in your ~/.ssvncrc, see the You can also place certain settings in your ~/.ssvncrc, see the
SSVNC Help panel ('Tips') for more info. SSVNC Help panel ('Tips') for more info.
The \fB-cmd\fR option does not start the GUI, it runs the command
line utility \fBssvnc_cmd\fR directly with the given arguments.
\fBssvnc_cmd\fR can launch the viewer directly (\fB-viewer ...\fR)
or, by default, the \fBss_vncviewer\fR SSL/SSH tunnel wrapper script.
See its help output for more information.
There are also some command line options described as follows. There are also some command line options described as follows.
.SH OPTIONS .SH OPTIONS
.TP .TP
@ -80,6 +90,12 @@ Prints out to the terminal a brief description and the options.
Starts up the GUI as though the 'Help' button was pressed to show the Starts up the GUI as though the 'Help' button was pressed to show the
main Help panel. main Help panel.
.TP .TP
\fB\-cmd\fR \fI[ssvnc_cmd-args]\fR
Launch the ssvnc_cmd utility command directly (no GUI) with the given
arguments (for use when ssvnc_cmd is not in one's PATH.) If neither
ssvnc_cmd nor ssvncviewer is in PATH, one can launch the viewer
directly via: ssvnc -cmd -viewer [viewer-args]
.TP
\fB\-profiles\fR \fB\-profiles\fR
List the saved SSVNC profiles you have created. A profile List the saved SSVNC profiles you have created. A profile
is a destination host with specific parameter settings. is a destination host with specific parameter settings.
@ -122,7 +138,8 @@ Start off in a mode where a 'No Encryption' check button is present.
You can toggle the mode with Ctrl-E. You can toggle the mode with Ctrl-E.
Same as SSVNC_DISABLE_ENCRYPTION_BUTTON=1. Or \fInoenc=1\fR in ~/.ssvncrc. Same as SSVNC_DISABLE_ENCRYPTION_BUTTON=1. Or \fInoenc=1\fR in ~/.ssvncrc.
Selecting no encryption is the same as the vnc:// and Vnc:// prefixes Selecting no encryption is the same as the vnc:// and Vnc:// prefixes
described below. \fB-enc\fR implies the opposite. described below. The \fB\-noenc\fR mode is now the default, use \fB-enc\fR
or \fInoenc=0\fR for the opposite behavior.
.TP .TP
\fB\-killstunnel\fR \fB\-killstunnel\fR
On Windows, automatically terminate the STUNNEL process when the viewer On Windows, automatically terminate the STUNNEL process when the viewer

@ -11,7 +11,7 @@
.\" License as specified in the file LICENCE.TXT that comes with the .\" License as specified in the file LICENCE.TXT that comes with the
.\" TightVNC distribution. .\" TightVNC distribution.
.\" .\"
.TH ssvncviewer 1 "September 2009" "" "SSVNC" .TH ssvncviewer 1 "December 2009" "" "SSVNC"
.SH NAME .SH NAME
ssvncviewer \- an X viewer client for VNC ssvncviewer \- an X viewer client for VNC
.SH SYNOPSIS .SH SYNOPSIS
@ -465,6 +465,18 @@ as possible instead of waiting until the end of the current
framebuffer update coming in. Helps 'pipeline' the updates. framebuffer update coming in. Helps 'pipeline' the updates.
This is currently the default, use \fB-nopipeline\fR to disable. This is currently the default, use \fB-nopipeline\fR to disable.
.TP .TP
\fB\-appshare\fR
Enable features for use with x11vnc's \fB\-appshare\fR mode where
instead of sharing the full desktop only the application's
windows are shared. Viewer multilisten mode is used to
create the multiple windows: \fB\-multilisten\fR is implied.
See 'x11vnc \fB\-appshare\fR \fB\-help\fR' more information on the mode.
Features enabled in the viewer under \fB\-appshare\fR are:
Minimum extra text in the title, auto \fB\-ycrop\fR is disabled,
x11vnc \fB\-remote_prefix\fR X11VNC_APPSHARE_CMD: message channel,
x11vnc initial window position hints. See also Escape Keys
below for additional key and mouse bindings.
.TP
\fB\-escape \fR\fIstr\fR \fB\-escape \fR\fIstr\fR
This sets the 'Escape Keys' modifier sequence and enables This sets the 'Escape Keys' modifier sequence and enables
escape keys mode. When the modifier keys escape sequence escape keys mode. When the modifier keys escape sequence
@ -511,6 +523,18 @@ Clicking Mouse Button3 brings up the Popup Menu.
The above mappings are \fBalways\fR active in ViewOnly mode, unless you set The above mappings are \fBalways\fR active in ViewOnly mode, unless you set
the Escape Keys value to 'never'. the Escape Keys value to 'never'.
x11vnc -appshare hot-keys: x11vnc has a simple application sharing mode
that enables the viewer-side to move, resize, or raise the remote toplevel
windows. To enable it, hold down Shift + the Escape Keys and press these:
Arrow keys: move the remote window around in its desktop.
PageUp/PageDn/Home/End: resize the remote window.
+/-: raise or lower the remote window.
M or Button1 move win to local position; D or Button3: delete remote win.
If the Escape Keys value below is set to 'default' then a default list of If the Escape Keys value below is set to 'default' then a default list of
of modifier keys is used. For Unix it is: Alt_L,Super_L and for MacOSX it of modifier keys is used. For Unix it is: Alt_L,Super_L and for MacOSX it
is Control_L,Meta_L. Note: the Super_L key usually has a Windows(TM) Flag is Control_L,Meta_L. Note: the Super_L key usually has a Windows(TM) Flag

@ -5920,7 +5920,9 @@ char *process_remote_cmd(char *cmd, int stringonly) {
grab_state(&ptr_grabbed, &kbd_grabbed); grab_state(&ptr_grabbed, &kbd_grabbed);
snprintf(buf, bufn, "aro=%s:%d,%d", p, ptr_grabbed, kbd_grabbed); snprintf(buf, bufn, "aro=%s:%d,%d", p, ptr_grabbed, kbd_grabbed);
rfbLog("remote_cmd: ptr,kbd: %s\n", buf); if (dpy) {
rfbLog("remote_cmd: ptr,kbd: %s\n", buf);
}
goto qry; goto qry;
} }

@ -561,6 +561,9 @@ char *dbus_session(void) {
if (dbus_env != NULL && strlen(dbus_env) > 0) { if (dbus_env != NULL && strlen(dbus_env) > 0) {
return ""; return "";
} }
if (!dpy) {
return "";
}
#if NO_X11 #if NO_X11
return ""; return "";
#else #else

@ -2532,7 +2532,7 @@ proc see_if_ok {query item expected} {
} }
proc get_default_vars {} { proc get_default_vars {} {
global default_var global default_var env
set qry [all_query_vars] set qry [all_query_vars]
@ -2550,6 +2550,11 @@ proc get_default_vars {} {
if {$i > 50} { if {$i > 50} {
set qargs [list "-QD" $q] set qargs [list "-QD" $q]
set a [run_remote_cmd $qargs] set a [run_remote_cmd $qargs]
if [info exists env(TKX11VNC_PRINT_ALL_QD)] {
puts $q
puts $a
puts "---------------"
}
if {$all != ""} { if {$all != ""} {
append all "," append all ","
} }
@ -2561,6 +2566,11 @@ proc get_default_vars {} {
if {$q != ""} { if {$q != ""} {
set qargs [list "-QD" $q] set qargs [list "-QD" $q]
set a [run_remote_cmd $qargs] set a [run_remote_cmd $qargs]
if [info exists env(TKX11VNC_PRINT_ALL_QD)] {
puts $q
puts $a
puts "---------------"
}
if {$all != ""} { if {$all != ""} {
append all "," append all ","
} }
@ -5982,6 +5992,8 @@ proc get_settings_rcfile {} {
set qst $hmm set qst $hmm
} elseif {$item == "nevershared"} { } elseif {$item == "nevershared"} {
set qst $hmm set qst $hmm
} elseif {$item == "gui"} {
set qst $hmm
} }
if {![info exists menu_var($item)]} { if {![info exists menu_var($item)]} {
@ -6956,15 +6968,19 @@ if {$tk_version < 8.4} {
set screen_height [winfo screenheight .] set screen_height [winfo screenheight .]
set screen_width [winfo screenwidth .] set screen_width [winfo screenwidth .]
if {$screen_height < 500} { if {$screen_height < 700} {
# short screen, PDA? # short screen, netbook?
set max_text_height 22 set max_text_height 30
set text_height 13 if {$screen_height < 500} {
if {$screen_height <= 360} { # short screen, PDA?
# very short. set max_text_height 22
set max_text_height 16 set text_height 13
set max_text_width 60 if {$screen_height <= 360} {
set text_height 11 # very short.
set max_text_height 16
set max_text_width 60
set text_height 11
}
} }
} }
if {[info exists env(X11VNC_GUI_TEXT_HEIGHT)]} { if {[info exists env(X11VNC_GUI_TEXT_HEIGHT)]} {

@ -2543,7 +2543,7 @@ char gui_code[] = "";
"}\n" "}\n"
"\n" "\n"
"proc get_default_vars {} {\n" "proc get_default_vars {} {\n"
" global default_var\n" " global default_var env\n"
"\n" "\n"
" set qry [all_query_vars]\n" " set qry [all_query_vars]\n"
"\n" "\n"
@ -2561,6 +2561,11 @@ char gui_code[] = "";
" if {$i > 50} {\n" " if {$i > 50} {\n"
" set qargs [list \"-QD\" $q]\n" " set qargs [list \"-QD\" $q]\n"
" set a [run_remote_cmd $qargs]\n" " set a [run_remote_cmd $qargs]\n"
" if [info exists env(TKX11VNC_PRINT_ALL_QD)] {\n"
" puts $q\n"
" puts $a\n"
" puts \"---------------\"\n"
" }\n"
" if {$all != \"\"} {\n" " if {$all != \"\"} {\n"
" append all \",\"\n" " append all \",\"\n"
" }\n" " }\n"
@ -2572,6 +2577,11 @@ char gui_code[] = "";
" if {$q != \"\"} {\n" " if {$q != \"\"} {\n"
" set qargs [list \"-QD\" $q]\n" " set qargs [list \"-QD\" $q]\n"
" set a [run_remote_cmd $qargs]\n" " set a [run_remote_cmd $qargs]\n"
" if [info exists env(TKX11VNC_PRINT_ALL_QD)] {\n"
" puts $q\n"
" puts $a\n"
" puts \"---------------\"\n"
" }\n"
" if {$all != \"\"} {\n" " if {$all != \"\"} {\n"
" append all \",\"\n" " append all \",\"\n"
" }\n" " }\n"
@ -5993,6 +6003,8 @@ char gui_code[] = "";
" set qst $hmm\n" " set qst $hmm\n"
" } elseif {$item == \"nevershared\"} {\n" " } elseif {$item == \"nevershared\"} {\n"
" set qst $hmm\n" " set qst $hmm\n"
" } elseif {$item == \"gui\"} {\n"
" set qst $hmm\n"
" }\n" " }\n"
"\n" "\n"
" if {![info exists menu_var($item)]} {\n" " if {![info exists menu_var($item)]} {\n"
@ -6967,15 +6979,19 @@ char gui_code[] = "";
"\n" "\n"
"set screen_height [winfo screenheight .]\n" "set screen_height [winfo screenheight .]\n"
"set screen_width [winfo screenwidth .]\n" "set screen_width [winfo screenwidth .]\n"
"if {$screen_height < 500} {\n" "if {$screen_height < 700} {\n"
" # short screen, PDA?\n" " # short screen, netbook?\n"
" set max_text_height 22\n" " set max_text_height 30\n"
" set text_height 13\n" " if {$screen_height < 500} {\n"
" if {$screen_height <= 360} {\n" " # short screen, PDA?\n"
" # very short.\n" " set max_text_height 22\n"
" set max_text_height 16\n" " set text_height 13\n"
" set max_text_width 60\n" " if {$screen_height <= 360} {\n"
" set text_height 11\n" " # very short.\n"
" set max_text_height 16\n"
" set max_text_width 60\n"
" set text_height 11\n"
" }\n"
" }\n" " }\n"
"}\n" "}\n"
"if {[info exists env(X11VNC_GUI_TEXT_HEIGHT)]} {\n" "if {[info exists env(X11VNC_GUI_TEXT_HEIGHT)]} {\n"

@ -444,6 +444,9 @@ void unixpw_screen(int init) {
x = nfix(dpy_x / 2 - strlen(log) * char_w, dpy_x); x = nfix(dpy_x / 2 - strlen(log) * char_w, dpy_x);
y = (int) (dpy_y / 3.5); y = (int) (dpy_y / 3.5);
if (unixpw_system_greeter) {
y = (int) (dpy_y / 3);
}
if (scaling) { if (scaling) {
x = (int) (x * scale_fac_x); x = (int) (x * scale_fac_x);
@ -461,7 +464,7 @@ void unixpw_screen(int init) {
pscreen = screen; pscreen = screen;
} }
if (pscreen && pscreen->width >= 640) { if (pscreen && pscreen->width >= 640 && pscreen->height >= 480) {
rfbDrawString(pscreen, &default6x13Font, 8, 2+1*13, "F1-Help:", white_pixel()); rfbDrawString(pscreen, &default6x13Font, 8, 2+1*13, "F1-Help:", white_pixel());
} }
f1_help = 0; f1_help = 0;
@ -473,8 +476,8 @@ void unixpw_screen(int init) {
char moo[] = "Press 'Escape' for System Greeter"; char moo[] = "Press 'Escape' for System Greeter";
rfbDrawString(pscreen, &default8x16Font, x-90, y-30, moo, white_pixel()); rfbDrawString(pscreen, &default8x16Font, x-90, y-30, moo, white_pixel());
} else { } else {
char moo1[] = "Press 'Escape' for New Session via System Greeter,"; char moo1[] = "Press 'Escape' for a New Session via System Greeter, or";
char moo2[] = "or otherwise login here for Existing Session: "; char moo2[] = "otherwise login here to connect to an Existing Session:";
rfbDrawString(pscreen, &default6x13Font, x-110, y-38, moo1, white_pixel()); rfbDrawString(pscreen, &default6x13Font, x-110, y-38, moo1, white_pixel());
rfbDrawString(pscreen, &default6x13Font, x-110, y-25, moo2, white_pixel()); rfbDrawString(pscreen, &default6x13Font, x-110, y-25, moo2, white_pixel());
} }
@ -1210,7 +1213,7 @@ int su_verify(char *user, char *pass, char *cmd, char *rbuf, int *rbuf_size, int
* auth sufficient pam_self.so * auth sufficient pam_self.so
* it may be commented out without problem. * it may be commented out without problem.
*/ */
for (i=0; i<sizeof(instr); i++) { for (i=0; i< (int) sizeof(instr); i++) {
instr[i] = '\0'; instr[i] = '\0';
} }
@ -1253,7 +1256,7 @@ int su_verify(char *user, char *pass, char *cmd, char *rbuf, int *rbuf_size, int
if (i < -1) i = -1; if (i < -1) i = -1;
continue; continue;
} }
if (j >= sizeof(instr)-1) { if (j >= (int) sizeof(instr)-1) {
rfbLog("su_verify: problem finding Password:\n"); rfbLog("su_verify: problem finding Password:\n");
fflush(stderr); fflush(stderr);
return 0; return 0;
@ -1700,14 +1703,20 @@ void unixpw_keystroke(rfbBool down, rfbKeySym keysym, int init) {
} else if (! down) { } else if (! down) {
return; return;
} }
if (keysym == XK_F1 && pscreen && pscreen->width >= 640) { if (keysym == XK_F1) {
char h1[] = "F1-Help: For 'login:' type in the username and press Enter, then for 'Password:' type in the password."; char h1[] = "F1-Help: For 'login:' type in the username and press Enter, then for 'Password:' enter the password.";
char hf[] = " Once logged in, username's X session will be searched for and if found then attached to.";
char hc[] = " Once logged in, username's X session is sought and attached to, otherwise a new session is created.";
char hx[] = " Once logged in, username's X session is sought and attached to, otherwise a login greeter is presented.";
char h2[] = " Specify options after a ':' like this: username:opt,opt=val,... Where an opt may be any of:"; char h2[] = " Specify options after a ':' like this: username:opt,opt=val,... Where an opt may be any of:";
char h3[] = " scale=... (n/m); scale_cursor=... (sc=); solid (so); id=; repeat; clear_mods (cm); clear_keys (ck);"; char h3[] = " scale=... (n/m); scale_cursor=... (sc=); solid (so); id=; repeat; clear_mods (cm); clear_keys (ck);";
char h4[] = " clear_all (ca); speeds=... (sp=); readtimeout=... (rd=) rotate=... (ro=); noncache (nc) (nc=n);"; char h4[] = " clear_all (ca); speeds=... (sp=); readtimeout=... (rd=) rotate=... (ro=); noncache (nc) (nc=n);";
char h5[] = " geom=WxHxD (ge=); nodisplay=... (nd=); viewonly (vo); tag=...; gnome kde twm fvwm mwm dtwm wmaker"; char h5[] = " geom=WxHxD (ge=); nodisplay=... (nd=); viewonly (vo); tag=...; gnome kde twm fvwm mwm dtwm wmaker";
char h6[] = " xfce lxde enlightenment Xsession failsafe. Examples: fred:3/4,so,cm wilma:geom=1024x768x16,kde"; char h6[] = " xfce lxde enlightenment Xsession failsafe. Examples: fred:3/4,so,cm wilma:geom=1024x768x16,kde";
int ch = 13, p; int ch = 13, p;
if (!pscreen || pscreen->width < 640 || pscreen->height < 480) {
return;
}
if (f1_help) { if (f1_help) {
p = black_pixel(); p = black_pixel();
f1_help = 0; f1_help = 0;
@ -1717,13 +1726,24 @@ void unixpw_keystroke(rfbBool down, rfbKeySym keysym, int init) {
unixpw_last_try_time = time(NULL) + 45; unixpw_last_try_time = time(NULL) + 45;
} }
rfbDrawString(pscreen, &default6x13Font, 8, 2+1*ch, h1, p); rfbDrawString(pscreen, &default6x13Font, 8, 2+1*ch, h1, p);
rfbDrawString(pscreen, &default6x13Font, 8, 2+2*ch, h2, p); if (use_dpy == NULL) {
rfbDrawString(pscreen, &default6x13Font, 8, 2+3*ch, h3, p); ;
rfbDrawString(pscreen, &default6x13Font, 8, 2+4*ch, h4, p); } else if (strstr(use_dpy, "cmd=FINDDISPLAY")) {
rfbDrawString(pscreen, &default6x13Font, 8, 2+5*ch, h5, p); rfbDrawString(pscreen, &default6x13Font, 8, 2+2*ch, hf, p);
rfbDrawString(pscreen, &default6x13Font, 8, 2+6*ch, h6, p); } else if (strstr(use_dpy, "cmd=FINDCREATEDISPLAY")) {
if (strstr(use_dpy, "xdmcp")) {
rfbDrawString(pscreen, &default6x13Font, 8, 2+2*ch, hx, p);
} else {
rfbDrawString(pscreen, &default6x13Font, 8, 2+2*ch, hc, p);
}
}
rfbDrawString(pscreen, &default6x13Font, 8, 2+3*ch, h2, p);
rfbDrawString(pscreen, &default6x13Font, 8, 2+4*ch, h3, p);
rfbDrawString(pscreen, &default6x13Font, 8, 2+5*ch, h4, p);
rfbDrawString(pscreen, &default6x13Font, 8, 2+6*ch, h5, p);
rfbDrawString(pscreen, &default6x13Font, 8, 2+7*ch, h6, p);
if (!f1_help) { if (!f1_help) {
rfbDrawString(pscreen, &default6x13Font, 8, 2+1*ch, "F1-Help:", white_pixel()); rfbDrawString(pscreen, &default6x13Font, 8, 2+1*ch, "F1-Help:", white_pixel());
} }
unixpw_mark(); unixpw_mark();
return; return;

@ -2,7 +2,7 @@
.TH X11VNC "1" "December 2009" "x11vnc " "User Commands" .TH X11VNC "1" "December 2009" "x11vnc " "User Commands"
.SH NAME .SH NAME
x11vnc - allow VNC connections to real X11 displays x11vnc - allow VNC connections to real X11 displays
version: 0.9.10, lastmod: 2009-12-24 version: 0.9.10, lastmod: 2009-12-27
.SH SYNOPSIS .SH SYNOPSIS
.B x11vnc .B x11vnc
[OPTION]... [OPTION]...

@ -5018,6 +5018,7 @@ int main(int argc, char* argv[]) {
} }
if (dpy && !xrandr && !got_noxrandr) { if (dpy && !xrandr && !got_noxrandr) {
#if !NO_X11
Atom trap_xrandr = XInternAtom(dpy, "X11VNC_TRAP_XRANDR", True); Atom trap_xrandr = XInternAtom(dpy, "X11VNC_TRAP_XRANDR", True);
if (trap_xrandr != None) { if (trap_xrandr != None) {
if (! quiet) { if (! quiet) {
@ -5025,6 +5026,7 @@ int main(int argc, char* argv[]) {
} }
xrandr = 1; xrandr = 1;
} }
#endif
} }
#ifdef MACOSX #ifdef MACOSX

@ -47,7 +47,7 @@ int xtrap_base_event_type = 0;
int xdamage_base_event_type = 0; int xdamage_base_event_type = 0;
/* date +'lastmod: %Y-%m-%d' */ /* date +'lastmod: %Y-%m-%d' */
char lastmod[] = "0.9.10 lastmod: 2009-12-24"; char lastmod[] = "0.9.10 lastmod: 2009-12-27";
/* X display info */ /* X display info */

Loading…
Cancel
Save