diff src/frame-msw.c @ 412:697ef44129c6 r21-2-14

Import from CVS: tag r21-2-14
author cvs
date Mon, 13 Aug 2007 11:20:41 +0200
parents de805c49cfc1
children 11054d720c21
line wrap: on
line diff
--- a/src/frame-msw.c	Mon Aug 13 11:19:22 2007 +0200
+++ b/src/frame-msw.c	Mon Aug 13 11:20:41 2007 +0200
@@ -58,7 +58,7 @@
 #define POPUP_WIDTH 30
 #define POPUP_HEIGHT 10
 
-/* Default regular frame size, in characters */
+/* Default popup size, in characters */
 #define DEFAULT_FRAME_WIDTH 80
 #define DEFAULT_FRAME_HEIGHT 35
 
@@ -70,32 +70,12 @@
 
 /* Default properties to use when creating frames.  */
 Lisp_Object Vdefault_mswindows_frame_plist;
-Lisp_Object Vdefault_msprinter_frame_plist;
 Lisp_Object Vmswindows_use_system_frame_size_defaults;
 
 /* This does not need to be GC protected, as it holds a
    frame Lisp_Object already protected by Fmake_frame */
 Lisp_Object Vmswindows_frame_being_created;
 
-/*---------------------------------------------------------------------*/
-/*-----                    DISPLAY FRAME                          -----*/
-/*---------------------------------------------------------------------*/
-
-HWND
-mswindows_get_selected_frame_hwnd (void)
-{
-  Lisp_Object frame, device;
-
-  device = Ffind_device (Qnil, Qmswindows);
-  if (NILP (device))
-    return NULL;
-  frame = DEVICE_SELECTED_FRAME (XDEVICE (device));
-  if (NILP (frame))
-    return NULL;
-
-  return FRAME_MSWINDOWS_HANDLE (XFRAME (frame));
-}
-
 static void
 mswindows_init_frame_1 (struct frame *f, Lisp_Object props)
 {
@@ -142,17 +122,19 @@
     abs (XINT (height));
       
   /* Misc frame stuff */
+  FRAME_MSWINDOWS_DATA(f)->button2_need_lbutton = 0;
+  FRAME_MSWINDOWS_DATA(f)->button2_need_rbutton = 0;
+  FRAME_MSWINDOWS_DATA(f)->button2_is_down = 0;
+  FRAME_MSWINDOWS_DATA(f)->ignore_next_lbutton_up = 0;
+  FRAME_MSWINDOWS_DATA(f)->ignore_next_rbutton_up = 0;
+  FRAME_MSWINDOWS_DATA(f)->sizing = 0;
   FRAME_MSWINDOWS_MENU_HASH_TABLE(f) = Qnil;
 #ifdef HAVE_TOOLBARS
   FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE(f) = 
     make_lisp_hash_table (50, HASH_TABLE_NON_WEAK, HASH_TABLE_EQUAL);
 #endif
   /* hashtable of instantiated glyphs on the frame. */
-  FRAME_MSWINDOWS_WIDGET_HASH_TABLE1 (f) = 
-    make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQUAL);
-  FRAME_MSWINDOWS_WIDGET_HASH_TABLE2 (f) = 
-    make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQUAL);
-  FRAME_MSWINDOWS_WIDGET_HASH_TABLE3 (f) = 
+  FRAME_MSWINDOWS_WIDGET_HASH_TABLE (f) = 
     make_lisp_hash_table (50, HASH_TABLE_VALUE_WEAK, HASH_TABLE_EQUAL);
   /* Will initialize these in WM_SIZE handler. We cannot do it now,
      because we do not know what is CW_USEDEFAULT height and width */
@@ -200,8 +182,8 @@
 			 XEMACS_CLASS,
 			 STRINGP(f->name) ? XSTRING_DATA(f->name) :
 			 (STRINGP(name) ? 
-			  (const Extbyte*)XSTRING_DATA(name) : 
-			  (const Extbyte*)XEMACS_CLASS),
+			  (CONST Extbyte*)XSTRING_DATA(name) : 
+			  (CONST Extbyte*)XEMACS_CLASS),
 			 style,
 			 rect_default.left, rect_default.top,
 			 rect_default.width, rect_default.height,
@@ -216,6 +198,7 @@
 
   SetWindowLong (hwnd, XWL_FRAMEOBJ, (LONG)LISP_TO_VOID(frame_obj));
   FRAME_MSWINDOWS_DC(f) = GetDC (hwnd);
+  FRAME_MSWINDOWS_CDC(f) = CreateCompatibleDC (FRAME_MSWINDOWS_CDC(f));
   SetTextAlign (FRAME_MSWINDOWS_DC(f), TA_BASELINE | TA_LEFT | TA_NOUPDATECP);
 }
 
@@ -265,15 +248,13 @@
 }
 
 static void
-mswindows_mark_frame (struct frame *f)
+mswindows_mark_frame (struct frame *f, void (*markobj) (Lisp_Object))
 {
-  mark_object (FRAME_MSWINDOWS_MENU_HASH_TABLE (f));
+  markobj (FRAME_MSWINDOWS_MENU_HASH_TABLE (f));
 #ifdef HAVE_TOOLBARS
-  mark_object (FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE (f));
+  markobj (FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE (f));
 #endif
-  mark_object (FRAME_MSWINDOWS_WIDGET_HASH_TABLE1 (f));
-  mark_object (FRAME_MSWINDOWS_WIDGET_HASH_TABLE2 (f));
-  mark_object (FRAME_MSWINDOWS_WIDGET_HASH_TABLE3 (f));
+  markobj (FRAME_MSWINDOWS_WIDGET_HASH_TABLE (f));
 }
 
 static void
@@ -287,6 +268,7 @@
 {
   if (f->frame_data)
     {
+      DeleteDC(FRAME_MSWINDOWS_CDC(f));
       ReleaseDC(FRAME_MSWINDOWS_HANDLE(f), FRAME_MSWINDOWS_DC(f));
       DestroyWindow(FRAME_MSWINDOWS_HANDLE(f));
       xfree (f->frame_data);
@@ -612,8 +594,7 @@
      bugs (and is more consistent with X) so I am going to reenable it.
      --andyp */
   if ( FRAME_PIXWIDTH (f) && FRAME_PIXHEIGHT (f)
-       && (width_specified_p || height_specified_p
-	   || x_specified_p || y_specified_p))
+       && (width_specified_p || height_specified_p || x_specified_p || y_specified_p))
     {
       XEMACS_RECT_WH dest = { x, y, width, height };
 
@@ -623,10 +604,11 @@
 
 void mswindows_size_frame_internal (struct frame* f, XEMACS_RECT_WH* dest)
 {
-  RECT rect, ws_rect;
+  RECT rect;
   int pixel_width, pixel_height;
   int size_p = (dest->width >=0 || dest->height >=0);
   int move_p = (dest->top >=0 || dest->left >=0);
+  struct device* d = XDEVICE (FRAME_DEVICE (f));
   char_to_real_pixel_size (f, dest->width, dest->height, &pixel_width, &pixel_height);
   
   if (dest->width < 0)
@@ -649,44 +631,32 @@
 		      GetMenu (FRAME_MSWINDOWS_HANDLE(f)) != NULL,
 		      GetWindowLong (FRAME_MSWINDOWS_HANDLE(f), GWL_EXSTYLE));
 
-  /* resize and move the window so that it fits in the workspace. This is
+  /* resize and move the window so that it fits on the screen. This is
   not restrictive since this will happen later anyway in WM_SIZE.  We
   have to do this after adjusting the rect to account for menubar
   etc. */
-  mswindows_get_workspace_coords (&ws_rect);
   pixel_width = rect.right - rect.left;
   pixel_height = rect.bottom - rect.top;
-  if (pixel_width > ws_rect.right - ws_rect.left)
+  if (pixel_width > DEVICE_MSWINDOWS_HORZRES(d))
     {
-      pixel_width = ws_rect.right - ws_rect.left;
+      pixel_width = DEVICE_MSWINDOWS_HORZRES(d);
       size_p=1;
     }
-  if (pixel_height > ws_rect.bottom - ws_rect.top)
+  if (pixel_height > DEVICE_MSWINDOWS_VERTRES(d))
     {
-      pixel_height = ws_rect.bottom - ws_rect.top;
+      pixel_height = DEVICE_MSWINDOWS_VERTRES(d);
       size_p=1;
     }
 
-  /* adjust position so window is in workspace */
-  if (dest->left + pixel_width > ws_rect.right)
+  /* adjust position so window is on screen */
+  if (dest->left + pixel_width > DEVICE_MSWINDOWS_HORZRES(d))
     {
-      dest->left = ws_rect.right - pixel_width;
+      dest->left = DEVICE_MSWINDOWS_HORZRES(d) - pixel_width;
       move_p=1;
     }
-  if (dest->left < ws_rect.left)
+  if (dest->top + pixel_height > DEVICE_MSWINDOWS_VERTRES(d))
     {
-      dest->left = ws_rect.left;
-      move_p=1;
-    }
-
-  if (dest->top + pixel_height > ws_rect.bottom)
-    {
-      dest->top = ws_rect.bottom - pixel_height;
-      move_p=1;
-    }
-  if (dest->top < ws_rect.top)
-    {
-      dest->top = ws_rect.top;
+      dest->top = DEVICE_MSWINDOWS_VERTRES(d) - pixel_height;
       move_p=1;
     }
 
@@ -729,307 +699,10 @@
   return IsZoomed (FRAME_MSWINDOWS_HANDLE (f));
 }
 
-/*---------------------------------------------------------------------*/
-/*-----                    PRINTER FRAME                          -----*/
-/*---------------------------------------------------------------------*/
-
-/*
- * With some drvier/os combination (I discovered this with HP drviers
- * under W2K), DC geometry is reset upon StartDoc and EndPage
- * calls. This is called every time one of these calls is made.
- */
-static void
-apply_dc_geometry (struct frame* f)
-{
-  HDC hdc = DEVICE_MSPRINTER_HDC (XDEVICE (FRAME_DEVICE (f)));
-  SetTextAlign (hdc, TA_BASELINE | TA_LEFT | TA_NOUPDATECP);
-  SetViewportOrgEx (hdc, FRAME_MSPRINTER_PIXLEFT(f),
-		    FRAME_MSPRINTER_PIXTOP(f), NULL);
-}
-
-void
-msprinter_start_page (struct frame *f)
-{
-  if (!FRAME_MSPRINTER_PAGE_STARTED (f))
-    {
-      FRAME_MSPRINTER_PAGE_STARTED (f) = 1;
-      StartPage (DEVICE_MSPRINTER_HDC (XDEVICE (FRAME_DEVICE (f))));
-      apply_dc_geometry (f);
-    }
-}
-
-static void
-error_frame_unsizable (struct frame *f)
-{
-  Lisp_Object frame;
-  XSETFRAME (frame, f);
-  signal_simple_error ("Cannot resize frame (margins)"
-		       " after print job has started.", frame);
-}
-
-static void
-maybe_error_if_job_active (struct frame *f)
-{
-  if (FRAME_MSPRINTER_JOB_STARTED (f))
-    error_frame_unsizable (f);
-}
-
-static void
-msprinter_init_frame_1 (struct frame *f, Lisp_Object props)
-{
-  /* Make sure this is the only frame on device. Windows printer can
-     handle only one job at a time. */
-  if (!NILP (DEVICE_FRAME_LIST (XDEVICE (FRAME_DEVICE (f)))))
-    error ("Only one frame (print job) at a time is allowed on "
-	   "this printer device.");
-
-  f->frame_data = xnew_and_zero (struct msprinter_frame);
-
-  /* Default margin size is 1" = 1440 twips */
-  FRAME_MSPRINTER_TOP_MARGIN(f) = 1440;
-  FRAME_MSPRINTER_BOTTOM_MARGIN(f) = 1440;
-  FRAME_MSPRINTER_LEFT_MARGIN(f) = 1440;
-  FRAME_MSPRINTER_RIGHT_MARGIN(f) = 1440;
-
-  /* Negative for "uinspecified" */
-  FRAME_MSPRINTER_CHARWIDTH(f) = -1;
-  FRAME_MSPRINTER_CHARHEIGHT(f) = -1;
-}
-
-static void
-msprinter_init_frame_3 (struct frame *f)
-{
-  DOCINFO di;
-  struct device *device = XDEVICE (FRAME_DEVICE (f));
-  HDC hdc;
-  int frame_left, frame_top, frame_width, frame_height;
-
-  /* DC might be recreated in msprinter_apply_devmode,
-     so do not initialize until now */
-  hdc = DEVICE_MSPRINTER_HDC (device);
-
-  /* Compute geometry properties */
-  frame_left = (MulDiv (GetDeviceCaps (hdc, LOGPIXELSX),
-			FRAME_MSPRINTER_LEFT_MARGIN(f), 1440)
-		- GetDeviceCaps (hdc, PHYSICALOFFSETX));
-  
-  if (FRAME_MSPRINTER_CHARWIDTH(f) > 0)
-    {
-      char_to_real_pixel_size (f, FRAME_MSPRINTER_CHARWIDTH(f), 0,
-			       &frame_width, NULL);
-      FRAME_MSPRINTER_RIGHT_MARGIN(f) = 
-	MulDiv (GetDeviceCaps (hdc, PHYSICALWIDTH)
-		- (frame_left + frame_width), 1440,
-		GetDeviceCaps (hdc, LOGPIXELSX));
-    }		
-  else
-    frame_width = (GetDeviceCaps (hdc, PHYSICALWIDTH)
-		   - frame_left
-		   - MulDiv (GetDeviceCaps (hdc, LOGPIXELSX),
-			     FRAME_MSPRINTER_RIGHT_MARGIN(f), 1440));
-
-  frame_top = (MulDiv (GetDeviceCaps (hdc, LOGPIXELSY),
-		       FRAME_MSPRINTER_TOP_MARGIN(f), 1440)
-	       - GetDeviceCaps (hdc, PHYSICALOFFSETY));
-
-  if (FRAME_MSPRINTER_CHARHEIGHT(f) > 0)
-    {
-      char_to_real_pixel_size (f, 0, FRAME_MSPRINTER_CHARHEIGHT(f),
-			       NULL, &frame_height);
-
-      FRAME_MSPRINTER_BOTTOM_MARGIN(f) = 
-	MulDiv (GetDeviceCaps (hdc, PHYSICALHEIGHT)
-		- (frame_top + frame_height), 1440,
-		GetDeviceCaps (hdc, LOGPIXELSY));
-    }		
-  else
-    frame_height = (GetDeviceCaps (hdc, PHYSICALHEIGHT)
-		    - frame_top
-		    - MulDiv (GetDeviceCaps (hdc, LOGPIXELSY),
-			      FRAME_MSPRINTER_BOTTOM_MARGIN(f), 1440));
-
-  /* Geometry sanity checks */
-  if (!frame_pixsize_valid_p (f, frame_width, frame_height))
-    error ("Area inside print margins has shrunk to naught.");
-
-  if (frame_left < 0
-      || frame_top < 0
-      || frame_left + frame_width > GetDeviceCaps (hdc, HORZRES)
-      || frame_top + frame_height > GetDeviceCaps (hdc, VERTRES))
-    error ("Print area is ouside of the printer's hardware printable area.");
-
-  /* Apply XEmacs frame geometry and layout windows */
-  {
-    int rows, columns;
-    FRAME_PIXWIDTH(f) = frame_width;
-    FRAME_PIXHEIGHT(f) = frame_height;
-    pixel_to_char_size (f, frame_width, frame_height, &columns, &rows);
-    change_frame_size (f, rows, columns, 0);
-  }
-
-  FRAME_MSPRINTER_PIXLEFT(f) = frame_left;
-  FRAME_MSPRINTER_PIXTOP(f) = frame_top;
-
-  /* Start print job */
-  di.cbSize = sizeof (di);
-  di.lpszDocName = (STRINGP(f->name)
-		    ? (char*) XSTRING_DATA(f->name)
-		    : "XEmacs print document");
-  di.lpszOutput = NULL;
-  di.lpszDatatype = NULL;
-  di.fwType = 0;
-
-  if (StartDoc (hdc, &di) <= 0)
-    error ("Cannot start print job");
-
-  apply_dc_geometry (f);
-
-  /* Finish frame setup */
-  FRAME_MSPRINTER_JOB_STARTED (f) = 1;
-  FRAME_VISIBLE_P(f) = 0;
-}
-
-static void
-msprinter_mark_frame (struct frame *f)
-{
-}
-
-static void
-msprinter_delete_frame (struct frame *f)
-{
-  if (f->frame_data)
-    {
-      HDC hdc = DEVICE_MSPRINTER_HDC (XDEVICE (FRAME_DEVICE (f)));
-      if (FRAME_MSPRINTER_PAGE_STARTED (f))
-	EndPage (hdc);
-      if (FRAME_MSPRINTER_JOB_STARTED (f))
-	EndDoc (hdc);
-      xfree (f->frame_data);
-    }
-
-  f->frame_data = 0;
-}
-
-static Lisp_Object
-msprinter_frame_property (struct frame *f, Lisp_Object property)
-{
-  if (EQ (Qleft_margin, property))
-    return make_int (FRAME_MSPRINTER_LEFT_MARGIN(f));
-  else if (EQ (Qtop_margin, property))
-    return make_int (FRAME_MSPRINTER_TOP_MARGIN(f));
-  if (EQ (Qright_margin, property))
-    return make_int (FRAME_MSPRINTER_RIGHT_MARGIN(f));
-  else if (EQ (Qbottom_margin, property))
-    return make_int (FRAME_MSPRINTER_BOTTOM_MARGIN(f));
-  else
-    return Qunbound;
-}
-
-static int
-msprinter_internal_frame_property_p (struct frame *f, Lisp_Object property)
-{
-  return (EQ (Qleft_margin, property) || EQ (Qtop_margin, property) ||
-	  EQ (Qright_margin, property) || EQ (Qbottom_margin, property));
-}
-
-static Lisp_Object
-msprinter_frame_properties (struct frame *f)
-{
-  Lisp_Object props = Qnil;
-  props = cons3 (Qbottom_margin,
-		 make_int (FRAME_MSPRINTER_BOTTOM_MARGIN(f)), props);
-  props = cons3 (Qright_margin,
-		 make_int (FRAME_MSPRINTER_RIGHT_MARGIN(f)), props);
-  props = cons3 (Qtop_margin,
-		 make_int (FRAME_MSPRINTER_TOP_MARGIN(f)), props);
-  props = cons3 (Qleft_margin,
-		 make_int (FRAME_MSPRINTER_LEFT_MARGIN(f)), props);
-  return props;
-}
-
-static void
-msprinter_set_frame_properties (struct frame *f, Lisp_Object plist)
-{
-  Lisp_Object tail;
-
-  /* Extract the properties from plist */
-  for (tail = plist; !NILP (tail); tail = Fcdr (Fcdr (tail)))
-    {
-      Lisp_Object prop = Fcar (tail);
-      Lisp_Object val = Fcar (Fcdr (tail));
-
-      if (SYMBOLP (prop))
-	{
-	  if (EQ (prop, Qwidth))
-	    {
-	      maybe_error_if_job_active (f);
-	      if (!NILP (val))
-		{
-		  CHECK_NATNUM (val);
-		  FRAME_MSPRINTER_CHARWIDTH(f) = XINT (val);
-		}
-	    }
-	  if (EQ (prop, Qheight))
-	    {
-	      maybe_error_if_job_active (f);
-	      if (!NILP (val))
-		{
-		  CHECK_NATNUM (val);
-		  FRAME_MSPRINTER_CHARHEIGHT(f) = XINT (val);
-		}
-	    }
-	  else if (EQ (prop, Qleft_margin))
-	    {
-	      maybe_error_if_job_active (f);
-	      CHECK_NATNUM (val);
-	      FRAME_MSPRINTER_LEFT_MARGIN(f) = XINT (val);
-	    }
-	  else if (EQ (prop, Qtop_margin))
-	    {
-	      maybe_error_if_job_active (f);
-	      CHECK_NATNUM (val);
-	      FRAME_MSPRINTER_TOP_MARGIN(f) = XINT (val);
-	    }
-	  else if (EQ (prop, Qright_margin))
-	    {
-	      maybe_error_if_job_active (f);
-	      CHECK_NATNUM (val);
-	      FRAME_MSPRINTER_RIGHT_MARGIN(f) = XINT (val);
-	    }
-	  else if (EQ (prop, Qbottom_margin))
-	    {
-	      maybe_error_if_job_active (f);
-	      CHECK_NATNUM (val);
-	      FRAME_MSPRINTER_BOTTOM_MARGIN(f) = XINT (val);
-	    }
-	}
-    }
-}
-
-static void
-msprinter_set_frame_size (struct frame *f, int width, int height)
-{
-  /* We're absolutely unsizeable */
-  error_frame_unsizable (f);
-}
-
-static void
-msprinter_eject_page (struct frame *f)
-{
-  /* #### Should we eject empty pages? */
-  if (FRAME_MSPRINTER_PAGE_STARTED (f))
-    {
-      FRAME_MSPRINTER_PAGE_STARTED (f) = 0;
-      EndPage (DEVICE_MSPRINTER_HDC (XDEVICE (FRAME_DEVICE (f))));
-      apply_dc_geometry (f);
-    }
-}
-
-
 void
 console_type_create_frame_mswindows (void)
 {
-  /* Display frames */
+  /* frame methods */
   CONSOLE_HAS_METHOD (mswindows, init_frame_1);
   CONSOLE_HAS_METHOD (mswindows, init_frame_2); 
   CONSOLE_HAS_METHOD (mswindows, init_frame_3);
@@ -1060,18 +733,6 @@
   CONSOLE_HAS_METHOD (mswindows, get_frame_parent);
   CONSOLE_HAS_METHOD (mswindows, update_frame_external_traits);
   CONSOLE_HAS_METHOD (mswindows, frame_size_fixed_p);
-
-  /* Printer frames, aka print jobs */
-  CONSOLE_HAS_METHOD (msprinter, init_frame_1);
-  CONSOLE_HAS_METHOD (msprinter, init_frame_3);
-  CONSOLE_HAS_METHOD (msprinter, mark_frame);
-  CONSOLE_HAS_METHOD (msprinter, delete_frame);
-  CONSOLE_HAS_METHOD (msprinter, frame_property);
-  CONSOLE_HAS_METHOD (msprinter, internal_frame_property_p);
-  CONSOLE_HAS_METHOD (msprinter, frame_properties);
-  CONSOLE_HAS_METHOD (msprinter, set_frame_properties);
-  CONSOLE_HAS_METHOD (msprinter, set_frame_size);
-  CONSOLE_HAS_METHOD (msprinter, eject_page);
 }
 
 void
@@ -1080,16 +741,10 @@
 }
 
 void
