Commit 649f5b2b authored by runge's avatar runge

x11vnc: setup remote-ctrl file by default on macosx. improve

        tkx11vnc wrt attaching to existing server in icon/tray mode.
parent 899c920e
2007-12-16 Karl Runge <runge@karlrunge.com>
* x11vnc: setup remote-ctrl file by default on macosx. improve
tkx11vnc wrt attaching to existing server in icon/tray mode.
2007-12-15 Karl Runge <runge@karlrunge.com>
* x11vnc: fix find_display and usleep() prototype on macosx.
-display console and check DISPLAY /tmp/...:0 on macosx.
......
x11vnc README file Date: Sat Dec 15 19:10:20 EST 2007
x11vnc README file Date: Sun Dec 16 13:21:20 EST 2007
The following information is taken from these URLs:
......@@ -11842,7 +11842,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.9.4 lastmod: 2007-12-15
x11vnc: allow VNC connections to real X11 displays. 0.9.4 lastmod: 2007-12-16
x11vnc options:
-display disp -auth file -N
......@@ -11961,7 +11961,7 @@ libvncserver-tight-extension options:
% x11vnc -help
x11vnc: allow VNC connections to real X11 displays. 0.9.4 lastmod: 2007-12-15
x11vnc: allow VNC connections to real X11 displays. 0.9.4 lastmod: 2007-12-16
(type "x11vnc -opts" to just list the options.)
......
......@@ -140,7 +140,7 @@ void clean_up_exit (int ret) {
#ifdef MACOSX
if (client_connect_file) {
if (strstr(client_connect_file, "/tmp/x11vnc-macosx-channel.")
if (strstr(client_connect_file, "/tmp/x11vnc-macosx-remote")
== client_connect_file) {
unlink(client_connect_file);
}
......
......@@ -152,6 +152,16 @@ int tray_embed(Window iconwin, int remove) {
XChangeProperty(dpy, iconwin, xembed_info, xembed_info, 32,
PropModeReplace, (unsigned char *)&info, 2);
#if 0
{
XSizeHints *xszh = XAllocSizeHints();
xszh->flags = PMinSize;
xszh->min_width = 24;
xszh->min_height = 24;
XSetWMNormalHints(dpy, iconwin, xszh);
}
#endif
/* kludge for KDE evidently needed... */
tatom = XInternAtom(dpy, "KWM_DOCKWINDOW", False);
XChangeProperty(dpy, iconwin, tatom, tatom, 32, PropModeReplace,
......
......@@ -32,7 +32,7 @@ int macosxCG_get_cursor(void);
void macosxCG_init_key_table(void);
void macosxCG_key_inject(int down, unsigned int keysym);
CGDirectDisplayID displayID = NULL;
CGDirectDisplayID displayID = 0;
extern void macosx_log(char *);
extern int collect_non_X_xdamage(int x_in, int y_in, int w_in, int h_in, int call);
......@@ -100,7 +100,7 @@ extern void macosxCGP_screensaver_timer_off(void);
extern void macosxCGP_screensaver_timer_on(void);
void macosxCG_init(void) {
if (displayID == NULL) {
if (displayID == 0) {
macosx_log("macosxCG_init: initializing display.\n");
#if 0
dragum();
......
......@@ -52,6 +52,7 @@ int send_remote_cmd(char *cmd, int query, int wait) {
FILE *in = NULL;
if (client_connect_file) {
umask(077);
in = fopen(client_connect_file, "w");
if (in == NULL) {
fprintf(stderr, "send_remote_cmd: could not open "
......
......@@ -4860,7 +4860,7 @@ proc lmenu {menu} {
}
proc old_balloon {} {
global client_str saved_client_str
global client_str saved_clients_str
set str ""
if {[info exists client_str]} {
if {$client_str != ""} {
......@@ -4868,8 +4868,8 @@ proc old_balloon {} {
}
}
if {$str == ""} {
if {[info exists saved_client_str]} {
set str $saved_client_str
if {[info exists saved_clients_str]} {
set str $saved_clients_str
}
}
if {$str != ""} {
......@@ -5029,6 +5029,7 @@ proc make_icon {} {
}
$menu add cascade -font $mfont -label "Window View:" -menu $wv
$menu add command -font $mfont -label "Dismiss" -command "$menu unpost"
$menu add command -font $mfont -label "Stop x11vnc" -command clean_icon_exit
set items [get_custom_menu_items]
......@@ -5047,10 +5048,11 @@ proc make_icon {} {
bind $icon_win <Enter> {set client_balloon_id [after 500 show_client_balloon]}
bind $icon_win <Button> {kill_client_balloon}
bind $icon_win <Leave> {kill_client_balloon}
bind $icon_win <ButtonPress-2> {kill_client_balloon; show_client_balloon}
bind $icon_win <Shift-ButtonRelease-1> {kill_client_balloon; show_client_balloon}
bind $icon_win <ButtonRelease-2> {kill_client_balloon; show_client_balloon}
# bind $menu <Leave> "lmenu $menu"
# bind $menu <Enter> "set left_iconwin_menu 0"
## bind $menu <KeyPress-Escape> "$menu unpost"
# bind $menu <KeyPress-Escape> "$menu unpost"
bind . <Control-KeyPress-c> {destroy .; exit 0}
......@@ -5071,9 +5073,20 @@ proc make_icon {} {
wm iconname . "tkx11vnc"
wm title . "tkx11vnc"
update
wm deiconify .
if {$tray_embed && $tray_running} {
wm deiconify .
#after 10000 {wm deiconify .; puts "reqheight [winfo reqheight .]"; puts "reqwidth [winfo reqwidth .]"; puts "height [winfo height .]"; puts "width [winfo width .]"}
} else {
wm deiconify .
}
update
#puts "reqheight [winfo reqheight .]"
#puts "reqwidth [winfo reqwidth .]"
#puts "height [winfo height .]"
#puts "width [winfo width .]"
#puts "AAA"
old_balloon
}
......
......@@ -4871,7 +4871,7 @@ char gui_code[] = "";
"}\n"
"\n"
"proc old_balloon {} {\n"
" global client_str saved_client_str\n"
" global client_str saved_clients_str\n"
" set str \"\"\n"
" if {[info exists client_str]} {\n"
" if {$client_str != \"\"} {\n"
......@@ -4879,8 +4879,8 @@ char gui_code[] = "";
" }\n"
" }\n"
" if {$str == \"\"} {\n"
" if {[info exists saved_client_str]} {\n"
" set str $saved_client_str\n"
" if {[info exists saved_clients_str]} {\n"
" set str $saved_clients_str\n"
" }\n"
" }\n"
" if {$str != \"\"} {\n"
......@@ -5040,6 +5040,7 @@ char gui_code[] = "";
" }\n"
" $menu add cascade -font $mfont -label \"Window View:\" -menu $wv\n"
"\n"
" $menu add command -font $mfont -label \"Dismiss\" -command \"$menu unpost\"\n"
" $menu add command -font $mfont -label \"Stop x11vnc\" -command clean_icon_exit\n"
"\n"
" set items [get_custom_menu_items]\n"
......@@ -5058,10 +5059,11 @@ char gui_code[] = "";
" bind $icon_win <Enter> {set client_balloon_id [after 500 show_client_balloon]}\n"
" bind $icon_win <Button> {kill_client_balloon}\n"
" bind $icon_win <Leave> {kill_client_balloon}\n"
" bind $icon_win <ButtonPress-2> {kill_client_balloon; show_client_balloon}\n"
" bind $icon_win <Shift-ButtonRelease-1> {kill_client_balloon; show_client_balloon}\n"
" bind $icon_win <ButtonRelease-2> {kill_client_balloon; show_client_balloon}\n"
"# bind $menu <Leave> \"lmenu $menu\"\n"
"# bind $menu <Enter> \"set left_iconwin_menu 0\"\n"
"## bind $menu <KeyPress-Escape> \"$menu unpost\"\n"
"# bind $menu <KeyPress-Escape> \"$menu unpost\"\n"
"\n"
" bind . <Control-KeyPress-c> {destroy .; exit 0}\n"
"\n"
......@@ -5082,9 +5084,20 @@ char gui_code[] = "";
" wm iconname . \"tkx11vnc\"\n"
" wm title . \"tkx11vnc\"\n"
" update\n"
" wm deiconify .\n"
" if {$tray_embed && $tray_running} {\n"
" wm deiconify .\n"
" #after 10000 {wm deiconify .; puts \"reqheight [winfo reqheight .]\"; puts \"reqwidth [winfo reqwidth .]\"; puts \"height [winfo height .]\"; puts \"width [winfo width .]\"}\n"
" } else {\n"
" wm deiconify .\n"
" }\n"
" update\n"
"\n"
"#puts \"reqheight [winfo reqheight .]\"\n"
"#puts \"reqwidth [winfo reqwidth .]\"\n"
"#puts \"height [winfo height .]\"\n"
"#puts \"width [winfo width .]\"\n"
"#puts \"AAA\"\n"
"\n"
" old_balloon\n"
"}\n"
"\n"
......
......@@ -2,7 +2,7 @@
.TH X11VNC "1" "December 2007" "x11vnc " "User Commands"
.SH NAME
x11vnc - allow VNC connections to real X11 displays
version: 0.9.4, lastmod: 2007-12-15
version: 0.9.4, lastmod: 2007-12-16
.SH SYNOPSIS
.B x11vnc
[OPTION]...
......
......@@ -3489,26 +3489,38 @@ int main(int argc, char* argv[]) {
if (more_safe) {
launch_gui = 0;
}
if (launch_gui) {
int sleep = 0;
if (SHOW_NO_PASSWORD_WARNING && !nopw) {
sleep = 1;
}
#ifdef MACOSX
if (! use_dpy && getenv("DISPLAY") == NULL) {
/* we need this for gui since no X properties */
if (! client_connect_file && ! client_connect) {
int fd;
char tmp[] = "/tmp/x11vnc-macosx-channel.XXXXXX";
fd = mkstemp(tmp);
if (fd >= 0) {
close(fd);
client_connect_file = strdup(tmp);
rfbLog("MacOS X: set -connect file to %s\n", client_connect_file);
if (! use_dpy) {
/* we need this for gui since no X properties */
if (!client_connect_file && !client_connect) {
char *user = get_user_name();
char *str = (char *) malloc(strlen(user) + strlen("/tmp/x11vnc-macosx-remote.") + 1);
struct stat sb;
sprintf(str, "/tmp/x11vnc-macosx-remote.%s", user);
if (!remote_cmd && !query_cmd) {
unlink(str);
if (stat(str, &sb) != 0) {
int fd = open(str, O_WRONLY|O_EXCL|O_CREAT, 0600);
if (fd >= 0) {
close(fd);
client_connect_file = str;
}
}
} else {
client_connect_file = str;
}
if (client_connect_file) {
rfbLog("MacOS X: set -connect file to %s\n", client_connect_file);
}
}
}
#endif
if (launch_gui) {
int sleep = 0;
if (SHOW_NO_PASSWORD_WARNING && !nopw) {
sleep = 1;
}
do_gui(gui_str, sleep);
}
if (logfile) {
......
......@@ -15,7 +15,7 @@ int xtrap_base_event_type = 0;
int xdamage_base_event_type = 0;
/* date +'lastmod: %Y-%m-%d' */
char lastmod[] = "0.9.4 lastmod: 2007-12-15";
char lastmod[] = "0.9.4 lastmod: 2007-12-16";
/* X display info */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment