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
99a557d6
Commit
99a557d6
authored
18 years ago
by
runge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x11vnc: clean up compiler warnings.
parent
56eb45a5
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
120 additions
and
84 deletions
+120
-84
8to24.c
x11vnc/8to24.c
+1
-0
README
x11vnc/README
+1
-1
connections.c
x11vnc/connections.c
+1
-0
cursor.c
x11vnc/cursor.c
+3
-1
gui.c
x11vnc/gui.c
+4
-0
keyboard.c
x11vnc/keyboard.c
+1
-0
macosx.c
x11vnc/macosx.c
+13
-0
macosxCG.c
x11vnc/macosxCG.c
+2
-0
pointer.c
x11vnc/pointer.c
+1
-0
scan.c
x11vnc/scan.c
+16
-6
screen.c
x11vnc/screen.c
+0
-1
solid.c
x11vnc/solid.c
+1
-0
user.c
x11vnc/user.c
+1
-1
userinput.c
x11vnc/userinput.c
+63
-73
userinput.h
x11vnc/userinput.h
+3
-0
win_utils.c
x11vnc/win_utils.c
+1
-1
xwrappers.c
x11vnc/xwrappers.c
+4
-0
xwrappers.h
x11vnc/xwrappers.h
+4
-0
No files found.
x11vnc/8to24.c
View file @
99a557d6
...
...
@@ -4,6 +4,7 @@
#include "scan.h"
#include "util.h"
#include "win_utils.h"
#include "xwrappers.h"
int
multivis_count
=
0
;
int
multivis_24count
=
0
;
...
...
This diff is collapsed.
Click to expand it.
x11vnc/README
View file @
99a557d6
x11vnc
README
file
Date
:
Thu
Dec
28
00
:
14
:
27
EST
2006
x11vnc
README
file
Date
:
Thu
Dec
28
10
:
42
:
34
EST
2006
The
following
information
is
taken
from
these
URLs
:
...
...
This diff is collapsed.
Click to expand it.
x11vnc/connections.c
View file @
99a557d6
...
...
@@ -17,6 +17,7 @@
#include "xwrappers.h"
#include "xevents.h"
#include "macosxCG.h"
#include "userinput.h"
/*
* routines for handling incoming, outgoing, etc connections
...
...
This diff is collapsed.
Click to expand it.
x11vnc/cursor.c
View file @
99a557d6
...
...
@@ -1227,6 +1227,8 @@ unsigned long get_cursor_serial(int mode) {
return
last_cursor
;
}
else
if
(
mode
==
1
)
{
return
(
unsigned
long
)
last_index
;
}
else
{
return
(
unsigned
long
)
last_index
;
}
}
...
...
@@ -1320,7 +1322,7 @@ fprintf(stderr, "sc: %d %d/%d %d - %d %d\n", serial, w, h, cbpp, xhot, yhot);
oldest
=
i
;
oldtime
=
curs_times
[
i
];
}
if
(
serial
==
curs_index
[
i
])
{
if
(
serial
==
(
int
)
curs_index
[
i
])
{
/*
* got a hit with an existing cursor,
* use that one.
...
...
This diff is collapsed.
Click to expand it.
x11vnc/gui.c
View file @
99a557d6
...
...
@@ -267,7 +267,9 @@ if (0) fprintf(stderr, "run_gui: %s -- %d %d\n", gui_xdisplay, connect_to_x11vnc
initialize_x11vnc_remote_prop
();
}
#ifdef MACOSX
macjump:
#endif
signal
(
SIGUSR1
,
sigusr1
);
got_sigusr1
=
0
;
...
...
@@ -630,7 +632,9 @@ void do_gui(char *opts, int sleep) {
}
XCloseDisplay_wr
(
test_dpy
);
#ifdef MACOSX
startit:
#endif
if
(
start_x11vnc
)
{
...
...
This diff is collapsed.
Click to expand it.
x11vnc/keyboard.c
View file @
99a557d6
...
...
@@ -14,6 +14,7 @@
#include "v4l.h"
#include "linuxfb.h"
#include "uinput.h"
#include "macosx.h"
void
get_keystate
(
int
*
keystate
);
void
clear_modifiers
(
int
init
);
...
...
This diff is collapsed.
Click to expand it.
x11vnc/macosx.c
View file @
99a557d6
...
...
@@ -48,12 +48,15 @@ void macosx_event_loop(void) {
return
;
}
char
*
macosx_console_guess
(
char
*
str
,
int
*
fd
)
{
if
(
!
str
||
!
fd
)
{}
return
NULL
;
}
void
macosx_key_command
(
rfbBool
down
,
rfbKeySym
keysym
,
rfbClientPtr
client
)
{
if
(
!
down
||
!
keysym
||
!
client
)
{}
return
;
}
void
macosx_pointer_command
(
int
mask
,
int
x
,
int
y
,
rfbClientPtr
client
)
{
if
(
!
mask
||
!
x
||
!
y
||
!
client
)
{}
return
;
}
char
*
macosx_get_fb_addr
(
void
)
{
...
...
@@ -63,35 +66,45 @@ int macosx_get_cursor(void) {
return
0
;
}
int
macosx_get_cursor_pos
(
int
*
x
,
int
*
y
)
{
if
(
!
x
||
!
y
)
{}
return
0
;
}
void
macosx_send_sel
(
char
*
str
,
int
len
)
{
if
(
!
str
||
!
len
)
{}
return
;
}
void
macosx_set_sel
(
char
*
str
,
int
len
)
{
if
(
!
str
||
!
len
)
{}
return
;
}
int
macosx_valid_window
(
Window
w
,
XWindowAttributes
*
a
)
{
if
(
!
w
||
!
a
)
{}
return
0
;
}
Status
macosx_xquerytree
(
Window
w
,
Window
*
root_return
,
Window
*
parent_return
,
Window
**
children_return
,
unsigned
int
*
nchildren_return
)
{
if
(
!
w
||
!
root_return
||
!
parent_return
||
!
children_return
||
!
nchildren_return
)
{}
return
(
Status
)
0
;
}
void
macosx_add_mapnotify
(
Window
win
,
int
level
,
int
map
)
{
if
(
!
win
||
!
level
||
!
map
)
{}
return
;
}
void
macosx_add_create
(
Window
win
,
int
level
)
{
if
(
!
win
||
!
level
)
{}
return
;
}
void
macosx_add_destroy
(
Window
win
,
int
level
)
{
if
(
!
win
||
!
level
)
{}
return
;
}
void
macosx_add_visnotify
(
Window
win
,
int
level
,
int
obscured
)
{
if
(
!
win
||
!
level
||
!
obscured
)
{}
return
;
}
int
macosx_checkevent
(
XEvent
*
ev
)
{
if
(
!
ev
)
{}
return
0
;
}
...
...
This diff is collapsed.
Click to expand it.
x11vnc/macosxCG.c
View file @
99a557d6
...
...
@@ -6,6 +6,8 @@
* will not work!!
*/
void
macosxCG_dummy
(
void
)
{}
#if (defined(__MACH__) && defined(__APPLE__))
#include <ApplicationServices/ApplicationServices.h>
...
...
This diff is collapsed.
Click to expand it.
x11vnc/pointer.c
View file @
99a557d6
...
...
@@ -15,6 +15,7 @@
#include "linuxfb.h"
#include "uinput.h"
#include "scan.h"
#include "macosx.h"
int
pointer_queued_sent
=
0
;
...
...
This diff is collapsed.
Click to expand it.
x11vnc/scan.c
View file @
99a557d6
...
...
@@ -13,6 +13,7 @@
#include "unixpw.h"
#include "screen.h"
#include "macosx.h"
#include "userinput.h"
/*
* routines for scanning and reading the X11 display for changes, and
...
...
@@ -2351,7 +2352,6 @@ static void blackout_regions(void) {
* are other issues... use -fs 1.0 to disable.
*/
int
copy_screen
(
void
)
{
int
pixelsize
=
bpp
/
8
;
char
*
fbp
;
int
i
,
y
,
block_size
;
...
...
@@ -2462,7 +2462,7 @@ static void snap_all_rawfb(void) {
}
int
copy_snap
(
void
)
{
int
db
=
1
,
pixelsize
=
bpp
/
8
;
int
db
=
1
;
char
*
fbp
;
int
i
,
y
,
block_size
;
double
dt
;
...
...
@@ -2872,7 +2872,9 @@ if (ncache > 0) {
}
}
else
{
#if !NO_X11
if
(
XCheckTypedEvent
(
dpy
,
MapNotify
,
&
ev
))
{
if
(
raw_fb_str
)
{
;
}
else
if
(
XCheckTypedEvent
(
dpy
,
MapNotify
,
&
ev
))
{
gotone
=
1
;
}
else
if
(
XCheckTypedEvent
(
dpy
,
UnmapNotify
,
&
ev
))
{
gotone
=
2
;
...
...
@@ -2995,7 +2997,7 @@ int scan_for_updates(int count_only) {
double
frac2
=
0
.
35
;
/* or 3rd */
double
frac3
=
0
.
02
;
/* do scan_display() again after copy_tiles() */
static
double
last_poll
=
0
.
0
;
double
dtmp
;
double
dtmp
=
0
.
0
;
if
(
unixpw_in_progress
)
return
0
;
...
...
@@ -3190,9 +3192,14 @@ int scan_for_updates(int count_only) {
}
if
(
unixpw_in_progress
)
return
0
;
/* XXX Y */
if
(
0
&&
tile_count
>
20
)
print_tiles
();
//dtmp = dnow();
#if 0
dtmp = dnow();
#else
dtmp
=
0
.
0
;
#endif
if
(
old_copy_tile
)
{
tile_diffs
=
copy_all_tiles
();
...
...
@@ -3200,7 +3207,10 @@ if (0 && tile_count > 20) print_tiles();
tile_diffs
=
copy_all_tile_runs
();
}
SCAN_FATAL
(
tile_diffs
);
//if (tile_count) fprintf(stderr, "XX copytile: %.4f tile_count: %d\n", dnow() - dtmp, tile_count);
#if 0
if (tile_count) fprintf(stderr, "XX copytile: %.4f tile_count: %d\n", dnow() - dtmp, tile_count);
#endif
/*
* This backward pass for upward and left tiles complements what
...
...
This diff is collapsed.
Click to expand it.
x11vnc/screen.c
View file @
99a557d6
...
...
@@ -701,7 +701,6 @@ void free_old_fb(void) {
void
do_new_fb
(
int
reset_mem
)
{
XImage
*
fb
;
int
i
;
/* for threaded we really should lock libvncserver out. */
if
(
use_threads
)
{
...
...
This diff is collapsed.
Click to expand it.
x11vnc/solid.c
View file @
99a557d6
...
...
@@ -4,6 +4,7 @@
#include "win_utils.h"
#include "xwrappers.h"
#include "connections.h"
#include "cleanup.h"
char
*
guess_desktop
(
void
);
void
solid_bg
(
int
restore
);
...
...
This diff is collapsed.
Click to expand it.
x11vnc/user.c
View file @
99a557d6
...
...
@@ -980,7 +980,7 @@ void check_new_passwds(int force) {
}
rfbBool
custom_passwd_check
(
rfbClientPtr
cl
,
const
char
*
response
,
int
len
)
{
char
*
input
,
*
q
,
*
cmd
;
char
*
input
,
*
cmd
;
char
num
[
16
];
int
j
,
i
,
n
,
rc
;
...
...
This diff is collapsed.
Click to expand it.
x11vnc/userinput.c
View file @
99a557d6
...
...
@@ -18,6 +18,8 @@
#include "unixpw.h"
#include "macosx.h"
#include "macosxCGS.h"
#include "cursor.h"
#include "screen.h"
/*
* user input handling heuristics
...
...
@@ -57,6 +59,9 @@ int fb_update_sent(int *count);
int
check_user_input
(
double
dt
,
double
dtr
,
int
tile_diffs
,
int
*
cnt
);
void
do_copyregion
(
sraRegionPtr
region
,
int
dx
,
int
dy
,
int
mode
);
int
check_ncache
(
int
reset
,
int
mode
);
int
find_rect
(
int
idx
,
int
x
,
int
y
,
int
w
,
int
h
);
static
void
get_client_regions
(
int
*
req
,
int
*
mod
,
int
*
cpy
,
int
*
num
)
;
static
void
parse_scroll_copyrect_str
(
char
*
scr
);
static
void
parse_wireframe_str
(
char
*
wf
);
...
...
@@ -1825,7 +1830,7 @@ if (debug_scroll > 1) fprintf(stderr, "<<<-rfbDoCopyRect req: %d mod: %d cpy: %d
iter
=
sraRgnGetReverseIterator
(
region
,
dx
<
0
,
dy
<
0
);
while
(
sraRgnIteratorNext
(
iter
,
&
rect
))
{
int
j
,
c
,
t
,
Dx
,
Dy
;
int
j
,
c
,
t
;
x1
=
rect
.
x1
;
y1
=
rect
.
y1
;
...
...
@@ -1962,7 +1967,6 @@ void batch_copyregion(sraRegionPtr* region, int *dx, int *dy, int ncr, double de
rfbClientIteratorPtr
i
;
rfbClientPtr
cl
;
int
k
,
direct
,
mode
,
nrects
=
0
;
int
hid_cursor
=
0
;
/* XXX Y */
...
...
@@ -3178,7 +3182,7 @@ fprintf(stderr, "bo: %d/%lx\n", k, swin);
continue
;
}
#endif
if
(
boff
<=
swin
&&
swin
<
boff
+
bwin
)
{
if
(
boff
<=
(
int
)
swin
&&
(
int
)
swin
<
boff
+
bwin
)
{
;
/* blackouts */
}
else
if
(
!
stack_list
[
k
].
fetched
||
stack_list
[
k
].
time
>
tm
+
2
.
0
)
{
...
...
@@ -3556,7 +3560,7 @@ void clear_win_events(void) {
trapped_xerror
=
0
;
}
XSetErrorHandler
(
old_handler
);
fprintf
(
stderr
,
" 0x%x
\n
"
,
NPP_nwin
);
fprintf
(
stderr
,
" 0x%x
\n
"
,
(
unsigned
int
)
NPP_nwin
);
}
#endif
}
...
...
@@ -3627,6 +3631,7 @@ void ncache_pre_portions(Window orig_frame, Window frame, int *nidx_in, int try_
int
orig_x
,
int
orig_y
,
int
orig_w
,
int
orig_h
,
int
x
,
int
y
,
int
w
,
int
h
,
double
ntim
)
{
int
nidx
,
np
=
ncache_pad
;
if
(
!
ntim
)
{}
*
use_batch
=
0
;
*
nidx_in
=
-
1
;
NPP_nreg
=
0
;
...
...
@@ -3754,7 +3759,7 @@ void ncache_pre_portions(Window orig_frame, Window frame, int *nidx_in, int try_
}
}
ncache_post_portions
(
int
nidx
,
int
use_batch
,
int
orig_x
,
int
orig_y
,
int
orig_w
,
int
orig_h
,
void
ncache_post_portions
(
int
nidx
,
int
use_batch
,
int
orig_x
,
int
orig_y
,
int
orig_w
,
int
orig_h
,
int
x
,
int
y
,
int
w
,
int
h
,
double
batch_delay
,
double
ntim
)
{
int
np
=
ncache_pad
;
...
...
@@ -3957,7 +3962,7 @@ ncache_post_portions(int nidx, int use_batch, int orig_x, int orig_y, int orig_w
sraRgnDestroy
(
batch_reg
[
k
]);
}
fprintf
(
stderr
,
"FB_COPY: %.4f XX did batch 0x%x %3d su: %dx%d+%d+%d bs: %dx%d+%d+%d
\n
"
,
dnow
()
-
ntim
,
cache_list
[
nidx
].
win
,
nidx
,
su_w
,
su_h
,
su_x
,
su_y
,
bs_w
,
bs_h
,
bs_x
,
bs_y
);
(
unsigned
int
)
cache_list
[
nidx
].
win
,
nidx
,
su_w
,
su_h
,
su_x
,
su_y
,
bs_w
,
bs_h
,
bs_x
,
bs_y
);
}
cache_list
[
nidx
].
x
=
x
+
np
;
cache_list
[
nidx
].
y
=
y
+
np
;
...
...
@@ -3994,7 +3999,7 @@ fprintf(stderr, "FB_COPY: %.4f XX did batch 0x%x %3d su: %dx%d+%d+%d bs: %dx%d+
void
do_copyrect_drag_move
(
Window
orig_frame
,
Window
frame
,
int
*
nidx
,
int
try_batch
,
int
now_x
,
int
now_y
,
int
orig_w
,
int
orig_h
,
int
x
,
int
y
,
int
w
,
int
h
,
double
batch_delay
)
{
int
sent_copyrect
,
obscured
;
int
sent_copyrect
=
1
,
obscured
=
0
;
int
dx
,
dy
;
int
use_batch
=
0
;
double
ntim
=
dnow
();
...
...
@@ -4028,7 +4033,6 @@ fprintf(stderr, "FB_COPY: %.4f 3) FAILED.\n", dnow() - ntim);
}
sraRgnDestroy
(
r0
);
sraRgnDestroy
(
r1
);
sent_copyrect
=
1
;
if
(
sent_copyrect
)
{
if
(
use_batch
)
{
...
...
@@ -4098,6 +4102,8 @@ fprintf(stderr, "FAW orig_frame unmapped.\n");
}
check_ncache
(
0
,
2
);
}
#else
if
(
!
orig_frame
||
!
frame
||
!
flush
)
{}
#endif
}
...
...
@@ -4153,7 +4159,7 @@ int check_wireframe(void) {
int
frame_changed
=
0
,
drew_box
=
0
,
got_2nd_pointer
=
0
;
int
try_copyrect_drag
=
1
,
do_copyrect_drag
=
-
1
;
int
now_x
,
now_y
,
nidx
=
-
1
;
int
now_x
=
0
,
now_y
=
0
,
nidx
=
-
1
;
double
copyrect_drag_delay
=
-
1
.
0
;
int
try_batch
=
1
;
/* XXX Y */
int
mac_skip
=
0
;
...
...
@@ -4170,7 +4176,6 @@ int check_wireframe(void) {
double
max_spin
=
wireframe_t3
;
double
min_draw
=
wireframe_t4
;
int
try_it
=
0
;
Window
desc
[
6
];
DB_SET
if
(
unixpw_in_progress
)
return
0
;
...
...
@@ -4376,15 +4381,15 @@ if (db) fprintf(stderr, "INTERIOR\n");
rfbCFD
(
1000
);
}
if
(
bdown0
==
2
)
{
int
freq
=
1
;
/*
* This is to just update display_button_mask
* which will also update got_local_pointer_input.
*/
int
px
,
py
,
x
,
y
,
w
,
h
;
Window
frame
;
check_x11_pointer
();
#if 0
/* what was this for? */
Window frame;
int px, py, x, y, w, h;
#ifdef MACOSX
if (macosx_console) {
macosx_get_cursor_pos(&x, &y);
...
...
@@ -4604,10 +4609,9 @@ fprintf(stderr, "*** NO GPI DRAW_BOX\n");
}
if
(
idx
>=
0
)
{
if
(
cache_list
[
idx
].
su_time
>
0
.
0
)
{
double
min_draw0
=
min_draw
;
/* XXX Y */
min_draw
*=
0
.
66
;
do_copyrect_drag
=
1
;
//fprintf(stderr, "min_draw: %.4f -> %.4f\n", min_draw0, min_draw);
}
nidx
=
idx
;
}
...
...
@@ -4710,7 +4714,6 @@ if (db || db2) fprintf(stderr, "NO button_mask\n");
}
else
{
int
spin_ms
=
(
int
)
(
spin
*
1000
*
1000
);
int
obscured
,
sent_copyrect
=
0
;
int
np
=
ncache_pad
;
int
nidx
=
-
1
;
int
use_batch
=
0
;
...
...
@@ -4732,11 +4735,11 @@ fprintf(stderr, "\nSEND_COPYRECT %.4f %.4f\n", dnowx(), dnow() - ntim);
if
(
!
fb_push_wait
(
0
.
15
,
FB_COPY
|
FB_MOD
))
{
fprintf
(
stderr
,
"FB_COPY failed, try one more..."
,
dnow
()
-
ntim
);
fprintf
(
stderr
,
"FB_COPY failed, try one more...
%.4f
"
,
dnow
()
-
ntim
);
if
(
!
fb_push_wait
(
0
.
15
,
FB_COPY
|
FB_MOD
))
{
fprintf
(
stderr
,
"FB_COPY failed again!"
,
dnow
()
-
ntim
);
fprintf
(
stderr
,
"FB_COPY failed again!
%.4f
"
,
dnow
()
-
ntim
);
}
}
...
...
@@ -5450,12 +5453,15 @@ fprintf(stderr, "check_wireframe: 1\n");
#if defined(NO_NCACHE) || (NO_X11 && !defined(MACOSX))
int
check_ncache
(
int
a
,
int
b
)
{
if
(
!
a
||
!
b
)
{}
return
;
}
int
lookup_win_index
(
Window
win
)
{
if
(
!
win
)
{}
return
-
1
;
}
int
find_rect
(
int
idx
,
int
x
,
int
y
,
int
w
,
int
h
)
{
if
(
!
idx
||
!
x
||
!
y
||
!
w
||
!
h
)
{}
return
0
;
}
#else
...
...
@@ -5620,7 +5626,7 @@ int lookup_win_index(Window win) {
}
}
if
(
idx
<
0
)
{
fprintf
(
stderr
,
"recentC(fail): %d 0x%x
\n
"
,
idx
,
win
);
fprintf
(
stderr
,
"recentC(fail): %d 0x%x
\n
"
,
idx
,
(
unsigned
int
)
win
);
s3
++
;
}
if
(
s1
+
s2
+
s3
>=
100
)
{
...
...
@@ -5840,9 +5846,7 @@ int fr_FAILt = 0;
void
expire_rects1
(
int
idx
,
int
w
,
int
h
,
int
*
x_hit
,
int
*
y_hit
,
int
big1
,
int
big2
,
int
cram
)
{
sraRegionPtr
r1
,
r2
,
r3
;
sraRectangleIterator
*
iter
;
sraRect
rt
;
int
x
,
y
,
n
;
int
x
=
-
1
,
y
=
-
1
,
n
;
if
(
*
x_hit
<
0
)
{
int
i
,
k
,
old
[
10
],
N
=
4
;
...
...
@@ -5901,7 +5905,7 @@ void expire_rects1(int idx, int w, int h, int *x_hit, int *y_hit, int big1, int
int
k_h
=
cache_list
[
ik
].
bs_h
;
fprintf
(
stderr
,
">>**--**>> found rect via EXPIRE: %d 0x%x -- %dx%d+%d+%d %d %d -- %dx%d+%d+%d A: %d/%d
\n
"
,
ik
,
cache_list
[
ik
].
win
,
w
,
h
,
x
,
y
,
*
x_hit
,
*
y_hit
,
k_w
,
k_h
,
k_x
,
k_y
,
k_w
*
k_h
,
w
*
h
);
ik
,
(
unsigned
int
)
cache_list
[
ik
].
win
,
w
,
h
,
x
,
y
,
*
x_hit
,
*
y_hit
,
k_w
,
k_h
,
k_x
,
k_y
,
k_w
*
k_h
,
w
*
h
);
free_rect
(
ik
);
fr_EXPIRE
++
;
...
...
@@ -5994,7 +5998,7 @@ fprintf(stderr, ">>**--**>> found rect via FORCE: %dx%d+%d+%d -- %d %d\n", w, h,
void
expire_rects2
(
int
idx
,
int
w
,
int
h
,
int
*
x_hit
,
int
*
y_hit
,
int
big1
,
int
big2
,
int
cram
)
{
sraRegionPtr
r1
,
r2
,
r3
;
int
x
,
y
,
n
,
i
,
j
,
k
;
int
x
=
-
1
,
y
=
-
1
,
n
,
i
,
j
,
k
;
int
nwgt_max
=
128
,
nwgt
=
0
;
int
type
[
128
];
int
val
[
4
][
128
];
...
...
@@ -6075,7 +6079,6 @@ fprintf(stderr, "Expire[%02d] %9.5f age=%9.4f area=%8d need=%8d\n", nwgt, 1
if
(
do_force
)
{
int
corner_x
,
corner_y
;
int
x0
,
y0
;
double
nfac
=
1
.
0
;
for
(
n
=
1
;
n
<
ncache
;
n
+=
2
)
{
if
(
big1
&&
ncache
>
2
&&
n
==
1
)
{
...
...
@@ -6198,7 +6201,7 @@ fprintf(stderr, "j=%2d acc=%.6f r=%.6f\n", j, norm, r);
int
k_h
=
cache_list
[
ik
].
bs_h
;
fprintf
(
stderr
,
">>**--**>> found rect [%d] via RAN EXPIRE: %d 0x%x -- %dx%d+%d+%d %d %d -- %dx%d+%d+%d A: %d/%d
\n
"
,
get_bs_n
(
*
y_hit
),
ik
,
cache_list
[
ik
].
win
,
w
,
h
,
x
,
y
,
*
x_hit
,
*
y_hit
,
k_w
,
k_h
,
k_x
,
k_y
,
k_w
*
k_h
,
w
*
h
);
get_bs_n
(
*
y_hit
),
ik
,
(
unsigned
int
)
cache_list
[
ik
].
win
,
w
,
h
,
x
,
y
,
*
x_hit
,
*
y_hit
,
k_w
,
k_h
,
k_x
,
k_y
,
k_w
*
k_h
,
w
*
h
);
free_rect
(
ik
);
fr_EXPIRE
++
;
...
...
@@ -6264,7 +6267,7 @@ void expire_rects(int idx, int w, int h, int *x_hit, int *y_hit, int big1, int b
}
int
find_rect
(
int
idx
,
int
x
,
int
y
,
int
w
,
int
h
)
{
sraRegionPtr
r1
,
r2
,
r3
;
sraRegionPtr
r1
,
r2
;
sraRectangleIterator
*
iter
;
sraRect
rt
;
int
n
,
x_hit
=
-
1
,
y_hit
=
-
1
;
...
...
@@ -6544,6 +6547,8 @@ int valid_wr(int idx, Window win, XWindowAttributes *attr) {
return
valid_window
(
win
,
attr
,
1
);
}
}
#else
if
(
!
idx
)
{}
#endif
return
valid_window
(
win
,
attr
,
1
);
}
...
...
@@ -6562,11 +6567,11 @@ int bs_save(int idx, int *nbatch) {
w1
=
cache_list
[
idx
].
width
;
h1
=
cache_list
[
idx
].
height
;
fprintf
(
stderr
,
"backingstore save: 0x%x %3d
\n
"
,
win
,
idx
);
fprintf
(
stderr
,
"backingstore save: 0x%x %3d
\n
"
,
(
unsigned
int
)
win
,
idx
);
X_LOCK
;
if
(
!
valid_wr
(
idx
,
win
,
&
attr
))
{
fprintf
(
stderr
,
"bs_save: not a valid X window: 0x%x
\n
"
,
win
);
fprintf
(
stderr
,
"bs_save: not a valid X window: 0x%x
\n
"
,
(
unsigned
int
)
win
);
/* XXX Y */
// DELETE(idx);
X_UNLOCK
;
...
...
@@ -6644,7 +6649,7 @@ int su_save(int idx, int *nbatch) {
int
dx
,
dy
,
rc
=
1
;
sraRegionPtr
r
,
r0
;
fprintf
(
stderr
,
"save-unders save: 0x%x %3d
\n
"
,
win
,
idx
);
fprintf
(
stderr
,
"save-unders save: 0x%x %3d
\n
"
,
(
unsigned
int
)
win
,
idx
);
x1
=
cache_list
[
idx
].
x
;
y1
=
cache_list
[
idx
].
y
;
...
...
@@ -6653,7 +6658,7 @@ fprintf(stderr, "save-unders save: 0x%x %3d \n", win, idx);
X_LOCK
;
if
(
!
valid_wr
(
idx
,
win
,
&
attr
))
{
fprintf
(
stderr
,
"su_save: not a valid X window: 0x%x
\n
"
,
win
);
fprintf
(
stderr
,
"su_save: not a valid X window: 0x%x
\n
"
,
(
unsigned
int
)
win
);
/* XXX Y */
// DELETE(idx);
X_UNLOCK
;
...
...
@@ -6730,7 +6735,7 @@ int bs_restore(int idx, int *nbatch, int nopad) {
int
dx
,
dy
;
sraRegionPtr
r
,
r0
;
fprintf
(
stderr
,
"backingstore restore: 0x%x %3d
\n
"
,
win
,
idx
);
fprintf
(
stderr
,
"backingstore restore: 0x%x %3d
\n
"
,
(
unsigned
int
)
win
,
idx
);
x1
=
cache_list
[
idx
].
x
;
y1
=
cache_list
[
idx
].
y
;
...
...
@@ -6739,7 +6744,7 @@ fprintf(stderr, "backingstore restore: 0x%x %3d \n", win, idx);
X_LOCK
;
if
(
!
valid_wr
(
idx
,
win
,
&
attr
))
{
fprintf
(
stderr
,
"BS_restore: not a valid X window: 0x%x
\n
"
,
win
);
fprintf
(
stderr
,
"BS_restore: not a valid X window: 0x%x
\n
"
,
(
unsigned
int
)
win
);
DELETE
(
idx
);
X_UNLOCK
;
return
0
;
...
...
@@ -6821,7 +6826,7 @@ int su_restore(int idx, int *nbatch, int nopad) {
sraRegionPtr
r
,
r0
;
int
invalid
=
0
;
fprintf
(
stderr
,
"save-unders restore: 0x%x %3d
\n
"
,
win
,
idx
);
fprintf
(
stderr
,
"save-unders restore: 0x%x %3d
\n
"
,
(
unsigned
int
)
win
,
idx
);
x1
=
cache_list
[
idx
].
x
;
y1
=
cache_list
[
idx
].
y
;
...
...
@@ -6830,7 +6835,7 @@ fprintf(stderr, "save-unders restore: 0x%x %3d \n", win, idx);
X_LOCK
;
if
(
!
valid_wr
(
idx
,
win
,
&
attr
))
{
fprintf
(
stderr
,
"SU_restore: not a valid X window: 0x%x
\n
"
,
win
);
fprintf
(
stderr
,
"SU_restore: not a valid X window: 0x%x
\n
"
,
(
unsigned
int
)
win
);
invalid
=
1
;
x2
=
x1
;
y2
=
y1
;
...
...
@@ -6931,7 +6936,7 @@ void check_zero_rects(void) {
}
void
block_stats
(
void
)
{
int
n
,
k
,
area
,
s1
,
s2
;
int
n
,
k
,
s1
,
s2
;
static
int
t
=
-
1
;
int
vcnt
,
icnt
,
tcnt
,
vtot
=
0
,
itot
=
0
,
ttot
=
0
;
t
++
;
...
...
@@ -6946,7 +6951,7 @@ void block_stats(void) {
int
y
=
cache_list
[
k
].
bs_y
;
int
w
=
cache_list
[
k
].
bs_w
;
int
h
=
cache_list
[
k
].
bs_h
;
int
rc
;
int
rc
=
0
;
Window
win
=
cache_list
[
k
].
win
;
if
(
win
==
None
)
{
continue
;
...
...
@@ -6987,7 +6992,7 @@ void block_stats(void) {
if
(
!
rc
&&
!
macosx_console
)
{
char
*
u
=
getenv
(
"USER"
);
if
(
u
&&
!
strcmp
(
u
,
"runge"
))
fprintf
(
stderr
,
"
\a
"
);
fprintf
(
stderr
,
"
\n
*** UNRECLAIMED WINDOW: 0x%x %dx%d+%d+%d
\n\n
"
,
win
,
w
,
h
,
x
,
y
);
fprintf
(
stderr
,
"
\n
*** UNRECLAIMED WINDOW: 0x%x %dx%d+%d+%d
\n\n
"
,
(
unsigned
int
)
win
,
w
,
h
,
x
,
y
);
DELETE
(
k
);
}
if
(
t
<
3
||
(
t
%
4
)
==
0
||
hack_val
||
macosx_console
)
{
...
...
@@ -6996,7 +7001,7 @@ void block_stats(void) {
if
(
t1
>
0
.
0
)
{
t1
=
dnow
()
-
t1
;}
else
{
t1
=
-
1
.
0
;}
if
(
t2
>
0
.
0
)
{
t2
=
dnow
()
-
t2
;}
else
{
t2
=
-
1
.
0
;}
fprintf
(
stderr
,
" [%02d] %04d 0x%08x bs: %04dx%04d+%04d+%05d vw: %04dx%04d+%04d+%04d cl: %04dx%04d+%04d+%04d map=%d su=%9.3f bs=%9.3f
\n
"
,
n
,
k
,
win
,
w
,
h
,
x
,
y
,
attr
.
width
,
attr
.
height
,
attr
.
x
,
attr
.
y
,
n
,
k
,
(
unsigned
int
)
win
,
w
,
h
,
x
,
y
,
attr
.
width
,
attr
.
height
,
attr
.
x
,
attr
.
y
,
cache_list
[
k
].
width
,
cache_list
[
k
].
height
,
cache_list
[
k
].
x
,
cache_list
[
k
].
y
,
attr
.
map_state
==
IsViewable
,
t1
,
t2
);
}
...
...
@@ -7088,7 +7093,7 @@ void xselectinput(Window w, unsigned long evmask, int sync) {
if
(
trapped_xioerror
)
{
fprintf
(
stderr
,
"XSELECTINPUT: trapped XIO Error."
);
}
if
(
sync
)
fprintf
(
stderr
,
"XSELECTINPUT: 0x%x sync=%d err=%d/%d
\n
"
,
w
,
sync
,
trapped_xerror
,
trapped_xioerror
);
if
(
sync
)
fprintf
(
stderr
,
"XSELECTINPUT: 0x%x sync=%d err=%d/%d
\n
"
,
(
unsigned
int
)
w
,
sync
,
trapped_xerror
,
trapped_xioerror
);
}
Bool
xcheckmaskevent
(
Display
*
d
,
long
mask
,
XEvent
*
ev
)
{
...
...
@@ -7122,23 +7127,19 @@ Window Ev_unmap[EVMAX];
sraRect
Ev_rects
[
EVMAX
];
int
check_ncache
(
int
reset
,
int
mode
)
{
static
int
last_map
=
-
1
;
static
double
last_root
=
0
.
0
;
static
int
first
=
1
;
static
int
last_client_count
=
-
1
;
int
i
,
j
,
k
,
n
,
t
;
int
i
,
k
,
n
;
int
n_CN
=
0
,
n_RN
=
0
,
n_DN
=
0
,
n_ON
=
0
,
n_MN
=
0
,
n_UN
=
0
;
int
n_VN
=
0
,
n_VN_p
=
0
,
n_VN_u
=
0
;
double
now
,
refresh
=
60
.
0
;
Window
win
,
win2
;
XWindowAttributes
attr
;
XEvent
ev
;
unsigned
long
all_ev
=
SubstructureNotifyMask
|
StructureNotifyMask
|
VisibilityChangeMask
;
unsigned
long
win_ev
=
StructureNotifyMask
|
VisibilityChangeMask
;
Window
awin0
,
awin1
,
awin2
;
int
area0
,
area1
,
area2
;
int
try_batch
=
1
;
/* XXX Y */
int
use_batch
=
0
;
int
nreg
=
0
,
*
nbatch
;
...
...
@@ -7148,12 +7149,6 @@ int check_ncache(int reset, int mode) {
int
nrects
=
0
;
Window
resize_inc
[
16
];
Window
resize_dec
[
16
];
XWindowAttributes
attr_inc
[
16
];
XWindowAttributes
attr_dec
[
16
];
int
nresize
=
16
;
#ifdef MACOSX
if
(
!
macosx_console
)
{
RAWFB_RET
(
-
1
)
...
...
@@ -7338,7 +7333,7 @@ fprintf(stderr, "DELETE(%d) %dx%d+%d+%d\n", k, cache_list[k].width, cache_list[k
if
(
valid
)
{
if
(
cache_list
[
k
].
create_cnt
&&
attr
.
map_state
!=
IsViewable
&&
cache_list
[
k
].
map_cnt
==
0
)
{
if
(
cache_list
[
k
].
bs_x
>=
0
)
{
fprintf
(
stderr
,
"Created window never mapped: freeing(%d) 0x%x
\n
"
,
k
,
win
);
fprintf
(
stderr
,
"Created window never mapped: freeing(%d) 0x%x
\n
"
,
k
,
(
unsigned
int
)
win
);
free_rect
(
k
);
}
}
...
...
@@ -7384,7 +7379,7 @@ fprintf(stderr, "Created window never mapped: freeing(%d) 0x%x\n", k, win);
}
else
if
(
aw
*
ah
<
64
*
64
)
{
;
}
else
{
fprintf
(
stderr
,
"*NEW BS_save: 0x%x %d %d %d
\n
"
,
win
,
aw
,
ah
,
cache_list
[
idx
].
map_state
);
fprintf
(
stderr
,
"*NEW BS_save: 0x%x %d %d %d
\n
"
,
(
unsigned
int
)
win
,
aw
,
ah
,
cache_list
[
idx
].
map_state
);
bs_save
(
idx
,
bat
);
}
}
...
...
@@ -7438,15 +7433,15 @@ fprintf(stderr, "*NEW BS_save: 0x%x %d %d %d\n", win, aw, ah, cache_list[idx].ma
n
++
;
n_RN
++
;
}
else
{
Window
w
=
None
;
/* skip rest */
#if 0
Window w = None;
if (type == DestroyNotify) w = Ev[n].xdestroywindow.window;
if (type == UnmapNotify) w = Ev[n].xunmap.window;
if (type == MapNotify) w = Ev[n].xmap.window;
if (type == Expose) w = Ev[n].xexpose.window;
if (type == ConfigureNotify) w = Ev[n].xconfigure.window;
if (type != ConfigureNotify) fprintf(stderr, "root: skip %s for 0x%x\n", Etype(type), w);
if (type != ConfigureNotify) fprintf(stderr, "root: skip %s for 0x%x\n", Etype(type),
(unsigned int)
w);
#endif
}
...
...
@@ -7492,12 +7487,7 @@ fprintf(stderr, "\n"); rfbLog("IN check_ncache() %d events.\n", n);
for
(
i
=
0
;
i
<
n
;
i
++
)
{
XEvent
ev
=
Ev
[
i
];
int
a
,
w
,
h
,
type
,
idx
=
-
1
;
type
=
ev
.
type
;
win
=
ev
.
xany
.
window
;
Ev_win
[
i
]
=
win
;
Ev_win
[
i
]
=
ev
.
xany
.
window
;
}
if
(
try_batch
)
{
...
...
@@ -7523,7 +7513,7 @@ fprintf(stderr, "\n"); rfbLog("IN check_ncache() %d events.\n", n);
X_LOCK
;
for
(
i
=
0
;
i
<
n
;
i
++
)
{
XEvent
ev
;
int
a
,
w
,
h
,
type
,
idx
=
-
1
;
int
type
,
idx
=
-
1
;
if
(
Ev_done
[
i
])
continue
;
win
=
Ev_win
[
i
];
...
...
@@ -7573,14 +7563,14 @@ fprintf(stderr, "\n"); rfbLog("IN check_ncache() %d events.\n", n);
DELETE
(
idx
);
}
}
fprintf
(
stderr
,
"root%02d: ** CreateNotify 0x%x %3d -- %dx%d+%d+%d valid=%d
\n
"
,
i
,
win2
,
idx
,
w
,
h
,
x
,
y
,
valid
);
fprintf
(
stderr
,
"root%02d: ** CreateNotify 0x%x %3d -- %dx%d+%d+%d valid=%d
\n
"
,
i
,
(
unsigned
int
)
win2
,
idx
,
w
,
h
,
x
,
y
,
valid
);
}
else
if
(
type
==
ReparentNotify
)
{
if
(
ev
.
xreparent
.
parent
!=
rootwin
)
{
win2
=
ev
.
xreparent
.
window
;
if
(
win2
!=
rootwin
)
{
idx
=
lookup_win_index
(
win2
);
fprintf
(
stderr
,
"root%02d: ReparentNotifyRM 0x%x %3d
\n
"
,
i
,
win2
,
idx
);
fprintf
(
stderr
,
"root%02d: ReparentNotifyRM 0x%x %3d
\n
"
,
i
,
(
unsigned
int
)
win2
,
idx
);
if
(
idx
>=
0
)
{
DELETE
(
idx
);
}
...
...
@@ -7600,8 +7590,8 @@ fprintf(stderr, "root%02d: ReparentNotifyRM 0x%x %3d\n", i, win2, idx);
oabove
=
cache_list
[
idx
].
above
;
}
fprintf
(
stderr
,
"----%02d: ConfigureNotify 0x%x %3d -- above: 0x%x -> 0x%x %dx%d+%d+%d
\n
"
,
i
,
win
,
idx
,
oabove
,
ev
.
xconfigure
.
above
,
ev
.
xconfigure
.
width
,
ev
.
xconfigure
.
height
,
ev
.
xconfigure
.
x
,
ev
.
xconfigure
.
y
);
fprintf
(
stderr
,
"----%02d: ConfigureNotify 0x%x %3d -- above: 0x%x -> 0x%x %dx%d+%d+%d
\n
"
,
i
,
(
unsigned
int
)
win
,
idx
,
(
unsigned
int
)
oabove
,
(
unsigned
int
)
ev
.
xconfigure
.
above
,
ev
.
xconfigure
.
width
,
ev
.
xconfigure
.
height
,
ev
.
xconfigure
.
x
,
ev
.
xconfigure
.
y
);
if
(
idx
<
0
)
{
continue
;
...
...
@@ -7619,12 +7609,12 @@ fprintf(stderr, "----%02d: ConfigureNotify 0x%x %3d -- above: 0x%x -> 0x%x %
if
(
x_old
!=
x_new
||
y_old
!=
y_new
)
{
/* invalidate su */
cache_list
[
idx
].
su_time
=
0
.
0
;
fprintf
(
stderr
,
" invalidate su: 0x%x xy: %d/%d %d/%d
\n
"
,
win
,
x_old
,
y_old
,
x_new
,
y_new
);
fprintf
(
stderr
,
" invalidate su: 0x%x xy: %d/%d %d/%d
\n
"
,
(
unsigned
int
)
win
,
x_old
,
y_old
,
x_new
,
y_new
);
}
if
(
w_old
!=
w_new
||
h_old
!=
h_new
)
{
/* invalidate bs */
cache_list
[
idx
].
bs_time
=
0
.
0
;
fprintf
(
stderr
,
" invalidate bs: 0x%x wh: %d/%d %d/%d
\n
"
,
win
,
w_old
,
h_old
,
w_new
,
h_new
);
fprintf
(
stderr
,
" invalidate bs: 0x%x wh: %d/%d %d/%d
\n
"
,
(
unsigned
int
)
win
,
w_old
,
h_old
,
w_new
,
h_new
);
}
cache_list
[
idx
].
x
=
x_new
;
...
...
@@ -7637,7 +7627,7 @@ fprintf(stderr, " invalidate bs: 0x%x wh: %d/%d %d/%d \n", win, w_old,
}
else
if
(
type
==
VisibilityNotify
)
{
int
state
=
ev
.
xvisibility
.
state
;
idx
=
lookup_win_index
(
win
);
fprintf
(
stderr
,
"----%02d: VisibilityNotify 0x%x %3d state: %s U/P %d/%d
\n
"
,
i
,
win
,
idx
,
VState
(
state
),
n_VN_u
,
n_VN_p
);
fprintf
(
stderr
,
"----%02d: VisibilityNotify 0x%x %3d state: %s U/P %d/%d
\n
"
,
i
,
(
unsigned
int
)
win
,
idx
,
VState
(
state
),
n_VN_u
,
n_VN_p
);
if
(
idx
<
0
)
{
continue
;
...
...
@@ -7674,7 +7664,7 @@ fprintf(stderr, "----%02d: VisibilityNotify 0x%x %3d state: %s U/P %d/%d\n", i
}
else
if
(
type
==
MapNotify
)
{
idx
=
lookup_win_index
(
win
);
fprintf
(
stderr
,
"----%02d: MapNotify 0x%x %3d
\n
"
,
i
,
win
,
idx
);
fprintf
(
stderr
,
"----%02d: MapNotify 0x%x %3d
\n
"
,
i
,
(
unsigned
int
)
win
,
idx
);
if
(
idx
<
0
)
{
continue
;
...
...
@@ -7712,7 +7702,7 @@ fprintf(stderr, "----%02d: MapNotify 0x%x %3d\n", i, win, idx);
}
else
if
(
type
==
UnmapNotify
)
{
idx
=
lookup_win_index
(
win
);
fprintf
(
stderr
,
"----%02d: UnmapNotify 0x%x %3d
\n
"
,
i
,
win
,
idx
);
fprintf
(
stderr
,
"----%02d: UnmapNotify 0x%x %3d
\n
"
,
i
,
(
unsigned
int
)
win
,
idx
);
if
(
idx
<
0
)
{
continue
;
...
...
@@ -7745,7 +7735,7 @@ fprintf(stderr, "----%02d: UnmapNotify 0x%x %3d\n", i, win, idx);
win2
=
ev
.
xreparent
.
window
;
if
(
win2
!=
rootwin
)
{
idx
=
lookup_win_index
(
win2
);
fprintf
(
stderr
,
"----%02d: ReparentNotifyRM 0x%x %3d
\n
"
,
i
,
win2
,
idx
);
fprintf
(
stderr
,
"----%02d: ReparentNotifyRM 0x%x %3d
\n
"
,
i
,
(
unsigned
int
)
win2
,
idx
);
if
(
idx
>=
0
)
{
DELETE
(
idx
);
}
...
...
@@ -7756,7 +7746,7 @@ fprintf(stderr, "----%02d: ReparentNotifyRM 0x%x %3d\n", i, win2, idx);
}
else
if
(
type
==
DestroyNotify
)
{
win2
=
ev
.
xdestroywindow
.
window
;
idx
=
lookup_win_index
(
win2
);
fprintf
(
stderr
,
"----%02d: DestroyNotify 0x%x %3d
\n
"
,
i
,
win2
,
idx
);
fprintf
(
stderr
,
"----%02d: DestroyNotify 0x%x %3d
\n
"
,
i
,
(
unsigned
int
)
win2
,
idx
);
if
(
idx
>=
0
)
{
DELETE
(
idx
);
...
...
This diff is collapsed.
Click to expand it.
x11vnc/userinput.h
View file @
99a557d6
...
...
@@ -37,4 +37,7 @@ extern int fb_update_sent(int *count);
extern
int
check_user_input
(
double
dt
,
double
dtr
,
int
tile_diffs
,
int
*
cnt
);
extern
void
do_copyregion
(
sraRegionPtr
region
,
int
dx
,
int
dy
,
int
mode
);
extern
int
check_ncache
(
int
reset
,
int
mode
);
extern
int
find_rect
(
int
idx
,
int
x
,
int
y
,
int
w
,
int
h
);
#endif
/* _X11VNC_USERINPUT_H */
This diff is collapsed.
Click to expand it.
x11vnc/win_utils.c
View file @
99a557d6
...
...
@@ -290,7 +290,7 @@ void update_stack_list(void) {
X_LOCK
;
for
(
k
=
0
;
k
<
stack_list_num
;
k
++
)
{
Window
win
=
stack_list
[
k
].
win
;
if
(
win
!=
None
&&
boff
<=
win
&&
win
<
boff
+
bwin
)
{
if
(
win
!=
None
&&
boff
<=
(
int
)
win
&&
(
int
)
win
<
boff
+
bwin
)
{
;
/* special, blackout */
}
else
if
(
!
valid_window
(
win
,
&
attr
,
1
))
{
stack_list
[
k
].
valid
=
0
;
...
...
This diff is collapsed.
Click to expand it.
x11vnc/xwrappers.c
View file @
99a557d6
...
...
@@ -79,6 +79,10 @@ Bool XQueryPointer_wr(Display *display, Window w, Window *root_return,
Window
*
child_return
,
int
*
root_x_return
,
int
*
root_y_return
,
int
*
win_x_return
,
int
*
win_y_return
,
unsigned
int
*
mask_return
);
Status
XQueryTree_wr
(
Display
*
display
,
Window
w
,
Window
*
root_return
,
Window
*
parent_return
,
Window
**
children_return
,
unsigned
int
*
nchildren_return
);
int
XFree_wr
(
void
*
data
);
int
XSelectInput_wr
(
Display
*
display
,
Window
w
,
long
event_mask
);
...
...
This diff is collapsed.
Click to expand it.
x11vnc/xwrappers.h
View file @
99a557d6
...
...
@@ -76,6 +76,10 @@ extern Bool XQueryPointer_wr(Display *display, Window w, Window *root_return,
Window
*
child_return
,
int
*
root_x_return
,
int
*
root_y_return
,
int
*
win_x_return
,
int
*
win_y_return
,
unsigned
int
*
mask_return
);
extern
Status
XQueryTree_wr
(
Display
*
display
,
Window
w
,
Window
*
root_return
,
Window
*
parent_return
,
Window
**
children_return
,
unsigned
int
*
nchildren_return
);
extern
int
XFree_wr
(
void
*
data
);
extern
int
XSelectInput_wr
(
Display
*
display
,
Window
w
,
long
event_mask
);
...
...
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