comparison src/macterm.c @ 57373:38e45bf0128a

(x_update_window_end): Fix flicker on vertical line between windows. Update vertical line after drawing window fringes, but only if actually drawing any bitmaps--or there is no fringe.
author Kim F. Storm <storm@cua.dk>
date Thu, 07 Oct 2004 21:59:39 +0000
parents 05fe2d3ca439
children 0867872551d9 4f2f1522636c
comparison
equal deleted inserted replaced
57372:1caa36568da6 57373:38e45bf0128a
1289 if (cursor_on_p) 1289 if (cursor_on_p)
1290 display_and_set_cursor (w, 1, output_cursor.hpos, 1290 display_and_set_cursor (w, 1, output_cursor.hpos,
1291 output_cursor.vpos, 1291 output_cursor.vpos,
1292 output_cursor.x, output_cursor.y); 1292 output_cursor.x, output_cursor.y);
1293 1293
1294 x_draw_vertical_border (w); 1294 if (draw_window_fringes (w, 1))
1295 1295 x_draw_vertical_border (w);
1296 draw_window_fringes (w);
1297 1296
1298 UNBLOCK_INPUT; 1297 UNBLOCK_INPUT;
1299 } 1298 }
1300 1299
1301 /* If a row with mouse-face was overwritten, arrange for 1300 /* If a row with mouse-face was overwritten, arrange for
5048 #if TARGET_API_MAC_CARBON 5047 #if TARGET_API_MAC_CARBON
5049 GetWindowBounds (FRAME_MAC_WINDOW (f), kWindowContentRgn, inner); 5048 GetWindowBounds (FRAME_MAC_WINDOW (f), kWindowContentRgn, inner);
5050 GetWindowBounds (FRAME_MAC_WINDOW (f), kWindowStructureRgn, outer); 5049 GetWindowBounds (FRAME_MAC_WINDOW (f), kWindowStructureRgn, outer);
5051 #else /* not TARGET_API_MAC_CARBON */ 5050 #else /* not TARGET_API_MAC_CARBON */
5052 RgnHandle region = NewRgn (); 5051 RgnHandle region = NewRgn ();
5053 5052
5054 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowContentRgn, region); 5053 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowContentRgn, region);
5055 *inner = (*region)->rgnBBox; 5054 *inner = (*region)->rgnBBox;
5056 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowStructureRgn, region); 5055 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowStructureRgn, region);
5057 *outer = (*region)->rgnBBox; 5056 *outer = (*region)->rgnBBox;
5058 DisposeRgn (region); 5057 DisposeRgn (region);
5141 x_real_positions (f, &f->left_pos, &f->top_pos); 5140 x_real_positions (f, &f->left_pos, &f->top_pos);
5142 #else 5141 #else
5143 { 5142 {
5144 Rect inner, outer, screen_rect, dummy; 5143 Rect inner, outer, screen_rect, dummy;
5145 RgnHandle region = NewRgn (); 5144 RgnHandle region = NewRgn ();
5146 5145
5147 mac_get_window_bounds (f, &inner, &outer); 5146 mac_get_window_bounds (f, &inner, &outer);
5148 f->x_pixels_diff = inner.left - outer.left; 5147 f->x_pixels_diff = inner.left - outer.left;
5149 f->y_pixels_diff = inner.top - outer.top; 5148 f->y_pixels_diff = inner.top - outer.top;
5150 MoveWindow (FRAME_MAC_WINDOW (f), f->left_pos + f->x_pixels_diff, 5149 MoveWindow (FRAME_MAC_WINDOW (f), f->left_pos + f->x_pixels_diff,
5151 f->top_pos + f->y_pixels_diff, false); 5150 f->top_pos + f->y_pixels_diff, false);
8112 /* Handle new events */ 8111 /* Handle new events */
8113 if (!mac_convert_event_ref (eventRef, &er)) 8112 if (!mac_convert_event_ref (eventRef, &er))
8114 switch (GetEventClass (eventRef)) 8113 switch (GetEventClass (eventRef))
8115 { 8114 {
8116 case kEventClassWindow: 8115 case kEventClassWindow:
8117 if (GetEventKind (eventRef) == kEventWindowBoundsChanged) 8116 if (GetEventKind (eventRef) == kEventWindowBoundsChanged)
8118 { 8117 {
8119 WindowPtr window_ptr; 8118 WindowPtr window_ptr;
8120 GetEventParameter(eventRef, kEventParamDirectObject, 8119 GetEventParameter(eventRef, kEventParamDirectObject,
8121 typeWindowRef, NULL, sizeof(WindowPtr), 8120 typeWindowRef, NULL, sizeof(WindowPtr),
8122 NULL, &window_ptr); 8121 NULL, &window_ptr);
8429 break; 8428 break;
8430 } 8429 }
8431 8430
8432 if (!is_emacs_window (window_ptr)) 8431 if (!is_emacs_window (window_ptr))
8433 break; 8432 break;
8434 8433
8435 f = mac_window_to_frame (window_ptr); 8434 f = mac_window_to_frame (window_ptr);
8436 8435
8437 if ((er.modifiers & activeFlag) != 0) 8436 if ((er.modifiers & activeFlag) != 0)
8438 { 8437 {
8439 /* A window has been activated */ 8438 /* A window has been activated */