extern unsigned int msh_mousewheel;
-extern void free_frame_menubar (struct frame *);
-
extern int w32_codepage_for_font (char *fontname);
extern Cursor w32_load_cursor (LPCTSTR name);
void x_lower_frame (struct frame *);
void x_scroll_bar_clear (struct frame *);
-void x_wm_set_size_hint (struct frame *, long, bool);
void x_raise_frame (struct frame *);
-void x_set_window_size (struct frame *, bool, int, int, bool);
void x_wm_set_window_state (struct frame *, int);
void x_wm_set_icon_pixmap (struct frame *, int);
static void w32_initialize (void);
#endif /* 0 */
\f
-void
+static void
XChangeGC (void *ignore, XGCValues *gc, unsigned long mask,
XGCValues *xgcv)
{
return gc;
}
-void
+#if 0 /* unused for now, see x_draw_image_glyph_string below */
+static void
XGetGCValues (void *ignore, XGCValues *gc,
unsigned long mask, XGCValues *xgcv)
{
XChangeGC (ignore, xgcv, mask, gc);
}
+#endif
static void
w32_set_clip_rectangle (HDC hdc, RECT *rect)
*/
-void
+static void
w32_draw_underwave (struct glyph_string *s, COLORREF color)
{
int wave_height = 3, wave_length = 2;
}
/* Draw a hollow rectangle at the specified position. */
-void
+static void
w32_draw_rectangle (HDC hdc, XGCValues *gc, int x, int y,
int width, int height)
{
r.bottom = y1;
hdc = get_frame_dc (f);
- face = FACE_FROM_ID (f, VERTICAL_BORDER_FACE_ID);
+ face = FACE_FROM_ID_OR_NULL (f, VERTICAL_BORDER_FACE_ID);
if (face)
w32_fill_rect (f, hdc, face->foreground, &r);
else
{
struct frame *f = XFRAME (WINDOW_FRAME (w));
HDC hdc = get_frame_dc (f);
- struct face *face = FACE_FROM_ID (f, WINDOW_DIVIDER_FACE_ID);
- struct face *face_first = FACE_FROM_ID (f, WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID);
- struct face *face_last = FACE_FROM_ID (f, WINDOW_DIVIDER_LAST_PIXEL_FACE_ID);
+ struct face *face = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FACE_ID);
+ struct face *face_first
+ = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_FIRST_PIXEL_FACE_ID);
+ struct face *face_last
+ = FACE_FROM_ID_OR_NULL (f, WINDOW_DIVIDER_LAST_PIXEL_FACE_ID);
unsigned long color = face ? face->foreground : FRAME_FOREGROUND_PIXEL (f);
unsigned long color_first = (face_first
? face_first->foreground
/* What face has to be used last for the mouse face? */
face_id = MOUSE_HL_INFO (s->f)->mouse_face_face_id;
- face = FACE_FROM_ID (s->f, face_id);
+ face = FACE_FROM_ID_OR_NULL (s->f, face_id);
if (face == NULL)
face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
{
sprintf ((char *) buf, "%0*X",
glyph->u.glyphless.ch < 0x10000 ? 4 : 6,
- glyph->u.glyphless.ch);
+ (unsigned int) glyph->u.glyphless.ch);
str = buf;
}
/* Shift display to make room for inserted glyphs. */
-void
+static void
w32_shift_glyphs_for_insert (struct frame *f, int x, int y,
int width, int height, int shift_by)
{
}
+#if 0 /* unused */
/* Handle an event saying the mouse has moved out of an Emacs frame. */
-void
+static void
x_mouse_leave (struct w32_display_info *dpyinfo)
{
x_new_focus_frame (dpyinfo, dpyinfo->w32_focus_event_frame);
}
+#endif
/* The focus has changed, or we have redirected a frame's focus to
another frame (this happens when a frame uses a surrogate
y = si.nPos;
bar->dragging = 0;
+ struct frame *f; /* Value is not used. */
FRAME_DISPLAY_INFO (f)->last_mouse_scroll_bar_pos = msg->msg.wParam;
switch (sb_event)
y = si.nMax - si.nPage;
bar->dragging = 0;
+ struct frame *f; /* Value is not used. */
FRAME_DISPLAY_INFO (f)->last_mouse_scroll_bar_pos = msg->msg.wParam;
switch (sb_event)
recursively with different messages by the system.
*/
+extern void menubar_selection_callback (struct frame *, void *);
+
static int
w32_read_socket (struct terminal *terminal,
struct input_event *hold_quit)
/* wParam non-zero means Window is about to be shown, 0 means
about to be hidden. */
/* Redo the mouse-highlight after the tooltip has gone. */
- if (!msg.msg.wParam && msg.msg.hwnd == tip_window)
- {
- tip_window = NULL;
- x_redo_mouse_highlight (dpyinfo);
- }
+ if (!msg.msg.wParam
+ && dpyinfo->w32_tooltip_frame
+ && FRAME_W32_WINDOW (dpyinfo->w32_tooltip_frame) == msg.msg.hwnd)
+ x_redo_mouse_highlight (dpyinfo);
/* If window has been obscured or exposed by another window
being maximized or minimized/restored, then recheck
}
break;
+ case WM_ENDSESSION:
+ inev.kind = END_SESSION_EVENT;
+ break;
+
case WM_INITMENU:
f = x_window_to_frame (dpyinfo, msg.msg.hwnd);
if (f)
{
- extern void menubar_selection_callback
- (struct frame *f, void * client_data);
menubar_selection_callback (f, (void *)msg.msg.wParam);
}
struct frame *f = XFRAME (frame);
/* The tooltip has been drawn already. Avoid the
SET_FRAME_GARBAGED below. */
- if (EQ (frame, tip_frame))
+ if (FRAME_TOOLTIP_P (f))
continue;
/* Check "visible" frames and mark each as obscured or not.
/* Don't change the size of a tip frame; there's no point in
doing it because it's done in Fx_show_tip, and it leads to
problems because the tip frame has no widget. */
- if (NILP (tip_frame) || XFRAME (tip_frame) != f)
+ if (!FRAME_TOOLTIP_P (f))
adjust_frame_size (f, FRAME_COLS (f) * FRAME_COLUMN_WIDTH (f),
FRAME_LINES (f) * FRAME_LINE_HEIGHT (f), 3,
false, Qfont);
/* Calculate the absolute position in frame F
from its current recorded position values and gravity. */
-void
+static void
x_calc_absolute_position (struct frame *f)
{
int flags = f->size_hint_flags;
}
unblock_input ();
+
+ do_pending_window_change (false);
}
\f
/* Mouse warping. */
dpyinfo->w32_focus_event_frame = 0;
if (f == dpyinfo->x_highlight_frame)
dpyinfo->x_highlight_frame = 0;
+ if (f == dpyinfo->w32_tooltip_frame)
+ dpyinfo->w32_tooltip_frame = 0;
if (f == hlinfo->mouse_face_mouse_frame)
reset_mouse_highlight (hlinfo);
/* Destroy the window of frame F. */
-void
+static void
x_destroy_window (struct frame *f)
{
struct w32_display_info *dpyinfo = FRAME_DISPLAY_INFO (f);