comparison src/frame.c @ 48:56c54cf7c5b6 r19-16b90

Import from CVS: tag r19-16b90
author cvs
date Mon, 13 Aug 2007 08:56:04 +0200
parents ec9a17fef872
children 131b0175ea99
comparison
equal deleted inserted replaced
47:11c6df210d7f 48:56c54cf7c5b6
1398 if (NILP (next) || EQ (next, frame)) 1398 if (NILP (next) || EQ (next, frame))
1399 next = next_frame_internal (frame, Qt, console, 1399 next = next_frame_internal (frame, Qt, console,
1400 called_from_delete_device); 1400 called_from_delete_device);
1401 if (NILP (next) || EQ (next, frame)) 1401 if (NILP (next) || EQ (next, frame))
1402 next = next_frame_internal (frame, Qt, Qt, called_from_delete_device); 1402 next = next_frame_internal (frame, Qt, Qt, called_from_delete_device);
1403
1404 /* if we haven't found another frame at this point
1405 then there aren't any. */
1403 if (NILP (next) || EQ (next, frame)) 1406 if (NILP (next) || EQ (next, frame))
1404 ; 1407 ;
1405 else if (EQ (frame, Fselected_frame (Qnil)))
1406 Fselect_frame (next);
1407 else 1408 else
1408 set_device_selected_frame (d, next); 1409 {
1410 int did_select = 0;
1411 /* if this is the global selected frame, select another one. */
1412 if (EQ (frame, Fselected_frame (Qnil)))
1413 {
1414 Fselect_frame (next);
1415 did_select = 1;
1416 }
1417 /*
1418 * If the new frame we just selected is on a different
1419 * device then we still need to change DEVICE_SELECTED_FRAME(d)
1420 * to a live frame, if there are any left on this device.
1421 */
1422 if (!EQ (device, FRAME_DEVICE(XFRAME(next))))
1423 {
1424 Lisp_Object next_f =
1425 next_frame_internal (frame, Qt, device,
1426 called_from_delete_device);
1427 if (NILP (next_f) || EQ (next_f, frame))
1428 ;
1429 else
1430 set_device_selected_frame (d, next_f);
1431 }
1432 else if (! did_select)
1433 set_device_selected_frame (d, next);
1434
1435 }
1409 } 1436 }
1410 1437
1411 /* Don't allow minibuf_window to remain on a deleted frame. */ 1438 /* Don't allow minibuf_window to remain on a deleted frame. */
1412 if (EQ (f->minibuffer_window, minibuf_window)) 1439 if (EQ (f->minibuffer_window, minibuf_window))
1413 { 1440 {