comparison src/event-Xt.c @ 424:11054d720c21 r21-2-20

Import from CVS: tag r21-2-20
author cvs
date Mon, 13 Aug 2007 11:26:11 +0200
parents 95016f13131a
children
comparison
equal deleted inserted replaced
423:28d9c139be4c 424:11054d720c21
1567 case PropertyNotify: 1567 case PropertyNotify:
1568 x_handle_property_notify (&event->xproperty); 1568 x_handle_property_notify (&event->xproperty);
1569 break; 1569 break;
1570 1570
1571 case Expose: 1571 case Expose:
1572 x_redraw_exposed_area (f, event->xexpose.x, event->xexpose.y, 1572 if (!check_for_ignored_expose (f, event->xexpose.x, event->xexpose.y,
1573 event->xexpose.width, event->xexpose.height); 1573 event->xexpose.width, event->xexpose.height)
1574 &&
1575 !find_matching_subwindow (f, event->xexpose.x, event->xexpose.y,
1576 event->xexpose.width, event->xexpose.height))
1577 x_redraw_exposed_area (f, event->xexpose.x, event->xexpose.y,
1578 event->xexpose.width, event->xexpose.height);
1574 break; 1579 break;
1575 1580
1576 case GraphicsExpose: /* This occurs when an XCopyArea's source area was 1581 case GraphicsExpose: /* This occurs when an XCopyArea's source area was
1577 obscured or not available. */ 1582 obscured or not available. */
1578 x_redraw_exposed_area (f, event->xexpose.x, event->xexpose.y, 1583 x_redraw_exposed_area (f, event->xexpose.x, event->xexpose.y,
1661 static int timeout_id_tick; 1666 static int timeout_id_tick;
1662 1667
1663 /* Xt interval id's might not fit into an int (they're pointers, as it 1668 /* Xt interval id's might not fit into an int (they're pointers, as it
1664 happens), so we need to provide a conversion list. */ 1669 happens), so we need to provide a conversion list. */
1665 1670
1666 struct Xt_timeout 1671 static struct Xt_timeout
1667 { 1672 {
1668 int id; 1673 int id;
1669 XtIntervalId interval_id; 1674 XtIntervalId interval_id;
1670 struct Xt_timeout *next; 1675 struct Xt_timeout *next;
1671 } *pending_timeouts, *completed_timeouts; 1676 } *pending_timeouts, *completed_timeouts;
1672 1677
1673 struct Xt_timeout_blocktype 1678 static struct Xt_timeout_blocktype
1674 { 1679 {
1675 Blocktype_declare (struct Xt_timeout); 1680 Blocktype_declare (struct Xt_timeout);
1676 } *the_Xt_timeout_blocktype; 1681 } *the_Xt_timeout_blocktype;
1677 1682
1678 /* called by XtAppNextEvent() */ 1683 /* called by XtAppNextEvent() */
2916 defsymbol (&Qkey_mapping, "key-mapping"); 2921 defsymbol (&Qkey_mapping, "key-mapping");
2917 defsymbol (&Qsans_modifiers, "sans-modifiers"); 2922 defsymbol (&Qsans_modifiers, "sans-modifiers");
2918 } 2923 }
2919 2924
2920 void 2925 void
2921 vars_of_event_Xt (void) 2926 reinit_vars_of_event_Xt (void)
2922 { 2927 {
2923 dispatch_event_queue = Qnil;
2924 staticpro (&dispatch_event_queue);
2925 dispatch_event_queue_tail = Qnil;
2926
2927 /* this function only makes safe calls */
2928 init_what_input_once ();
2929
2930 Xt_event_stream = xnew (struct event_stream); 2928 Xt_event_stream = xnew (struct event_stream);
2931 Xt_event_stream->event_pending_p = emacs_Xt_event_pending_p; 2929 Xt_event_stream->event_pending_p = emacs_Xt_event_pending_p;
2932 Xt_event_stream->next_event_cb = emacs_Xt_next_event; 2930 Xt_event_stream->next_event_cb = emacs_Xt_next_event;
2933 Xt_event_stream->handle_magic_event_cb = emacs_Xt_handle_magic_event; 2931 Xt_event_stream->handle_magic_event_cb = emacs_Xt_handle_magic_event;
2934 Xt_event_stream->add_timeout_cb = emacs_Xt_add_timeout; 2932 Xt_event_stream->add_timeout_cb = emacs_Xt_add_timeout;
2939 Xt_event_stream->unselect_process_cb = emacs_Xt_unselect_process; 2937 Xt_event_stream->unselect_process_cb = emacs_Xt_unselect_process;
2940 Xt_event_stream->quit_p_cb = emacs_Xt_quit_p; 2938 Xt_event_stream->quit_p_cb = emacs_Xt_quit_p;
2941 Xt_event_stream->create_stream_pair_cb = emacs_Xt_create_stream_pair; 2939 Xt_event_stream->create_stream_pair_cb = emacs_Xt_create_stream_pair;
2942 Xt_event_stream->delete_stream_pair_cb = emacs_Xt_delete_stream_pair; 2940 Xt_event_stream->delete_stream_pair_cb = emacs_Xt_delete_stream_pair;
2943 2941
2942 the_Xt_timeout_blocktype = Blocktype_new (struct Xt_timeout_blocktype);
2943
2944 last_quit_check_signal_tick_count = 0;
2945
2946 /* this function only makes safe calls */
2947 init_what_input_once ();
2948 }
2949
2950 void
2951 vars_of_event_Xt (void)
2952 {
2953 reinit_vars_of_event_Xt ();
2954
2955 dispatch_event_queue = Qnil;
2956 staticpro (&dispatch_event_queue);
2957 dispatch_event_queue_tail = Qnil;
2958 pdump_wire (&dispatch_event_queue_tail);
2959
2944 DEFVAR_BOOL ("modifier-keys-are-sticky", &modifier_keys_are_sticky /* 2960 DEFVAR_BOOL ("modifier-keys-are-sticky", &modifier_keys_are_sticky /*
2945 *Non-nil makes modifier keys sticky. 2961 *Non-nil makes modifier keys sticky.
2946 This means that you can release the modifier key before pressing down 2962 This means that you can release the modifier key before pressing down
2947 the key that you wish to be modified. Although this is non-standard 2963 the key that you wish to be modified. Although this is non-standard
2948 behavior, it is recommended because it reduces the strain on your hand, 2964 behavior, it is recommended because it reduces the strain on your hand,
2964 1 == non-verbose output 2980 1 == non-verbose output
2965 2 == verbose output 2981 2 == verbose output
2966 */ ); 2982 */ );
2967 x_debug_events = 0; 2983 x_debug_events = 0;
2968 #endif 2984 #endif
2969
2970 the_Xt_timeout_blocktype = Blocktype_new (struct Xt_timeout_blocktype);
2971
2972 last_quit_check_signal_tick_count = 0;
2973 } 2985 }
2974 2986
2975 /* This mess is a hack that patches the shell widget to treat visual inheritance 2987 /* This mess is a hack that patches the shell widget to treat visual inheritance
2976 the same as colormap and depth inheritance */ 2988 the same as colormap and depth inheritance */
2977 2989