break;
case SB_ENDSCROLL:
default:
+ SetScrollPos (SCROLL_BAR_WIN32_WINDOW (bar), SB_CTL, y, TRUE);
return FALSE;
}
{
switch (msg.msg.message)
{
+#if 0
case WM_ERASEBKGND:
f = x_window_to_frame (dpyinfo, msg.msg.hwnd);
if (f)
win32_clear_rect (f, NULL, &msg.rect);
}
break;
+#endif
case WM_PAINT:
{
f = x_window_to_frame (dpyinfo, msg.msg.hwnd);
}
else
{
+ /* WM_ERASEBKGND is only generated (and processed)
+ in response to WM_PAINT, so emulate that
+ behaviour here. */
+ win32_clear_rect (f, NULL, &msg.rect);
dumprectangle (f,
msg.rect.left,
msg.rect.top,
msg.rect.right-msg.rect.left+1,
msg.rect.bottom-msg.rect.top+1);
-
}
}
}
add = 1;
}
- /* Throw dead keys away. */
- if (is_dead_key (msg.msg.wParam))
+ /* Throw dead keys away. However, be sure not to
+ throw away the dead key if it was produced using
+ AltGr and there is a valid AltGr scan code for
+ this key. */
+ if (is_dead_key (msg.msg.wParam)
+ && !((VkKeyScan (bufp->code) & 0xff00) == 0x600))
break;
bufp += add;