From 1f5df1f78300c861f579886268bc97293857d3fa Mon Sep 17 00:00:00 2001
From: =?utf8?q?Jan=20Dj=C3=A4rv?= <jan.h.d@swipnet.se>
Date: Tue, 23 May 2006 07:19:45 +0000
Subject: [PATCH] * xlwmenu.c: Include xterm.h if emacs instead of declaring
 functions  used.  (string_width): Declare as static.  (Start, pop_up_menu):
 Set is_hint to 0 before calling  handle_motion_event.  (pop_up_menu): Return
 value and parameters for x_catch_errors and  x_uncatch_errors changed.

---
 lwlib/ChangeLog | 10 ++++++++++
 lwlib/xlwmenu.c | 26 +++++++-------------------
 2 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog
index 0bd79a323c7..0a8480b7724 100644
--- a/lwlib/ChangeLog
+++ b/lwlib/ChangeLog
@@ -1,3 +1,13 @@
+2006-05-23  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xlwmenu.c: Include xterm.h if emacs instead of declaring functions
+	used.
+	(string_width): Declare as static.
+	(Start, pop_up_menu): Set is_hint to 0 before calling 
+	handle_motion_event.
+	(pop_up_menu): Return value and parameters for x_catch_errors and
+	x_uncatch_errors changed.
+
 2005-09-27  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* xlwmenu.c (find_next_selectable): 
diff --git a/lwlib/xlwmenu.c b/lwlib/xlwmenu.c
index 0a5d82c4671..77cc50e9d7a 100644
--- a/lwlib/xlwmenu.c
+++ b/lwlib/xlwmenu.c
@@ -53,21 +53,8 @@ extern int gray_bitmap_width;
 extern int gray_bitmap_height;
 extern char *gray_bitmap_bits;
 
-/* Defined in xterm.c.  */
-extern int x_alloc_nearest_color_for_widget __P ((Widget, Colormap, XColor*));
-extern int x_alloc_lighter_color_for_widget __P ((Widget, Display*, Colormap,
-						  unsigned long *,
-						  double, int));
-extern int x_catch_errors __P ((Display*));
-extern void x_uncatch_errors P_ ((Display *, int));
-extern int x_had_errors_p __P ((Display*));
-extern void x_clear_errors __P ((Display*));
-extern unsigned long x_copy_dpy_color __P ((Display *, Colormap,
-					    unsigned long));
-
-/* Defined in xfaces.c.  */
-extern void x_free_dpy_colors __P ((Display *, Screen *, Colormap,
-				    unsigned long *pixels, int npixels));
+#include "xterm.h"
+
 #else /* not emacs */
 
 #include <X11/bitmaps/gray>
@@ -352,7 +339,7 @@ make_old_stack_space (mw, n)
 }
 
 /* Size code */
-int
+static int
 string_width (mw, s)
      XlwMenuWidget mw;
      char *s;
@@ -2088,6 +2075,7 @@ Start (w, ev, params, num_params)
       mw->menu.windows [0].y = ev->xmotion.y_root - ev->xmotion.y;
 
       /* handles the down like a move, slots are compatible */
+      ev->xmotion.is_hint = 0;
       handle_motion_event (mw, &ev->xmotion);
     }
 }
@@ -2425,7 +2413,6 @@ pop_up_menu (mw, event)
   int		borderwidth = mw->menu.shadow_thickness;
   Screen*	screen = XtScreen (mw);
   Display       *display = XtDisplay (mw);
-  int count;
 
   next_release_must_exit = 0;
 
@@ -2472,7 +2459,7 @@ pop_up_menu (mw, event)
     }
 
 #ifdef emacs
-  count = x_catch_errors (display);
+  x_catch_errors (display);
 #endif
   if (XtGrabPointer ((Widget)mw, False,
                      (PointerMotionMask
@@ -2500,9 +2487,10 @@ pop_up_menu (mw, event)
       pointer_grabbed = 0;
       XtUngrabPointer ((Widget)mw, event->time);
     }
-  x_uncatch_errors (display, count);
+  x_uncatch_errors ();
 #endif
 
+  ((XMotionEvent*)event)->is_hint = 0;
   handle_motion_event (mw, (XMotionEvent*)event);
 }
 
-- 
2.39.5