Mercurial > hg > xemacs-beta
comparison src/frame-x.c @ 1885:51ce4f55d8c3
[xemacs-hg @ 2004-01-27 13:33:18 by stephent]
quiet GCC <87ad49o6vl.fsf@tleepslib.sk.tsukuba.ac.jp>
author | stephent |
---|---|
date | Tue, 27 Jan 2004 13:33:21 +0000 |
parents | 18d2b8dabcf7 |
children | 61855263cb07 |
comparison
equal
deleted
inserted
replaced
1884:3d25fd3d9ac4 | 1885:51ce4f55d8c3 |
---|---|
308 int need_focus = 1; | 308 int need_focus = 1; |
309 | 309 |
310 assert (XtIsWMShell (widget)); | 310 assert (XtIsWMShell (widget)); |
311 | 311 |
312 { | 312 { |
313 Atom type, *atoms = 0; | 313 Atom type; |
314 int format = 0; | 314 int format = 0; |
315 unsigned long nitems = 0; | 315 unsigned long nitems = 0; |
316 unsigned long bytes_after; | 316 unsigned long bytes_after; |
317 unsigned char *prop_return = 0; /* semantically a void* */ | |
317 | 318 |
318 if (Success == XGetWindowProperty (dpy, w, DEVICE_XATOM_WM_PROTOCOLS (d), | 319 if (Success == XGetWindowProperty (dpy, w, DEVICE_XATOM_WM_PROTOCOLS (d), |
319 0, 100, False, XA_ATOM, | 320 0, 100, False, XA_ATOM, |
320 &type, &format, &nitems, &bytes_after, | 321 &type, &format, &nitems, &bytes_after, |
321 (unsigned char **) &atoms) | 322 &prop_return) |
322 && format == 32 && type == XA_ATOM) | 323 && format == 32 && type == XA_ATOM) |
323 while (nitems > 0) | 324 while (nitems > 0) |
324 { | 325 { |
326 Atom *atoms = (Atom *) prop_return; | |
325 nitems--; | 327 nitems--; |
326 if (atoms [nitems] == DEVICE_XATOM_WM_DELETE_WINDOW (d)) | 328 if (atoms[nitems] == DEVICE_XATOM_WM_DELETE_WINDOW (d)) |
327 need_delete = 0; | 329 need_delete = 0; |
328 else if (atoms [nitems] == DEVICE_XATOM_WM_TAKE_FOCUS (d)) | 330 else if (atoms[nitems] == DEVICE_XATOM_WM_TAKE_FOCUS (d)) |
329 need_focus = 0; | 331 need_focus = 0; |
330 } | 332 } |
331 if (atoms) XFree ((char *) atoms); | 333 if (prop_return) XFree ((char *) prop_return); |
332 } | 334 } |
333 { | 335 { |
334 Atom props [10]; | 336 Atom props [10]; |
335 int count = 0; | 337 int count = 0; |
336 if (need_delete) props[count++] = DEVICE_XATOM_WM_DELETE_WINDOW (d); | 338 if (need_delete) props[count++] = DEVICE_XATOM_WM_DELETE_WINDOW (d); |
414 x_frame_window_state (struct frame *f) | 416 x_frame_window_state (struct frame *f) |
415 { | 417 { |
416 Atom actual_type; | 418 Atom actual_type; |
417 int actual_format; | 419 int actual_format; |
418 unsigned long nitems, bytesafter; | 420 unsigned long nitems, bytesafter; |
419 unsigned long *datap = 0; | 421 unsigned char *datap = 0; |
420 Widget widget; | 422 Widget widget; |
421 int result = -1; | 423 int result = -1; |
422 struct device *d = XDEVICE (FRAME_DEVICE (f)); | 424 struct device *d = XDEVICE (FRAME_DEVICE (f)); |
423 | 425 |
424 widget = FRAME_X_SHELL_WIDGET (f); | 426 widget = FRAME_X_SHELL_WIDGET (f); |
425 if (Success == XGetWindowProperty (XtDisplay (widget), XtWindow (widget), | 427 if (Success == XGetWindowProperty (XtDisplay (widget), XtWindow (widget), |
426 DEVICE_XATOM_WM_STATE (d), 0, 2, False, | 428 DEVICE_XATOM_WM_STATE (d), 0, 2, False, |
427 DEVICE_XATOM_WM_STATE (d), &actual_type, | 429 DEVICE_XATOM_WM_STATE (d), &actual_type, |
428 &actual_format, &nitems, &bytesafter, | 430 &actual_format, &nitems, &bytesafter, |
429 (unsigned char **) &datap) | 431 &datap) |
430 && datap) | 432 && datap) |
431 { | 433 { |
434 unsigned long *ul_result_ptr = (unsigned long *) datap; | |
432 if (nitems <= 2) /* "suggested" by ICCCM version 1 */ | 435 if (nitems <= 2) /* "suggested" by ICCCM version 1 */ |
433 result = (int) datap[0]; | 436 result = (int) ul_result_ptr[0]; |
434 XFree ((char *) datap); | 437 XFree ((char *) datap); |
435 } | 438 } |
436 | 439 |
437 return result; | 440 return result; |
438 } | 441 } |