55 |
extern void free_frame_menubar (); |
extern void free_frame_menubar (); |
56 |
extern double atof (); |
extern double atof (); |
57 |
extern int w32_console_toggle_lock_key (int vk_code, Lisp_Object new_state); |
extern int w32_console_toggle_lock_key (int vk_code, Lisp_Object new_state); |
58 |
|
extern void w32_menu_display_help (HWND owner, HMENU menu, UINT menu_item, UINT flags); |
59 |
extern int quit_char; |
extern int quit_char; |
60 |
|
|
61 |
/* A definition of XColor for non-X frames. */ |
/* A definition of XColor for non-X frames. */ |
4687 |
goto dflt; |
goto dflt; |
4688 |
|
|
4689 |
case WM_MENUSELECT: |
case WM_MENUSELECT: |
4690 |
#if DIRECT_MENU_HELP |
/* Direct handling of help_echo in menus. Should be safe now |
4691 |
|
that we generate the help_echo by placing a help event in the |
4692 |
|
keyboard buffer. */ |
4693 |
{ |
{ |
|
/* Tooltips seemed to behave better when help_echo was directly |
|
|
displayed, but this causes crashes when GC kicks in when the |
|
|
tip_frame is active. */ |
|
4694 |
HMENU menu = (HMENU) lParam; |
HMENU menu = (HMENU) lParam; |
4695 |
UINT menu_item = (UINT) LOWORD (wParam); |
UINT menu_item = (UINT) LOWORD (wParam); |
4696 |
UINT flags = (UINT) HIWORD (wParam); |
UINT flags = (UINT) HIWORD (wParam); |
4697 |
|
|
4698 |
BLOCK_INPUT; |
w32_menu_display_help (hwnd, menu, menu_item, flags); |
|
w32_menu_display_help (menu, menu_item, flags); |
|
|
UNBLOCK_INPUT; |
|
4699 |
} |
} |
|
#else |
|
|
wmsg.dwModifiers = w32_get_modifiers (); |
|
|
my_post_msg (&wmsg, hwnd, msg, wParam, lParam); |
|
|
#endif |
|
4700 |
return 0; |
return 0; |
4701 |
|
|
4702 |
case WM_MEASUREITEM: |
case WM_MEASUREITEM: |
13541 |
/* Let the row go over the full width of the frame. */ |
/* Let the row go over the full width of the frame. */ |
13542 |
row->full_width_p = 1; |
row->full_width_p = 1; |
13543 |
|
|
13544 |
|
#ifdef TODO /* Investigate why some fonts need more width than is |
13545 |
|
calculated for some tooltips. */ |
13546 |
/* There's a glyph at the end of rows that is use to place |
/* There's a glyph at the end of rows that is use to place |
13547 |
the cursor there. Don't include the width of this glyph. */ |
the cursor there. Don't include the width of this glyph. */ |
13548 |
if (row->used[TEXT_AREA]) |
if (row->used[TEXT_AREA]) |
13551 |
row_width = row->pixel_width - last->pixel_width; |
row_width = row->pixel_width - last->pixel_width; |
13552 |
} |
} |
13553 |
else |
else |
13554 |
|
#endif |
13555 |
row_width = row->pixel_width; |
row_width = row->pixel_width; |
13556 |
|
|
13557 |
/* TODO: find why tips do not draw along baseline as instructed. */ |
/* TODO: find why tips do not draw along baseline as instructed. */ |