This commit was generated by cvs2svn to compensate for changes in r1705,
[chise/xemacs-chise.git.1] / src / scrollbar-x.c
index e35084e..39967fd 100644 (file)
@@ -23,10 +23,13 @@ Boston, MA 02111-1307, USA.  */
 
 /* Synched up with: Not in FSF. */
 
+/* This file Mule-ized (more like Mule-verified) by Ben Wing, 7-8-00. */
+
 #include <config.h>
 #include "lisp.h"
 
 #include "console-x.h"
+#include "EmacsFrame.h"
 #include "glyphs-x.h"
 #include "gui-x.h"
 #include "scrollbar-x.h"
@@ -214,6 +217,7 @@ scrollbar_instance_to_widget_value (struct scrollbar_instance *instance)
   wv->scrollbar_data = xnew (scrollbar_values);
 
   wv->name = SCROLLBAR_X_NAME (instance);
+  wv->name = xstrdup (wv->name);
   wv->value = 0;
   wv->key = 0;
   wv->enabled = instance->scrollbar_is_active;
@@ -277,9 +281,7 @@ x_update_scrollbar_instance_status (struct window *w, int active, int size,
        }
 
       if (!wv->scrollbar_data) abort ();
-      xfree (wv->scrollbar_data);
-      wv->scrollbar_data = 0;
-      free_widget_value (wv);
+      free_widget_value_tree (wv);
     }
   else if (managed)
     {
@@ -406,6 +408,9 @@ x_update_vertical_scrollbar_callback (Widget widget, LWLIB_ID id,
     return;
 
   mirror = find_scrollbar_window_mirror (f, id);
+  if (!mirror)
+    return;
+
   win = real_window (mirror, 1);
 
   if (NILP (win))
@@ -609,6 +614,9 @@ x_update_horizontal_scrollbar_callback (Widget widget, LWLIB_ID id,
     return;
 
   mirror = find_scrollbar_window_mirror (f, id);
+  if (!mirror)
+    return;
+
   win = real_window (mirror, 1);
 
   if (NILP (win))
@@ -672,19 +680,6 @@ x_scrollbar_pointer_changed_in_window (struct window *w)
                    0, (Window) NULL);
 }
 
-/* Called directly from x_any_window_to_frame in frame-x.c */
-EMACS_INT
-x_window_is_scrollbar (struct frame *f, Window win)
-{
-  if (!FRAME_X_P (f))
-    return 0;
-
-  if (f->mirror_dirty)
-    update_frame_window_mirror (f);
-  return (EMACS_INT) x_scrollbar_loop (X_WINDOW_IS_SCROLLBAR, f->root_window,
-                                f->root_mirror, 0, win);
-}
-
 /* Make sure that all scrollbars on frame are up-to-date.  Called
    directly from x_set_frame_properties in frame-x.c*/
 void
@@ -745,8 +740,16 @@ console_type_create_scrollbar_x (void)
 }
 
 void
+reinit_vars_of_scrollbar_x (void)
+{
+  stupid_vertical_scrollbar_drag_hack = 1;
+}
+
+void
 vars_of_scrollbar_x (void)
 {
+  reinit_vars_of_scrollbar_x ();
+
 #if defined (LWLIB_SCROLLBARS_LUCID)
   Fprovide (intern ("lucid-scrollbars"));
 #elif defined (LWLIB_SCROLLBARS_MOTIF)
@@ -754,5 +757,4 @@ vars_of_scrollbar_x (void)
 #elif defined (LWLIB_SCROLLBARS_ATHENA)
   Fprovide (intern ("athena-scrollbars"));
 #endif
-  stupid_vertical_scrollbar_drag_hack = 1;
 }