Mercurial > emacs
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 */ |