Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
libvncserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
rasky
libvncserver
Commits
ad02e155
Commit
ad02e155
authored
Jul 09, 2005
by
runge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x11vnc: -grab_buster for XGrabServer deadlock; fix scrolls and copyrect for -clip and -id
parent
8fcf0861
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
682 additions
and
57 deletions
+682
-57
ChangeLog
ChangeLog
+4
-0
ChangeLog
x11vnc/ChangeLog
+5
-0
README
x11vnc/README
+22
-6
tkx11vnc
x11vnc/tkx11vnc
+35
-17
tkx11vnc.h
x11vnc/tkx11vnc.h
+35
-17
x11vnc.1
x11vnc/x11vnc.1
+18
-1
x11vnc.c
x11vnc/x11vnc.c
+563
-16
No files found.
ChangeLog
View file @
ad02e155
2005-07-09 Karl Runge <runge@karlrunge.com>
* x11vnc: -grab_buster for breaking XGrabServer deadlock, fix
scrolls and copyrect for -clip and -id cases.
2005-07-06 Karl Runge <runge@karlrunge.com>
* x11vnc: -gui tray now embeds in systray; more improvements to gui.
...
...
x11vnc/ChangeLog
View file @
ad02e155
2005-07-09 Karl Runge <runge@karlrunge.com>
* add -grab_buster helper thread to break up grabs (might not be
need any longer due to gett XFlush-ing). Fix scrolls and
copyrect for -clip and -id cases.
2005-07-06 Karl Runge <runge@karlrunge.com>
* many improvements to the gui. now embeds into system tray ok.
x11vnc -debug_grabs, -printgui, -nosync
...
...
x11vnc/README
View file @
ad02e155
x11vnc
README
file
Date
:
Wed
Jul
6
22
:
35
:
15
EDT
2005
x11vnc
README
file
Date
:
Sat
Jul
9
00
:
07
:
21
EDT
2005
The
following
information
is
taken
from
these
URLs
:
...
...
@@ -577,10 +577,10 @@ make
I don'
t
have
any
formal
beta
-
testers
for
the
releases
of
x11vnc
,
so
I
'd appreciate any additional testing very much!
I'
d
like
to
release
version
0.7.2
in
Jun
/
Jul
/
2005
sometime
,
here
is
I'
d
like
to
release
version
0.7.2
in
Jun
-
Jul
/
2005
sometime
,
here
is
the
current
tarball
:
RC
-
6
lastmod
:
2005
-
07
-
0
7
[
51
]
x11vnc
-
0.7.2
beta
.
tar
.
gz
RC
-
6
lastmod
:
2005
-
07
-
0
8
[
51
]
x11vnc
-
0.7.2
beta
.
tar
.
gz
There
are
also
some
Linux
,
Solaris
,
and
other
OS
test
binaries
[
52
]
here
.
Please
kick
the
tires
and
report
bugs
,
performance
...
...
@@ -4548,7 +4548,7 @@ x11vnc: a VNC server for real X displays
Here
are
all
of
x11vnc
command
line
options
:
%
x11vnc
-
opts
(
see
below
for
-
help
long
descriptions
)
x11vnc
:
allow
VNC
connections
to
real
X11
displays
.
0.7.2
lastmod
:
2005
-
07
-
0
6
x11vnc
:
allow
VNC
connections
to
real
X11
displays
.
0.7.2
lastmod
:
2005
-
07
-
0
9
x11vnc
options
:
-
display
disp
-
auth
file
...
...
@@ -4602,7 +4602,8 @@ x11vnc options:
-
scr_keys
list
-
scr_term
list
-
scr_keyrepeat
lo
-
hi
-
scr_parms
string
-
fixscreen
string
-
debug_scroll
-
noxrecord
-
debug_grabs
-
noxrecord
-
grab_buster
-
nograb_buster
-
debug_grabs
-
pointer_mode
n
-
input_skip
n
-
speeds
rd
,
bw
,
lat
-
wmdt
string
-
debug_pointer
-
debug_keyboard
...
...
@@ -4648,7 +4649,7 @@ libvncserver options:
% x11vnc -help
x11vnc: allow VNC connections to real X11 displays. 0.7.2 lastmod: 2005-07-0
6
x11vnc: allow VNC connections to real X11 displays. 0.7.2 lastmod: 2005-07-0
9
Typical usage is:
...
...
@@ -5730,6 +5731,21 @@ Options:
currently used by the -scrollcopyrect scheme and to
monitor X server grabs.
-grab_buster Some of the use of the RECORD extension can leave a
-nograb_buster tiny window for XGrabServer deadlock. This is only if
the whole-server grabbing application expects mouse
or keyboard input before releasing the grab. It is
usually a window manager that does this. x11vnc takes
care to avoid the the problem, but if caught x11vnc
will freeze. Without -grab_buster, the only solution
is to go the physical display and give it some input
to satisfy the grabbing app. Or manually kill and
restart the window manager. With -grab_buster, x11vnc
will fork a helper thread and if x11vnc appears to be
stuck in a grab after a period of time (20-30 sec)
then it will inject some user input: button clicks,
Escape, mouse motion, etc to try to break the grab.
-debug_grabs Turn on debugging info printout with respect to
XGrabServer() deadlock for -scrollcopyrect mode.
...
...
x11vnc/tkx11vnc
View file @
ad02e155
...
...
@@ -403,7 +403,7 @@ After selecting a VNC client from the \"Clients -> current\" menu,
you will be presented with a dialog that shows the information
about the VNC client.
You can chose to disconnect the client by clicking on the
You can cho
o
se to disconnect the client by clicking on the
\"
Disconnect
\"
checkbox and pressing
\"
OK
\"
. There will be a
confirmation dialog to doublecheck.
...
...
@@ -500,8 +500,8 @@ to apply the changes, or press \"Cancel\" to skip applying them.
remote-control commands.
-
\"
Ask for Confirmation
\"
toggles whether a popup menu will be presented
at the X display when a new VNC viewer attempts to connect
s
. The person
sitting at the X display can chose to accept or reject the connection
at the X display when a new VNC viewer attempts to connect. The person
sitting at the X display can cho
o
se to accept or reject the connection
or accept the connection in View-Only mode. It corresponds to the
\"
-R accept:popup
\"
and
\"
-R accept:
\"
remote-control commands.
...
...
@@ -540,7 +540,7 @@ the ViewOnly log in aspect: \"Password\" is still required to log in.
set
helptext
(
Misc-Tuning:
)
"
x11vnc has what seems like hundreds of tuning parameters. In this
sub-menu we place some lesser used ones. Most
ly
likely you'll want to
sub-menu we place some lesser used ones. Most likely you'll want to
leave them at their default values, but you can try them out quickly
with the gui to see if they improve things.
"
...
...
@@ -625,7 +625,7 @@ A brief Background on pixels, color, and visuals:
mappings and so provide less variation in kinds of colors.
A visual's
\"
depth
\"
is how many of the pixels are used in the
actual recipe. This may sound wasteful (i.
t
. not using some of the
actual recipe. This may sound wasteful (i.
e
. not using some of the
bits), but for 32bpp (4 billion colors) that is too much and nearly
always only 24 for them are used. The most common Visual seems to
be depth 24 TrueColor at 32bpp. This provides 16 million colors
...
...
@@ -645,7 +645,7 @@ a speedup is achieved because writing graphics data to, say, the 8bit
visual does not destroy the image data in the 24bit visual. Evidently
popup menus can be done very quickly this way: they use the 8bit visual
and when the popup goes away the graphics data in the 24bit visual is
immediately reexposed without having the application redraw
ing
it.
immediately reexposed without having the application redraw it.
Also, some legacy applications can only use 8bpp visuals. But in these
days of high color graphics and web browsers one would like the rest
...
...
@@ -681,7 +681,7 @@ is shared.
Note if the application pops up multiple windows they are not tracked
and shared. So this is not application sharing. The application has to
be very simple (e.g. a simple terminal or the image window on a webcam)
for this mode to be us
e
able.
for this mode to be usable.
"
set
helptext
(
ResizeRotate:
)
"
This sub-menu has some options regarding screens that support the X
...
...
@@ -722,7 +722,7 @@ the screen are still slow today).
This sub-menu has some options for the x11vnc Scroll detection and
CopyRect speedup scheme.
For this mode, x11vnc
\"
spies
\"
on communication be the X server and
For this mode, x11vnc
\"
spies
\"
on communication be
tween
the X server and
applications using the RECORD extension. It looks for various patterns
to detect a scrolled window. This only works for some applications,
fortunately some important ones.
...
...
@@ -2037,9 +2037,11 @@ proc update_menu_vars {{query ""}} {
}
foreach piece
$query_result_list
{
#puts stderr "UMV: $piece"
if
{[
regexp
{
^
([
^:][^:]
*
)
:
(
.
*
)
$}
$piece
m0 item val]
}
{
if
{[
info exists menu_var
(
$item
)]}
{
set
old
$menu_var
(
$item
)
#puts stderr " $old"
if
{
$val
==
"N/A"
}
{
continue
}
...
...
@@ -2885,6 +2887,11 @@ proc make_menu_items {} {
global bfont ffont beginner_mode simple_gui_created
global helptext helpremote helplabel
# some tweaks...
if
{![
info exists menu_var
(
deny
)]}
{
set
menu_var
(
deny
)
0
}
set
case
""
;
set
L_casc
""
set
L_casc_count 0
...
...
@@ -3234,7 +3241,14 @@ proc do_props {{msg ""}} {
global have_labelframes ffont bfont
global props_buttons icon_noadvanced
if
![
info exists props_accept]
{
if
[
info exists menu_var
(
deny
)]
{
if
{
$menu_var
(
deny
)
==
$unset_str
||
$menu_var
(
deny
)
==
0
}
{
set
props_accept 1
}
else
{
set
props_accept 0
}
}
else
{
set
menu_var
(
deny
)
0
set
props_accept 1
}
set
prop0_accept
$props_accept
...
...
@@ -3729,15 +3743,18 @@ proc make_icon {} {
global tray_embed tray_running
env
global x11vnc_client_file client_tail client_str saved_clients_str
global client_balloon_id
global bfont sfont ffont
global bfont sfont
snfont
ffont
global icon_minimal gui_start_mode
global window_view_posted menu_var x11vnc_gui_geom
set
min_x 24
set
min_y 24
set
font
$bfont
set
mfont
$font
if
{
$tray_embed
}
{
set
font
$sfont
set
mfont
$snfont
}
if
{[
info exists
env
(
X11VNC_ICON_FONT
)]}
{
set
font
$env
(
X11VNC_ICON_FONT
)
...
...
@@ -3768,15 +3785,16 @@ proc make_icon {} {
label
$l
-text
$lab
-borderwidth
$bw
-font
$font
icon_win_cfg 0
set
window_view_posted 0
pack
$l
-fill
both
-expand
1
set
menu
"
$l
.menu"
menu
$menu
-tearoff
0
-postcommand
{
set
window_view_posted 0
}
$menu
add
command
-font
$font
-label
"Properties"
-command
do_props
$menu
add
command
-font
$font
-label
"Help"
-command
"menu_help Tray"
$menu
add
command
-font
$
m
font
-label
"Properties"
-command
do_props
$menu
add
command
-font
$
m
font
-label
"Help"
-command
"menu_help Tray"
$menu
add separator
$menu
add
command
-font
$font
-label
"New Client"
-command
do_new_client
$menu
add
command
-font
$font
-label
"Disconnect All"
-command
do_disconnect_all
$menu
add
command
-font
$
m
font
-label
"New Client"
-command
do_new_client
$menu
add
command
-font
$
m
font
-label
"Disconnect All"
-command
do_disconnect_all
$menu
add separator
set
wv
"
$menu
.casc1"
...
...
@@ -3789,9 +3807,9 @@ proc make_icon {} {
-command
"do_var WindowView"
\
-variable
menu_var
(
WindowView
)
}
$menu
add cascade
-font
$font
-label
"Window View"
-menu
$wv
$menu
add cascade
-font
$
m
font
-label
"Window View"
-menu
$wv
$menu
add
command
-font
$font
-label
"Stop x11vnc"
-command
clean_icon_exit
$menu
add
command
-font
$
m
font
-label
"Stop x11vnc"
-command
clean_icon_exit
bind
$icon_win
<ButtonPress-1>
"pmenu
$menu
%X %Y"
bind
$icon_win
<ButtonPress-3>
"pmenu
$menu
%X %Y"
...
...
@@ -4698,7 +4716,7 @@ global helpall helptext helpremote helplabel hostname osname
global all_settings reply_xdisplay always_update
global max_text_height max_text_width
global menu_var unset_str menus_disabled
global bfont ffont old_labels have_labelframes
global bfont ffont
sfont snfont
old_labels have_labelframes
global connected_to_x11vnc
global delay_sleep extra_sleep extra_sleep_split
global cache_all_query_vars
...
...
x11vnc/tkx11vnc.h
View file @
ad02e155
...
...
@@ -409,7 +409,7 @@
"you will be presented with a dialog that shows the information
\n
"
"about the VNC client.
\n
"
"
\n
"
"You can chose to disconnect the client by clicking on the
\n
"
"You can cho
o
se to disconnect the client by clicking on the
\n
"
"
\\\"
Disconnect
\\\"
checkbox and pressing
\\\"
OK
\\\"
. There will be a
\n
"
"confirmation dialog to doublecheck.
\n
"
"
\n
"
...
...
@@ -506,8 +506,8 @@
" remote-control commands.
\n
"
"
\n
"
" -
\\\"
Ask for Confirmation
\\\"
toggles whether a popup menu will be presented
\n
"
" at the X display when a new VNC viewer attempts to connect
s
. The person
\n
"
" sitting at the X display can chose to accept or reject the connection
\n
"
" at the X display when a new VNC viewer attempts to connect. The person
\n
"
" sitting at the X display can cho
o
se to accept or reject the connection
\n
"
" or accept the connection in View-Only mode. It corresponds to the
\n
"
"
\\\"
-R accept:popup
\\\"
and
\\\"
-R accept:
\\\"
remote-control commands.
\n
"
"
\n
"
...
...
@@ -546,7 +546,7 @@
"
\n
"
" set helptext(Misc-Tuning:)
\"\n
"
"x11vnc has what seems like hundreds of tuning parameters. In this
\n
"
"sub-menu we place some lesser used ones. Most
ly
likely you'll want to
\n
"
"sub-menu we place some lesser used ones. Most likely you'll want to
\n
"
"leave them at their default values, but you can try them out quickly
\n
"
"with the gui to see if they improve things.
\n
"
"
\"\n
"
...
...
@@ -631,7 +631,7 @@
" mappings and so provide less variation in kinds of colors.
\n
"
"
\n
"
" A visual's
\\\"
depth
\\\"
is how many of the pixels are used in the
\n
"
" actual recipe. This may sound wasteful (i.
t
. not using some of the
\n
"
" actual recipe. This may sound wasteful (i.
e
. not using some of the
\n
"
" bits), but for 32bpp (4 billion colors) that is too much and nearly
\n
"
" always only 24 for them are used. The most common Visual seems to
\n
"
" be depth 24 TrueColor at 32bpp. This provides 16 million colors
\n
"
...
...
@@ -651,7 +651,7 @@
"visual does not destroy the image data in the 24bit visual. Evidently
\n
"
"popup menus can be done very quickly this way: they use the 8bit visual
\n
"
"and when the popup goes away the graphics data in the 24bit visual is
\n
"
"immediately reexposed without having the application redraw
ing
it.
\n
"
"immediately reexposed without having the application redraw it.
\n
"
"
\n
"
"Also, some legacy applications can only use 8bpp visuals. But in these
\n
"
"days of high color graphics and web browsers one would like the rest
\n
"
...
...
@@ -687,7 +687,7 @@
"Note if the application pops up multiple windows they are not tracked
\n
"
"and shared. So this is not application sharing. The application has to
\n
"
"be very simple (e.g. a simple terminal or the image window on a webcam)
\n
"
"for this mode to be us
e
able.
\n
"
"for this mode to be usable.
\n
"
"
\"\n
"
" set helptext(ResizeRotate:)
\"\n
"
"This sub-menu has some options regarding screens that support the X
\n
"
...
...
@@ -728,7 +728,7 @@
"This sub-menu has some options for the x11vnc Scroll detection and
\n
"
"CopyRect speedup scheme.
\n
"
"
\n
"
"For this mode, x11vnc
\\\"
spies
\\\"
on communication be the X server and
\n
"
"For this mode, x11vnc
\\\"
spies
\\\"
on communication be
tween
the X server and
\n
"
"applications using the RECORD extension. It looks for various patterns
\n
"
"to detect a scrolled window. This only works for some applications,
\n
"
"fortunately some important ones.
\n
"
...
...
@@ -2043,9 +2043,11 @@
" }
\n
"
"
\n
"
" foreach piece $query_result_list {
\n
"
"#puts stderr
\"
UMV: $piece
\"\n
"
" if {[regexp {^([^:][^:]*):(.*)$} $piece m0 item val]} {
\n
"
" if {[info exists menu_var($item)]} {
\n
"
" set old $menu_var($item)
\n
"
"#puts stderr
\"
$old
\"\n
"
" if {$val ==
\"
N/A
\"
} {
\n
"
" continue
\n
"
" }
\n
"
...
...
@@ -2891,6 +2893,11 @@
" global bfont ffont beginner_mode simple_gui_created
\n
"
" global helptext helpremote helplabel
\n
"
"
\n
"
" # some tweaks...
\n
"
" if {![info exists menu_var(deny)]} {
\n
"
" set menu_var(deny) 0
\n
"
" }
\n
"
"
\n
"
" set case
\"\"
;
\n
"
" set L_casc
\"\"\n
"
" set L_casc_count 0
\n
"
...
...
@@ -3240,7 +3247,14 @@
" global have_labelframes ffont bfont
\n
"
" global props_buttons icon_noadvanced
\n
"
"
\n
"
" if ![info exists props_accept] {
\n
"
" if [info exists menu_var(deny)] {
\n
"
" if {$menu_var(deny) == $unset_str || $menu_var(deny) == 0} {
\n
"
" set props_accept 1
\n
"
" } else {
\n
"
" set props_accept 0
\n
"
" }
\n
"
" } else {
\n
"
" set menu_var(deny) 0
\n
"
" set props_accept 1
\n
"
" }
\n
"
" set prop0_accept $props_accept
\n
"
...
...
@@ -3735,15 +3749,18 @@
" global tray_embed tray_running env
\n
"
" global x11vnc_client_file client_tail client_str saved_clients_str
\n
"
" global client_balloon_id
\n
"
" global bfont sfont ffont
\n
"
" global bfont sfont
snfont
ffont
\n
"
" global icon_minimal gui_start_mode
\n
"
" global window_view_posted menu_var x11vnc_gui_geom
\n
"
" set min_x 24
\n
"
" set min_y 24
\n
"
"
\n
"
" set font $bfont
\n
"
" set mfont $font
\n
"
"
\n
"
" if {$tray_embed} {
\n
"
" set font $sfont
\n
"
" set mfont $snfont
\n
"
" }
\n
"
" if {[info exists env(X11VNC_ICON_FONT)]} {
\n
"
" set font $env(X11VNC_ICON_FONT)
\n
"
...
...
@@ -3774,15 +3791,16 @@
" label $l -text $lab -borderwidth $bw -font $font
\n
"
" icon_win_cfg 0
\n
"
"
\n
"
"
\n
"
" set window_view_posted 0
\n
"
" pack $l -fill both -expand 1
\n
"
" set menu
\"
$l.menu
\"\n
"
" menu $menu -tearoff 0 -postcommand {set window_view_posted 0}
\n
"
" $menu add command -font $font -label
\"
Properties
\"
-command do_props
\n
"
" $menu add command -font $font -label
\"
Help
\"
-command
\"
menu_help Tray
\"\n
"
" $menu add command -font $
m
font -label
\"
Properties
\"
-command do_props
\n
"
" $menu add command -font $
m
font -label
\"
Help
\"
-command
\"
menu_help Tray
\"\n
"
" $menu add separator
\n
"
" $menu add command -font $font -label
\"
New Client
\"
-command do_new_client
\n
"
" $menu add command -font $font -label
\"
Disconnect All
\"
-command do_disconnect_all
\n
"
" $menu add command -font $
m
font -label
\"
New Client
\"
-command do_new_client
\n
"
" $menu add command -font $
m
font -label
\"
Disconnect All
\"
-command do_disconnect_all
\n
"
" $menu add separator
\n
"
"
\n
"
" set wv
\"
$menu.casc1
\"\n
"
...
...
@@ -3795,9 +3813,9 @@
" -command
\"
do_var WindowView
\"
\\\n
"
" -variable menu_var(WindowView)
\n
"
" }
\n
"
" $menu add cascade -font $font -label
\"
Window View
\"
-menu $wv
\n
"
" $menu add cascade -font $
m
font -label
\"
Window View
\"
-menu $wv
\n
"
"
\n
"
" $menu add command -font $font -label
\"
Stop x11vnc
\"
-command clean_icon_exit
\n
"
" $menu add command -font $
m
font -label
\"
Stop x11vnc
\"
-command clean_icon_exit
\n
"
"
\n
"
" bind $icon_win <ButtonPress-1>
\"
pmenu $menu %X %Y
\"\n
"
" bind $icon_win <ButtonPress-3>
\"
pmenu $menu %X %Y
\"\n
"
...
...
@@ -4704,7 +4722,7 @@
"global all_settings reply_xdisplay always_update
\n
"
"global max_text_height max_text_width
\n
"
"global menu_var unset_str menus_disabled
\n
"
"global bfont ffont old_labels have_labelframes
\n
"
"global bfont ffont
sfont snfont
old_labels have_labelframes
\n
"
"global connected_to_x11vnc
\n
"
"global delay_sleep extra_sleep extra_sleep_split
\n
"
"global cache_all_query_vars
\n
"
...
...
x11vnc/x11vnc.1
View file @
ad02e155
...
...
@@ -2,7 +2,7 @@
.TH X11VNC "1" "July 2005" "x11vnc " "User Commands"
.SH NAME
x11vnc - allow VNC connections to real X11 displays
version: 0.7.2, lastmod: 2005-07-0
6
version: 0.7.2, lastmod: 2005-07-0
9
.SH SYNOPSIS
.B x11vnc
[OPTION]...
...
...
@@ -1378,6 +1378,23 @@ Disable any use of the RECORD extension. This is
currently used by the \fB-scrollcopyrect\fR scheme and to
monitor X server grabs.
.PP
\fB-grab_buster,\fR \fB-nograb_buster\fR
.IP
Some of the use of the RECORD extension can leave a
tiny window for XGrabServer deadlock. This is only if
the whole-server grabbing application expects mouse
or keyboard input before releasing the grab. It is
usually a window manager that does this. x11vnc takes
care to avoid the the problem, but if caught x11vnc
will freeze. Without \fB-grab_buster,\fR the only solution
is to go the physical display and give it some input
to satisfy the grabbing app. Or manually kill and
restart the window manager. With \fB-grab_buster,\fR x11vnc
will fork a helper thread and if x11vnc appears to be
stuck in a grab after a period of time (20-30 sec)
then it will inject some user input: button clicks,
Escape, mouse motion, etc to try to break the grab.
.PP
\fB-debug_grabs\fR
.IP
Turn on debugging info printout with respect to
...
...
x11vnc/x11vnc.c
View file @
ad02e155
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment