comparison src/event-msw.c @ 1279:cd0abfdb9e9d

[xemacs-hg @ 2003-02-09 09:33:42 by ben] walk-windows, redisplay fixes console-stream.c: Abort when any attempts to output a stream console are made. Should be caught sooner. event-msw.c: Don't redisplay() during sizing when the frame has not yet been initialized completely. event-stream.c, menubar-msw.c, menubar-x.c, menubar.c, menubar.h: Restore in_menu_callback. Bind it in menubar-{msw,x}.c when calling filter functions and the like. Conditionalize on it, not in_modal_loop, when issuing error in `next-event', otherwise we bite the dust immediately -- event-msw.c purposely calls Fnext_event() in a modal loop, and knows what it's doing. redisplay-output.c: Formatting fixes. redisplay.c, window.c, winslots.h: Delete lots of carcasses of attempts to add redisplay support for font-lock -- `pre/post-redisplay-hook', unimplemented junk from FSF (redisplay-end-trigger, `window-scroll-functions', `window-size-change-functions'). If we want to port some redisplay support from FSF, port the `fontified' property. redisplay.c: Put in a check here (as well as redisplay_device()) for a stream frame. We can get here directly through Lisp fun `redisplay-frame'. Abort if frame not initialized. redisplay.c: Check for stream frames/devices. window.el: walk-windows was broken when a frame was given to WHICH-FRAMES. it would loop forever. The FSF version fixes this but i didn't sync to them because (a) it conses (bad for lazy-lock), (b) it calls select-window.
author ben
date Sun, 09 Feb 2003 09:33:48 +0000
parents fffe735e63ee
children f3437b56874d
comparison
equal deleted inserted replaced
1278:1706fd7322af 1279:cd0abfdb9e9d
3364 /* Iconified */ 3364 /* Iconified */
3365 mswindows_enqueue_magic_event (hwnd, XM_UNMAPFRAME); 3365 mswindows_enqueue_magic_event (hwnd, XM_UNMAPFRAME);
3366 } 3366 }
3367 else 3367 else
3368 { 3368 {
3369 GetClientRect(hwnd, &rect); 3369 GetClientRect (hwnd, &rect);
3370 FRAME_PIXWIDTH(frame) = rect.right; 3370 FRAME_PIXWIDTH (frame) = rect.right;
3371 FRAME_PIXHEIGHT(frame) = rect.bottom; 3371 FRAME_PIXHEIGHT (frame) = rect.bottom;
3372 3372
3373 pixel_to_real_char_size (frame, rect.right, rect.bottom, 3373 pixel_to_real_char_size (frame, rect.right, rect.bottom,
3374 &FRAME_MSWINDOWS_CHARWIDTH (frame), 3374 &FRAME_MSWINDOWS_CHARWIDTH (frame),
3375 &FRAME_MSWINDOWS_CHARHEIGHT (frame)); 3375 &FRAME_MSWINDOWS_CHARHEIGHT (frame));
3376 3376
3404 * been sent we can mark the frame as visible (just 3404 * been sent we can mark the frame as visible (just
3405 * like 21.1 did). */ 3405 * like 21.1 did). */
3406 FRAME_VISIBLE_P (frame) = 1; 3406 FRAME_VISIBLE_P (frame) = 1;
3407 } 3407 }
3408 3408
3409 if (!msframe->sizing || mswindows_dynamic_frame_resize) 3409 if (frame->init_finished &&
3410 (!msframe->sizing || mswindows_dynamic_frame_resize))
3410 redisplay (); 3411 redisplay ();
3411 } 3412 }
3412 } 3413 }
3413 } 3414 }
3414 break; 3415 break;
3426 through as many frames as it currently has open. Message time 3427 through as many frames as it currently has open. Message time
3427 will be the same for all these messages. Despite extreme 3428 will be the same for all these messages. Despite extreme
3428 efficiency, the code below has about one in 4 billion 3429 efficiency, the code below has about one in 4 billion
3429 probability that the HDC is not recreated, provided that 3430 probability that the HDC is not recreated, provided that
3430 XEmacs is running sufficiently longer than 52 days. */ 3431 XEmacs is running sufficiently longer than 52 days. */
3431 if (DEVICE_MSWINDOWS_UPDATE_TICK(d) != message_tick) 3432 if (DEVICE_MSWINDOWS_UPDATE_TICK (d) != message_tick)
3432 { 3433 {
3433 DEVICE_MSWINDOWS_UPDATE_TICK(d) = message_tick; 3434 DEVICE_MSWINDOWS_UPDATE_TICK (d) = message_tick;
3434 DeleteDC (DEVICE_MSWINDOWS_HCDC(d)); 3435 DeleteDC (DEVICE_MSWINDOWS_HCDC (d));
3435 DEVICE_MSWINDOWS_HCDC(d) = CreateCompatibleDC (NULL); 3436 DEVICE_MSWINDOWS_HCDC (d) = CreateCompatibleDC (NULL);
3436 } 3437 }
3437 } 3438 }
3438 break; 3439 break;
3439 3440
3440 /* Misc magic events which only require that the frame be identified */ 3441 /* Misc magic events which only require that the frame be identified */
3505 #ifdef HAVE_SCROLLBARS 3506 #ifdef HAVE_SCROLLBARS
3506 case WM_VSCROLL: 3507 case WM_VSCROLL:
3507 case WM_HSCROLL: 3508 case WM_HSCROLL:
3508 { 3509 {
3509 /* Direction of scroll is determined by scrollbar instance. */ 3510 /* Direction of scroll is determined by scrollbar instance. */
3510 int code = (int) LOWORD(wParam); 3511 int code = (int) LOWORD (wParam);
3511 int pos = (short int) HIWORD(wParam); 3512 int pos = (short int) HIWORD (wParam);
3512 HWND hwndScrollBar = (HWND) lParam; 3513 HWND hwndScrollBar = (HWND) lParam;
3513 struct gcpro gcpro1, gcpro2; 3514 struct gcpro gcpro1, gcpro2;
3514 3515
3515 mswindows_handle_scrollbar_event (hwndScrollBar, code, pos); 3516 mswindows_handle_scrollbar_event (hwndScrollBar, code, pos);
3516 GCPRO2 (emacs_event, fobj); 3517 GCPRO2 (emacs_event, fobj);