Mon Apr 17 22:25:27 PDT 2000 Michael Jennings <mej@eterm.org>
I fixed the problem reported by Joakim Bodin <bodin@dreamhosted.com> with spawned processes. Also fixed Esetroot as reported by Wayne Johnson <bigman1@alltel.net>. Support for buttons higher than 5 was also added to the action bindings code for those (like me) with IntelliMouse Explorers and XFree86 4.0. :-) SVN revision: 2494
This commit is contained in:
parent
84e12faee3
commit
1e9bf450c4
11
ChangeLog
11
ChangeLog
|
@ -3488,3 +3488,14 @@ Thu Apr 13 21:15:03 PDT 2000 Michael Jennings <mej@eterm.org>
|
||||||
Fixed an image loading problem.
|
Fixed an image loading problem.
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
Mon Apr 17 22:25:27 PDT 2000 Michael Jennings <mej@eterm.org>
|
||||||
|
|
||||||
|
I fixed the problem reported by Joakim Bodin <bodin@dreamhosted.com>
|
||||||
|
with spawned processes. Also fixed Esetroot as reported by Wayne
|
||||||
|
Johnson <bigman1@alltel.net>.
|
||||||
|
|
||||||
|
Support for buttons higher than 5 was also added to the action
|
||||||
|
bindings code for those (like me) with IntelliMouse Explorers and
|
||||||
|
XFree86 4.0. :-)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
|
@ -83,6 +83,7 @@ action_dispatch(event_t *ev, KeySym keysym) {
|
||||||
unsigned int m = (AltMask | MetaMask | NumLockMask);
|
unsigned int m = (AltMask | MetaMask | NumLockMask);
|
||||||
|
|
||||||
ASSERT(ev != NULL);
|
ASSERT(ev != NULL);
|
||||||
|
D_ACTIONS(("Event %8p: Button %d, Keysym 0x%08x, Key State 0x%08x\n", ev, ev->xbutton.button, keysym, ev->xkey.state));
|
||||||
for (action = action_list; action; action = action->next) {
|
for (action = action_list; action; action = action->next) {
|
||||||
D_ACTIONS(("Checking action. mod == 0x%08x, button == %d, keysym == 0x%08x\n", action->mod, action->button, action->keysym));
|
D_ACTIONS(("Checking action. mod == 0x%08x, button == %d, keysym == 0x%08x\n", action->mod, action->button, action->keysym));
|
||||||
if (ev->xany.type == ButtonPress) {
|
if (ev->xany.type == ButtonPress) {
|
||||||
|
|
|
@ -1028,7 +1028,7 @@ handle_child_signal(int sig)
|
||||||
/* If the child that exited is the command we spawned, or if the
|
/* If the child that exited is the command we spawned, or if the
|
||||||
child exited before fork() returned in the parent, it must be
|
child exited before fork() returned in the parent, it must be
|
||||||
our immediate child that exited. We exit gracefully. */
|
our immediate child that exited. We exit gracefully. */
|
||||||
if (pid == cmd_pid || cmd_pid == -1) {
|
if (pid == cmd_pid && cmd_pid != -1) {
|
||||||
if (Options & Opt_pause) {
|
if (Options & Opt_pause) {
|
||||||
const char *message = "\r\nPress any key to exit " APL_NAME "....";
|
const char *message = "\r\nPress any key to exit " APL_NAME "....";
|
||||||
|
|
||||||
|
@ -2151,7 +2151,7 @@ run_command(char *argv[])
|
||||||
my_euid = my_ruid;
|
my_euid = my_ruid;
|
||||||
my_egid = my_rgid;
|
my_egid = my_rgid;
|
||||||
|
|
||||||
/* command interpreter path */
|
usleep(10); /* Attempt to force a context switch so that the parent runs before us. */
|
||||||
D_CMD(("[%d] About to spawn shell\n", getpid()));
|
D_CMD(("[%d] About to spawn shell\n", getpid()));
|
||||||
if (chdir(initial_dir)) {
|
if (chdir(initial_dir)) {
|
||||||
print_warning("Unable to chdir to \"%s\" -- %s\n", initial_dir, strerror(errno));
|
print_warning("Unable to chdir to \"%s\" -- %s\n", initial_dir, strerror(errno));
|
||||||
|
|
|
@ -779,8 +779,8 @@ xerror_handler(Display * display, XErrorEvent * event)
|
||||||
|
|
||||||
strcpy(err_string, "");
|
strcpy(err_string, "");
|
||||||
XGetErrorText(display, event->error_code, err_string, sizeof(err_string));
|
XGetErrorText(display, event->error_code, err_string, sizeof(err_string));
|
||||||
print_error("XError in function %s (request %d.%d): %s (error %d)", request_code_to_name(event->request_code),
|
print_error("XError in function %s, resource 0x%08x (request %d.%d): %s (error %d)", request_code_to_name(event->request_code),
|
||||||
event->request_code, event->minor_code, err_string, event->error_code);
|
(int) event->resourceid, event->request_code, event->minor_code, err_string, event->error_code);
|
||||||
#if DEBUG > DEBUG_X11
|
#if DEBUG > DEBUG_X11
|
||||||
if (debug_level >= DEBUG_X11) {
|
if (debug_level >= DEBUG_X11) {
|
||||||
dump_stack_trace();
|
dump_stack_trace();
|
||||||
|
|
|
@ -2914,14 +2914,7 @@ parse_actions(char *buff, void *state)
|
||||||
} else if (!BEG_STRCASECMP(str, "mod5")) {
|
} else if (!BEG_STRCASECMP(str, "mod5")) {
|
||||||
mod |= MOD_MOD5;
|
mod |= MOD_MOD5;
|
||||||
} else if (!BEG_STRCASECMP(str, "button")) {
|
} else if (!BEG_STRCASECMP(str, "button")) {
|
||||||
switch (*(str+6)) {
|
button = *(str + 6) - '0';
|
||||||
case '1': button = Button1; break;
|
|
||||||
case '2': button = Button2; break;
|
|
||||||
case '3': button = Button3; break;
|
|
||||||
case '4': button = Button4; break;
|
|
||||||
case '5': button = Button5; break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
} else if (isdigit(*str)) {
|
} else if (isdigit(*str)) {
|
||||||
keysym = (KeySym) strtoul(str, (char **) NULL, 0);
|
keysym = (KeySym) strtoul(str, (char **) NULL, 0);
|
||||||
} else {
|
} else {
|
||||||
|
|
16
src/pixmap.c
16
src/pixmap.c
|
@ -571,6 +571,12 @@ create_viewport_pixmap(simage_t *simg, Drawable d, int x, int y, unsigned short
|
||||||
D_PIXMAP(("Tiling image at %dx%d\n", xsize, ysize));
|
D_PIXMAP(("Tiling image at %dx%d\n", xsize, ysize));
|
||||||
imlib_render_pixmaps_for_whole_image(&viewport_pixmap, &mask, 0);
|
imlib_render_pixmaps_for_whole_image(&viewport_pixmap, &mask, 0);
|
||||||
}
|
}
|
||||||
|
if (viewport_pixmap == None) {
|
||||||
|
print_error("Delayed image load failure for \"%s\". Using solid color mode.", imlib_image_get_filename());
|
||||||
|
image_set_mode(image_bg, MODE_SOLID);
|
||||||
|
reset_simage(simg, RESET_ALL_SIMG);
|
||||||
|
return None;
|
||||||
|
}
|
||||||
D_PIXMAP(("Created viewport_pixmap == 0x%08x\n", viewport_pixmap));
|
D_PIXMAP(("Created viewport_pixmap == 0x%08x\n", viewport_pixmap));
|
||||||
} else {
|
} else {
|
||||||
XGetGeometry(Xdisplay, viewport_pixmap, &dummy, &px, &py, &pw, &ph, &pb, &pd);
|
XGetGeometry(Xdisplay, viewport_pixmap, &dummy, &px, &py, &pw, &ph, &pb, &pd);
|
||||||
|
@ -725,7 +731,11 @@ paste_simage(simage_t *simg, unsigned char which, Drawable d, unsigned short x,
|
||||||
} else {
|
} else {
|
||||||
imlib_render_pixmaps_for_whole_image_at_size(&pmap, &mask, 0, w, h);
|
imlib_render_pixmaps_for_whole_image_at_size(&pmap, &mask, 0, w, h);
|
||||||
}
|
}
|
||||||
ASSERT(pmap != None);
|
if (pmap == None) {
|
||||||
|
print_error("Delayed image load failure for \"%s\".", imlib_image_get_filename());
|
||||||
|
reset_simage(simg, RESET_ALL_SIMG);
|
||||||
|
return;
|
||||||
|
}
|
||||||
gc = XCreateGC(Xdisplay, d, 0, NULL);
|
gc = XCreateGC(Xdisplay, d, 0, NULL);
|
||||||
if (mask) {
|
if (mask) {
|
||||||
XSetClipMask(Xdisplay, gc, mask);
|
XSetClipMask(Xdisplay, gc, mask);
|
||||||
|
@ -1083,6 +1093,10 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short
|
||||||
and handle exposes by copying from simg->pmap->pixmap. */
|
and handle exposes by copying from simg->pmap->pixmap. */
|
||||||
XSetWindowBackgroundPixmap(Xdisplay, win, simg->pmap->pixmap);
|
XSetWindowBackgroundPixmap(Xdisplay, win, simg->pmap->pixmap);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
print_error("Delayed image load failure for \"%s\". Using solid color mode.", imlib_image_get_filename());
|
||||||
|
image_set_mode(which, MODE_SOLID);
|
||||||
|
reset_simage(simg, RESET_ALL_SIMG);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
image_set_mode(which, MODE_SOLID);
|
image_set_mode(which, MODE_SOLID);
|
||||||
|
|
|
@ -99,7 +99,6 @@ system_wait(char *command)
|
||||||
|
|
||||||
D_OPTIONS(("system_wait(%s) called.\n", command));
|
D_OPTIONS(("system_wait(%s) called.\n", command));
|
||||||
|
|
||||||
old_handler = signal(SIGCHLD, dummy_handler);
|
|
||||||
if (!(pid = fork())) {
|
if (!(pid = fork())) {
|
||||||
setreuid(my_ruid, my_ruid);
|
setreuid(my_ruid, my_ruid);
|
||||||
setregid(my_rgid, my_rgid);
|
setregid(my_rgid, my_rgid);
|
||||||
|
@ -120,7 +119,6 @@ system_no_wait(char *command)
|
||||||
|
|
||||||
D_OPTIONS(("system_no_wait(%s) called.\n", command));
|
D_OPTIONS(("system_no_wait(%s) called.\n", command));
|
||||||
|
|
||||||
old_handler = signal(SIGCHLD, dummy_handler);
|
|
||||||
if (!(pid = fork())) {
|
if (!(pid = fork())) {
|
||||||
setreuid(my_ruid, my_ruid);
|
setreuid(my_ruid, my_ruid);
|
||||||
setregid(my_rgid, my_rgid);
|
setregid(my_rgid, my_rgid);
|
||||||
|
|
|
@ -97,7 +97,7 @@ main(int argc, char *argv[])
|
||||||
char *displayname = NULL;
|
char *displayname = NULL;
|
||||||
char *fname = NULL;
|
char *fname = NULL;
|
||||||
Imlib_Image im;
|
Imlib_Image im;
|
||||||
Pixmap p, temp_pmap;
|
Pixmap p, temp_pmap, m;
|
||||||
register unsigned char i;
|
register unsigned char i;
|
||||||
GC gc;
|
GC gc;
|
||||||
XGCValues gcv;
|
XGCValues gcv;
|
||||||
|
@ -166,7 +166,7 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
imlib_context_set_display(Xdisplay);
|
imlib_context_set_display(Xdisplay);
|
||||||
imlib_context_set_visual(DefaultVisual(Xdisplay, DefaultScreen(Xdisplay)));
|
imlib_context_set_visual(DefaultVisual(Xdisplay, DefaultScreen(Xdisplay)));
|
||||||
im = imlib_load_image(fname);
|
im = imlib_load_image_immediately(fname);
|
||||||
if (im == NULL) {
|
if (im == NULL) {
|
||||||
fprintf(stderr, "%s: Unable to load image file \"%s\".\n", *argv, fname);
|
fprintf(stderr, "%s: Unable to load image file \"%s\".\n", *argv, fname);
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -214,7 +214,8 @@ main(int argc, char *argv[])
|
||||||
imlib_context_set_anti_alias(1);
|
imlib_context_set_anti_alias(1);
|
||||||
imlib_context_set_dither(1);
|
imlib_context_set_dither(1);
|
||||||
imlib_context_set_blend(0);
|
imlib_context_set_blend(0);
|
||||||
imlib_render_pixmaps_for_whole_image_at_size(&temp_pmap, NULL, 0, w, h);
|
imlib_context_set_drawable(Xroot);
|
||||||
|
imlib_render_pixmaps_for_whole_image_at_size(&temp_pmap, &m, 0, w, h);
|
||||||
if (debug) {
|
if (debug) {
|
||||||
fprintf(stderr, "%s:%d: Rendered at %dx%d onto pixmap 0x%08x\n", __FILE__, __LINE__, w, h, (unsigned int) temp_pmap);
|
fprintf(stderr, "%s:%d: Rendered at %dx%d onto pixmap 0x%08x\n", __FILE__, __LINE__, w, h, (unsigned int) temp_pmap);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue