XEmacs 21.2.20 "Yoko".
[chise/xemacs-chise.git.1] / src / frame-msw.c
index e7c19a0..6eaac63 100644 (file)
@@ -181,7 +181,9 @@ mswindows_init_frame_1 (struct frame *f, Lisp_Object props)
   hwnd = CreateWindowEx (exstyle,
                         XEMACS_CLASS,
                         STRINGP(f->name) ? XSTRING_DATA(f->name) :
-                        (STRINGP(name) ? XSTRING_DATA(name) : XEMACS_CLASS),
+                        (STRINGP(name) ? 
+                         (CONST Extbyte*)XSTRING_DATA(name) : 
+                         (CONST Extbyte*)XEMACS_CLASS),
                         style,
                         rect_default.left, rect_default.top,
                         rect_default.width, rect_default.height,
@@ -246,13 +248,13 @@ mswindows_after_init_frame (struct frame *f, int first_on_device,
 }
 
 static void
-mswindows_mark_frame (struct frame *f, void (*markobj) (Lisp_Object))
+mswindows_mark_frame (struct frame *f)
 {
-  markobj (FRAME_MSWINDOWS_MENU_HASH_TABLE (f));
+  mark_object (FRAME_MSWINDOWS_MENU_HASH_TABLE (f));
 #ifdef HAVE_TOOLBARS
-  markobj (FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE (f));
+  mark_object (FRAME_MSWINDOWS_TOOLBAR_HASH_TABLE (f));
 #endif
-  markobj (FRAME_MSWINDOWS_WIDGET_HASH_TABLE (f));
+  mark_object (FRAME_MSWINDOWS_WIDGET_HASH_TABLE (f));
 }
 
 static void
@@ -306,10 +308,10 @@ mswindows_set_frame_position (struct frame *f, int xoff, int yoff)
 static void
 mswindows_make_frame_visible (struct frame *f) 
 {
-  if (f->iconified)
+  if (!FRAME_VISIBLE_P(f))
     ShowWindow (FRAME_MSWINDOWS_HANDLE(f), SW_RESTORE);
   else
-    ShowWindow (FRAME_MSWINDOWS_HANDLE(f), SW_SHOWNORMAL);
+    ShowWindow (FRAME_MSWINDOWS_HANDLE(f), SW_SHOW);
   f->visible = 1;
   f->iconified = 0;
 }
@@ -317,8 +319,11 @@ mswindows_make_frame_visible (struct frame *f)
 static void
 mswindows_make_frame_invisible (struct frame *f) 
 {
+  if (!FRAME_VISIBLE_P(f))
+    return;
+
   ShowWindow (FRAME_MSWINDOWS_HANDLE(f), SW_HIDE);
-  f->visible = -1;
+  f->visible = 0;
 }
 
 static int
@@ -461,7 +466,6 @@ static void
 mswindows_raise_frame (struct frame *f)
 {
   BringWindowToTop (FRAME_MSWINDOWS_HANDLE(f));
-  /* XXX Should we do SetWindowForeground too ? */
 }
 
 static void
@@ -737,10 +741,16 @@ syms_of_frame_mswindows (void)
 }
 
 void
-vars_of_frame_mswindows (void)
+reinit_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.