diff options
Diffstat (limited to 'src/w32fns.c')
| -rw-r--r-- | src/w32fns.c | 41 |
1 files changed, 34 insertions, 7 deletions
diff --git a/src/w32fns.c b/src/w32fns.c index e490588d01b..b0842b5ee6c 100644 --- a/src/w32fns.c +++ b/src/w32fns.c | |||
| @@ -5889,6 +5889,8 @@ This function is an internal primitive--use `make-frame' instead. */) | |||
| 5889 | NULL, NULL, RES_TYPE_BOOLEAN); | 5889 | NULL, NULL, RES_TYPE_BOOLEAN); |
| 5890 | x_default_parameter (f, parameters, Qno_accept_focus, Qnil, | 5890 | x_default_parameter (f, parameters, Qno_accept_focus, Qnil, |
| 5891 | NULL, NULL, RES_TYPE_BOOLEAN); | 5891 | NULL, NULL, RES_TYPE_BOOLEAN); |
| 5892 | x_default_parameter (f, parameters, Qno_special_glyphs, Qnil, | ||
| 5893 | NULL, NULL, RES_TYPE_BOOLEAN); | ||
| 5892 | 5894 | ||
| 5893 | /* Process alpha here (Bug#16619). On XP this fails with child | 5895 | /* Process alpha here (Bug#16619). On XP this fails with child |
| 5894 | frames. For `no-focus-on-map' frames delay processing of alpha | 5896 | frames. For `no-focus-on-map' frames delay processing of alpha |
| @@ -5957,6 +5959,14 @@ This function is an internal primitive--use `make-frame' instead. */) | |||
| 5957 | f->output_data.w32->hourglass_cursor = w32_load_cursor (IDC_WAIT); | 5959 | f->output_data.w32->hourglass_cursor = w32_load_cursor (IDC_WAIT); |
| 5958 | f->output_data.w32->horizontal_drag_cursor = w32_load_cursor (IDC_SIZEWE); | 5960 | f->output_data.w32->horizontal_drag_cursor = w32_load_cursor (IDC_SIZEWE); |
| 5959 | f->output_data.w32->vertical_drag_cursor = w32_load_cursor (IDC_SIZENS); | 5961 | f->output_data.w32->vertical_drag_cursor = w32_load_cursor (IDC_SIZENS); |
| 5962 | f->output_data.w32->left_edge_cursor = w32_load_cursor (IDC_SIZEWE); | ||
| 5963 | f->output_data.w32->top_left_corner_cursor = w32_load_cursor (IDC_SIZENWSE); | ||
| 5964 | f->output_data.w32->top_edge_cursor = w32_load_cursor (IDC_SIZENS); | ||
| 5965 | f->output_data.w32->top_right_corner_cursor = w32_load_cursor (IDC_SIZENESW); | ||
| 5966 | f->output_data.w32->right_edge_cursor = w32_load_cursor (IDC_SIZEWE); | ||
| 5967 | f->output_data.w32->bottom_right_corner_cursor = w32_load_cursor (IDC_SIZENWSE); | ||
| 5968 | f->output_data.w32->bottom_edge_cursor = w32_load_cursor (IDC_SIZENS); | ||
| 5969 | f->output_data.w32->bottom_left_corner_cursor = w32_load_cursor (IDC_SIZENESW); | ||
| 5960 | 5970 | ||
| 5961 | f->output_data.w32->current_cursor = f->output_data.w32->nontext_cursor; | 5971 | f->output_data.w32->current_cursor = f->output_data.w32->nontext_cursor; |
| 5962 | 5972 | ||
| @@ -7049,6 +7059,8 @@ x_create_tip_frame (struct w32_display_info *dpyinfo, Lisp_Object parms) | |||
| 7049 | "cursorColor", "Foreground", RES_TYPE_STRING); | 7059 | "cursorColor", "Foreground", RES_TYPE_STRING); |
| 7050 | x_default_parameter (f, parms, Qborder_color, build_string ("black"), | 7060 | x_default_parameter (f, parms, Qborder_color, build_string ("black"), |
| 7051 | "borderColor", "BorderColor", RES_TYPE_STRING); | 7061 | "borderColor", "BorderColor", RES_TYPE_STRING); |
| 7062 | x_default_parameter (f, parms, Qno_special_glyphs, Qt, | ||
| 7063 | NULL, NULL, RES_TYPE_BOOLEAN); | ||
| 7052 | 7064 | ||
| 7053 | /* Init faces before x_default_parameter is called for the | 7065 | /* Init faces before x_default_parameter is called for the |
| 7054 | scroll-bar-width parameter because otherwise we end up in | 7066 | scroll-bar-width parameter because otherwise we end up in |
| @@ -8950,33 +8962,47 @@ menu bar or tool bar of FRAME. */) | |||
| 8950 | if (EQ (type, Qouter_edges)) | 8962 | if (EQ (type, Qouter_edges)) |
| 8951 | { | 8963 | { |
| 8952 | RECT rectangle; | 8964 | RECT rectangle; |
| 8965 | BOOL success = false; | ||
| 8953 | 8966 | ||
| 8954 | block_input (); | 8967 | block_input (); |
| 8955 | /* Outer frame rectangle, including outer borders and title bar. */ | 8968 | /* Outer frame rectangle, including outer borders and title bar. */ |
| 8956 | GetWindowRect (FRAME_W32_WINDOW (f), &rectangle); | 8969 | success = GetWindowRect (FRAME_W32_WINDOW (f), &rectangle); |
| 8957 | unblock_input (); | 8970 | unblock_input (); |
| 8958 | 8971 | ||
| 8959 | return list4 (make_number (rectangle.left), | 8972 | if (success) |
| 8960 | make_number (rectangle.top), | 8973 | return list4 (make_number (rectangle.left), |
| 8961 | make_number (rectangle.right), | 8974 | make_number (rectangle.top), |
| 8962 | make_number (rectangle.bottom)); | 8975 | make_number (rectangle.right), |
| 8976 | make_number (rectangle.bottom)); | ||
| 8977 | else | ||
| 8978 | return Qnil; | ||
| 8963 | } | 8979 | } |
| 8964 | else | 8980 | else |
| 8965 | { | 8981 | { |
| 8966 | RECT rectangle; | 8982 | RECT rectangle; |
| 8967 | POINT pt; | 8983 | POINT pt; |
| 8968 | int left, top, right, bottom; | 8984 | int left, top, right, bottom; |
| 8985 | BOOL success; | ||
| 8969 | 8986 | ||
| 8970 | block_input (); | 8987 | block_input (); |
| 8971 | /* Inner frame rectangle, excluding borders and title bar. */ | 8988 | /* Inner frame rectangle, excluding borders and title bar. */ |
| 8972 | GetClientRect (FRAME_W32_WINDOW (f), &rectangle); | 8989 | success = GetClientRect (FRAME_W32_WINDOW (f), &rectangle); |
| 8973 | /* Get top-left corner of native rectangle in screen | 8990 | /* Get top-left corner of native rectangle in screen |
| 8974 | coordinates. */ | 8991 | coordinates. */ |
| 8992 | if (!success) | ||
| 8993 | { | ||
| 8994 | unblock_input (); | ||
| 8995 | return Qnil; | ||
| 8996 | } | ||
| 8997 | |||
| 8975 | pt.x = 0; | 8998 | pt.x = 0; |
| 8976 | pt.y = 0; | 8999 | pt.y = 0; |
| 8977 | ClientToScreen (FRAME_W32_WINDOW (f), &pt); | 9000 | success = ClientToScreen (FRAME_W32_WINDOW (f), &pt); |
| 8978 | unblock_input (); | 9001 | unblock_input (); |
| 8979 | 9002 | ||
| 9003 | if (!success) | ||
| 9004 | return Qnil; | ||
| 9005 | |||
| 8980 | left = pt.x; | 9006 | left = pt.x; |
| 8981 | top = pt.y; | 9007 | top = pt.y; |
| 8982 | right = left + rectangle.right; | 9008 | right = left + rectangle.right; |
| @@ -10330,6 +10356,7 @@ frame_parm_handler w32_frame_parm_handlers[] = | |||
| 10330 | x_set_no_accept_focus, | 10356 | x_set_no_accept_focus, |
| 10331 | x_set_z_group, | 10357 | x_set_z_group, |
| 10332 | 0, /* x_set_override_redirect */ | 10358 | 0, /* x_set_override_redirect */ |
| 10359 | x_set_no_special_glyphs, | ||
| 10333 | }; | 10360 | }; |
| 10334 | 10361 | ||
| 10335 | void | 10362 | void |