summaryrefslogtreecommitdiff
path: root/lwlib/xlwmenuP.h
diff options
context:
space:
mode:
authorJan D <jan.h.d@swipnet.se>2010-04-17 19:43:03 +0200
committerJan D <jan.h.d@swipnet.se>2010-04-17 19:43:03 +0200
commitf0bd159891705c30252646811a9be281e64e97c0 (patch)
treebeff5f57e266e8a35fb018f233535b513d8c4e49 /lwlib/xlwmenuP.h
parentb8a1d5a14bc98d04128de956f77cd2b723b62cc2 (diff)
downloademacs-f0bd159891705c30252646811a9be281e64e97c0.tar.gz
Don't redraw lucid menus more than needed. Use double buffer to reduce flicker.
* xlwmenu.c: Include Shell.h, remove duplicate declaration of XlwMenuRedisplay. (display_menu_item): Replace ws->window with ws->pixmap, remove call to XftDrawRect. (display_menu): Remove this and that argument. Remove just_compute_this_one_p. Fill pixmap at start and copy it to window at end. (expose_cb): New function. (make_windows_if_needed): Replace XCreateWindow with XtCreatePopup. Add eventhandler for expose to expose_cb. Remove creation of xft_draw. (create_pixmap_for_menu): New function. (remap_menubar): Pop down menus that aren't the same as in old_stack. Set width, heigh, x, y on widget with XtVaSetValues. Call create_pixmap_for_menu. Replace XUnmapWindow with XtPopdown. Remowe two last parameters to display_menu. (map_event_to_widget_value, XlwMenuRedisplay, Key, Select) (pop_up_menu): Remowe two last parameters to display_menu. (XlwMenuRealize): Call create_pixmap_for_menu, set w and pixmap. Remove call to XftDrawCreate. (XlwMenuDestroy): Free pixmap. Call XtDestroyWidget instead of XDestroyWindow. (handle_motion_event): Only call handle_single_motion_event once. * xlwmenuP.h (window_state): Add pixmap and w.
Diffstat (limited to 'lwlib/xlwmenuP.h')
-rw-r--r--lwlib/xlwmenuP.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/lwlib/xlwmenuP.h b/lwlib/xlwmenuP.h
index 39afcc6ca7f..1c2a8e8de14 100644
--- a/lwlib/xlwmenuP.h
+++ b/lwlib/xlwmenuP.h
@@ -32,7 +32,9 @@ Boston, MA 02110-1301, USA. */
/* Elements in the stack arrays. */
typedef struct _window_state
{
+ Widget w;
Window window;
+ Pixmap pixmap;
Position x;
Position y;
Dimension width;