X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fdevice.c;h=399d61dad77b547514f6a018b54ed8a73da7c548;hb=0d83c23c319751850760298ca61808af61b24105;hp=2de9feddd7b55f7d741c8590a7ca432f5e573495;hpb=716cfba952c1dc0d2cf5c968971f3780ba728a89;p=chise%2Fxemacs-chise.git.1 diff --git a/src/device.c b/src/device.c index 2de9fed..399d61d 100644 --- a/src/device.c +++ b/src/device.c @@ -1,4 +1,4 @@ - /* Generic device functions. +/* Generic device functions. Copyright (C) 1994, 1995 Board of Trustees, University of Illinois. Copyright (C) 1994, 1995 Free Software Foundation, Inc. Copyright (C) 1995, 1996 Ben Wing @@ -227,9 +227,9 @@ DEFUN ("dfw-device", Fdfw_device, 1, 1, 0, /* Given a device, frame, or window, return the associated device. Return nil otherwise. */ - (obj)) + (object)) { - return DFW_DEVICE (obj); + return DFW_DEVICE (object); } @@ -549,6 +549,9 @@ have no effect. device-independence violations occur in faces.el. */ int first_x_device = NILP (Vdefault_x_device) && EQ (type, Qx); #endif +#ifdef HAVE_GTK + int first_gtk_device = NILP (Vdefault_gtk_device) && EQ (type, Qgtk); +#endif GCPRO3 (device, console, name); @@ -598,6 +601,10 @@ have no effect. if (first_x_device) init_global_resources (d); #endif +#ifdef HAVE_GTK + if (first_gtk_device) + init_global_resources (d); +#endif init_device_resources (d); MAYBE_DEVMETH (d, finish_init_device, (d, props)); @@ -758,7 +765,8 @@ delete_device_internal (struct device *d, int force, /* #### This should probably be a device method but it is time for 19.14 to go out the door. */ -#ifdef HAVE_X_WINDOWS + /* #### BILL!!! Should this deal with HAVE_MSWINDOWS as well? */ +#if defined (HAVE_X_WINDOWS) || defined (HAVE_GTK) /* Next delete all frames which have the popup property to avoid deleting a child after its parent. */ DEVICE_FRAME_LOOP (frmcons, d) @@ -891,6 +899,7 @@ behavior cannot necessarily be determined automatically. MARK_FRAME_GLYPHS_CHANGED (f); MARK_FRAME_SUBWINDOWS_CHANGED (f); MARK_FRAME_TOOLBARS_CHANGED (f); + MARK_FRAME_GUTTERS_CHANGED (f); f->menubar_changed = 1; } } @@ -925,9 +934,7 @@ to selected device if omitted, and must be live if specified. */ (device)) { - return (MAYBE_INT_DEVMETH (decode_device (device), - device_implementation_flags, ()) - & XDEVIMPF_IS_A_PRINTER) ? Qt : Qnil; + return DEVICE_PRINTER_P (decode_device (device)) ? Qt : Qnil; } DEFUN ("device-system-metric", Fdevice_system_metric, 1, 3, 0, /* @@ -987,12 +994,12 @@ size-icon Icon dimensions. size-icon-small Small icon dimensions. size-device Device screen or paper size in pixels. size-workspace Workspace size in pixels. This can be less than or - equal to the above. For diplays, this is the area - available to applications less window manager + equal to the above. For displays, this is the area + available to applications less window manager decorations. For printers, this is the size of printable area. offset-workspace Offset of workspace area from the top left corner - of screen or paper. + of screen or paper, in pixels. size-device-mm Device screen size in millimeters. device-dpi Device resolution, in dots per inch. num-bit-planes Integer, number of device bit planes. @@ -1168,8 +1175,7 @@ window_system_pixelated_geometry (Lisp_Object domain) Lisp_Object winsy = domain_device_type (domain); struct console_methods *meth = decode_console_type (winsy, ERROR_ME_NOT); assert (meth); - return (MAYBE_INT_CONTYPE_METH (meth, device_implementation_flags, ()) - & XDEVIMPF_PIXEL_GEOMETRY); + return CONMETH_IMPL_FLAG (meth, XDEVIMPF_PIXEL_GEOMETRY); } DEFUN ("domain-device-type", Fdomain_device_type, 0, 1, 0, /* @@ -1201,12 +1207,12 @@ handle_asynch_device_change (void) /* reset the flag to 0 unless another notification occurred while we were processing this one. Block SIGWINCH during this check to prevent a possible race condition. */ -#ifndef WINDOWSNT +#ifdef SIGWINCH EMACS_BLOCK_SIGNAL (SIGWINCH); #endif if (old_asynch_device_change_pending == asynch_device_change_pending) asynch_device_change_pending = 0; -#ifndef WINDOWSNT +#ifdef SIGWINCH EMACS_UNBLOCK_SIGNAL (SIGWINCH); #endif } @@ -1246,6 +1252,8 @@ call_critical_lisp_code (struct device *d, Lisp_Object function, void syms_of_device (void) { + INIT_LRECORD_IMPLEMENTATION (device); + DEFSUBR (Fvalid_device_class_p); DEFSUBR (Fdevice_class_list);