Mercurial > hg > xemacs-beta
diff src/toolbar-msw.c @ 398:74fd4e045ea6 r21-2-29
Import from CVS: tag r21-2-29
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:13:30 +0200 |
parents | 8626e4521993 |
children | a86b2b5e0111 |
line wrap: on
line diff
--- a/src/toolbar-msw.c Mon Aug 13 11:12:06 2007 +0200 +++ b/src/toolbar-msw.c Mon Aug 13 11:13:30 2007 +0200 @@ -59,6 +59,9 @@ #define MSWINDOWS_BLANK_SIZE 5 #define MSWINDOWS_MINIMUM_TOOLBAR_SIZE 8 +static void +mswindows_move_toolbar (struct frame *f, enum toolbar_pos pos); + #define SET_TOOLBAR_WAS_VISIBLE_FLAG(frame, pos, flag) \ do { \ switch (pos) \ @@ -205,10 +208,11 @@ { struct toolbar_button *tb = XTOOLBAR_BUTTON (button); - checksum = HASH4 (checksum, + checksum = HASH5 (checksum, internal_hash (get_toolbar_button_glyph(w, tb), 0), internal_hash (tb->callback, 0), - width); + width, + LISP_HASH (w->toolbar_buttons_captioned_p)); button = tb->next; nbuttons++; } @@ -258,7 +262,7 @@ if (IMAGE_INSTANCEP (instance)) { - struct Lisp_Image_Instance* p = XIMAGE_INSTANCE (instance); + Lisp_Image_Instance* p = XIMAGE_INSTANCE (instance); if (IMAGE_INSTANCE_PIXMAP_TYPE_P (p)) { @@ -459,6 +463,9 @@ /* now display the window */ ShowWindow (toolbarwnd, SW_SHOW); + /* no idea why this is necessary but initial display will not + happen otherwise. */ + mswindows_move_toolbar (f, pos); if (button_tbl) xfree (button_tbl); @@ -524,6 +531,13 @@ } static void +mswindows_redraw_frame_toolbars (struct frame *f) +{ + mswindows_redraw_exposed_toolbars (f, 0, 0, FRAME_PIXWIDTH (f), + FRAME_PIXHEIGHT (f)); +} + +static void mswindows_initialize_frame_toolbars (struct frame *f) { @@ -572,7 +586,7 @@ } /* map toolbar hwnd to pos*/ -int mswindows_find_toolbar_pos(struct frame* f, HWND ctrl) +static int mswindows_find_toolbar_pos(struct frame* f, HWND ctrl) { int id = GetDlgCtrlID(ctrl); return id ? id - TOOLBAR_ID_BIAS : -1; @@ -635,5 +649,6 @@ CONSOLE_HAS_METHOD (mswindows, initialize_frame_toolbars); CONSOLE_HAS_METHOD (mswindows, free_frame_toolbars); CONSOLE_HAS_METHOD (mswindows, redraw_exposed_toolbars); + CONSOLE_HAS_METHOD (mswindows, redraw_frame_toolbars); }