aboutsummaryrefslogtreecommitdiffstats
path: root/src/xterm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xterm.c')
-rw-r--r--src/xterm.c62
1 files changed, 60 insertions, 2 deletions
diff --git a/src/xterm.c b/src/xterm.c
index 8513427972a..85835a2c7c5 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -2952,8 +2952,64 @@ x_clear_frame (struct frame *f)
2952 unblock_input (); 2952 unblock_input ();
2953} 2953}
2954 2954
2955/* RIF: Show hourglass cursor on frame F. */
2956
2957static void
2958x_show_hourglass (struct frame *f)
2959{
2960 Display *dpy = FRAME_X_DISPLAY (f);
2961
2962 if (dpy)
2963 {
2964 struct x_output *x = FRAME_X_OUTPUT (f);
2965#ifdef USE_X_TOOLKIT
2966 if (x->widget)
2967#else
2968 if (FRAME_OUTER_WINDOW (f))
2969#endif
2970 {
2971 x->hourglass_p = 1;
2972
2973 if (!x->hourglass_window)
2974 {
2975 unsigned long mask = CWCursor;
2976 XSetWindowAttributes attrs;
2977#ifdef USE_GTK
2978 Window parent = FRAME_X_WINDOW (f);
2979#else
2980 Window parent = FRAME_OUTER_WINDOW (f);
2981#endif
2982 attrs.cursor = x->hourglass_cursor;
2983
2984 x->hourglass_window = XCreateWindow
2985 (dpy, parent, 0, 0, 32000, 32000, 0, 0,
2986 InputOnly, CopyFromParent, mask, &attrs);
2987 }
2988
2989 XMapRaised (dpy, x->hourglass_window);
2990 XFlush (dpy);
2991 }
2992 }
2993}
2994
2995/* RIF: Cancel hourglass cursor on frame F. */
2996
2997static void
2998x_hide_hourglass (struct frame *f)
2999{
3000 struct x_output *x = FRAME_X_OUTPUT (f);
3001
3002 /* Watch out for newly created frames. */
3003 if (x->hourglass_window)
3004 {
3005 XUnmapWindow (FRAME_X_DISPLAY (f), x->hourglass_window);
3006 /* Sync here because XTread_socket looks at the
3007 hourglass_p flag that is reset to zero below. */
3008 XSync (FRAME_X_DISPLAY (f), False);
3009 x->hourglass_p = 0;
3010 }
3011}
2955 3012
2956
2957/* Invert the middle quarter of the frame for .15 sec. */ 3013/* Invert the middle quarter of the frame for .15 sec. */
2958 3014
2959static void 3015static void
@@ -10431,7 +10487,9 @@ static struct redisplay_interface x_redisplay_interface =
10431 x_draw_window_cursor, 10487 x_draw_window_cursor,
10432 x_draw_vertical_window_border, 10488 x_draw_vertical_window_border,
10433 x_draw_window_divider, 10489 x_draw_window_divider,
10434 x_shift_glyphs_for_insert 10490 x_shift_glyphs_for_insert,
10491 x_show_hourglass,
10492 x_hide_hourglass
10435 }; 10493 };
10436 10494
10437 10495