/* 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"
WINDOW_FACE_CACHEL (w, DEFAULT_INDEX);
struct display_line dl;
Lisp_Object string = IMAGE_INSTANCE_TEXT_STRING (p);
- unsigned char charsets[NUM_LEADING_BYTES];
- Emchar_dynarr *buf;
+ Charset_ID charsets[NUM_LEADING_BYTES];
+ Charc_dynarr *buf;
struct font_metric_info fm;
/* This could be true if we were called via the Expose event
MARK_TOOLBAR_CHANGED;
return;
}
- buf = Dynarr_new (Emchar);
- convert_bufbyte_string_into_emchar_dynarr
+ buf = Dynarr_new (Charc);
+ convert_bufbyte_string_into_charc_dynarr
(XSTRING_DATA (string), XSTRING_LENGTH (string), buf);
- find_charsets_in_emchar_string (charsets, Dynarr_atp (buf, 0),
- Dynarr_length (buf));
+ find_charsets_in_charc_string (charsets, Dynarr_atp (buf, 0),
+ Dynarr_length (buf));
ensure_face_cachel_complete (cachel, window, charsets);
face_cachel_charset_font_metric_info (cachel, charsets, &fm);
|| tb->y != y \
|| tb->width != width \
|| tb->height != height \
- || tb->dirty) \
+ || tb->dirty \
+ || f->clear) /* This is clearly necessary. */ \
{ \
if (width && height) \
{ \
(frame)->right_toolbar_was_visible = flag; \
break; \
default: \
- abort (); \
+ ABORT (); \
} \
} while (0)
if (FRAME_REAL_TOP_TOOLBAR_VISIBLE (f))
x_output_toolbar (f, TOP_TOOLBAR);
- else if (f->top_toolbar_was_visible)
- x_clear_toolbar (f, TOP_TOOLBAR, 0);
-
if (FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f))
x_output_toolbar (f, BOTTOM_TOOLBAR);
- else if (f->bottom_toolbar_was_visible)
- x_clear_toolbar (f, BOTTOM_TOOLBAR, 0);
-
if (FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f))
x_output_toolbar (f, LEFT_TOOLBAR);
- else if (f->left_toolbar_was_visible)
- x_clear_toolbar (f, LEFT_TOOLBAR, 0);
-
if (FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f))
x_output_toolbar (f, RIGHT_TOOLBAR);
- else if (f->right_toolbar_was_visible)
+}
+
+static void
+x_clear_frame_toolbars (struct frame *f)
+{
+ assert (FRAME_X_P (f));
+
+ if (f->top_toolbar_was_visible
+ && !FRAME_REAL_TOP_TOOLBAR_VISIBLE (f))
+ x_clear_toolbar (f, TOP_TOOLBAR, 0);
+ if (f->bottom_toolbar_was_visible
+ && !FRAME_REAL_BOTTOM_TOOLBAR_VISIBLE (f))
+ x_clear_toolbar (f, BOTTOM_TOOLBAR, 0);
+ if (f->left_toolbar_was_visible
+ && !FRAME_REAL_LEFT_TOOLBAR_VISIBLE (f))
+ x_clear_toolbar (f, LEFT_TOOLBAR, 0);
+ if (f->right_toolbar_was_visible
+ && !FRAME_REAL_RIGHT_TOOLBAR_VISIBLE (f))
x_clear_toolbar (f, RIGHT_TOOLBAR, 0);
}
console_type_create_toolbar_x (void)
{
CONSOLE_HAS_METHOD (x, output_frame_toolbars);
+ CONSOLE_HAS_METHOD (x, clear_frame_toolbars);
CONSOLE_HAS_METHOD (x, initialize_frame_toolbars);
CONSOLE_HAS_METHOD (x, free_frame_toolbars);
CONSOLE_HAS_METHOD (x, output_toolbar_button);