(code_convert_string): Maybe use make_unibyte_string.
[bpt/emacs.git] / lwlib / lwlib.c
index 6569b38..981c92e 100644 (file)
@@ -238,6 +238,7 @@ copy_widget_value_tree (val, change)
   copy->selected = val->selected;
   copy->edited = False;
   copy->change = change;
+  copy->this_one_change = change;
   copy->contents = copy_widget_value_tree (val->contents, change);
   copy->call_data = val->call_data;
   copy->next = copy_widget_value_tree (val->next, change);
@@ -439,7 +440,7 @@ merge_widget_value (val1, val2, level)
      widget_value* val2;
      int level;
 {
-  change_type change;
+  change_type change, this_one_change;
   widget_value* merged_next;
   widget_value* merged_contents;
 
@@ -525,11 +526,18 @@ merge_widget_value (val1, val2, level)
          EXPLAIN (val1->name, change, INVISIBLE_CHANGE, "(contents change)",
                   0, 0);
          change = max (change, INVISIBLE_CHANGE);
+#if 0 /* This was replaced by the August 9 1996 change in lwlib-Xm.c.  */
+#ifdef USE_MOTIF
+         change = max (merged_contents->change, change);
+#endif
+#endif
        }
       
       val1->contents = merged_contents;
     }
 
+  this_one_change = change;
+
   merged_next = merge_widget_value (val1->next, val2->next, level);
 
   if (val1->next && !merged_next)
@@ -548,6 +556,7 @@ merge_widget_value (val1, val2, level)
 
   val1->next = merged_next;
 
+  val1->this_one_change = this_one_change;
   val1->change = change;
   
   if (change > NO_CHANGE && val1->toolkit_data)
@@ -1345,9 +1354,10 @@ lw_window_is_in_menubar (win, menubar_widget)
       && XtWindow (menubar_widget) == win;
 #endif
 #if defined (USE_MOTIF)
-      && XtWindowToWidget (XtDisplay (menubar_widget), win)
-      && (XtParent (XtWindowToWidget (XtDisplay (menubar_widget), win))
-         == menubar_widget);
+      && ((XtWindow (menubar_widget) == win)
+         || (XtWindowToWidget (XtDisplay (menubar_widget), win)
+             && (XtParent (XtWindowToWidget (XtDisplay (menubar_widget), win))
+                 == menubar_widget)));
 #endif
 }