-reinit_vars_of_frame_mswindows (void)
+vars_of_frame_mswindows (void)
 {
   /* Needn't staticpro -- see comment above.  */
   Vmswindows_frame_being_created = Qnil;
-}
-
-void
-vars_of_frame_mswindows (void)
-{
-  reinit_vars_of_frame_mswindows ();
 
   DEFVAR_LISP ("mswindows-use-system-frame-size-defaults", &Vmswindows_use_system_frame_size_defaults /*
 Controls whether to use system or XEmacs defaults for frame size.
@@ -1138,43 +793,4 @@
 
   mswindows_console_methods->device_specific_frame_props =
     &Vdefault_mswindows_frame_plist;
-
-  DEFVAR_LISP ("default-msprinter-frame-plist", &Vdefault_msprinter_frame_plist /*
-Plist of default frame-creation properties for msprinter print job frames.
-These override what is specified in `default-frame-plist', but are
-overridden by the arguments to the particular call to `make-frame'.
-
-Note: In many cases, properties of a frame are available as specifiers
-instead of through the frame-properties mechanism.
-
-Here is a list of recognized frame properties, other than those
-documented in `set-frame-properties' (they can be queried and
-set at any time, except as otherwise noted):
-
-  left-margin                   Margin of the page, in twips. Twip is a
-  top-margin			typographical unit of measurement,
-  right-margin                  equal to 1/1440 of an inch, or 1/20 of a
-  bottom-margin			point, and roughly equal to 7/400 of a
-				millimeter. If not specifified, each margin
-				defaults to one inch (25.4 mm).
-
-     MARGINS NOTE. right-margin and bottom-margin are overridden by
-       the height and width properties. If you want to specify size
-       of the printable area in character, as with the rest of XEmacs,
-       use these properties. If height and/or width are nil, then
-       corresponding margin setting is taken into account. If you
-       specify height and/or width in `default-frame-plist', but still
-       want to specify right/bottom margins, set height/width in this
-       plist to nil, as in this example:
-
-	  (setq default-frame-plist '(height 55 'width 80)
-		default-msprinter-frame-plist '(height nil 'width nil))
-
-See also `default-frame-plist', which specifies properties which apply
-to all frames, not just mswindows frames.
-*/ );
-  Vdefault_msprinter_frame_plist = Qnil;
-
-  msprinter_console_methods->device_specific_frame_props =
-    &Vdefault_msprinter_frame_plist;
 }