/* Fringe handling (split from xdisp.c).
Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997,
- 1998, 1999, 2000, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006 Free Software Foundation, Inc.
+ 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
+ 2006, 2007 Free Software Foundation, Inc.
This file is part of GNU Emacs.
GNU Emacs is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Emacs is distributed in the hope that it will be useful,
#include "dispextern.h"
#include "buffer.h"
#include "blockinput.h"
+#include "termhooks.h"
#ifdef HAVE_WINDOW_SYSTEM
break;
}
- rif->draw_fringe_bitmap (w, row, &p);
+ FRAME_RIF (f)->draw_fringe_bitmap (w, row, &p);
}
static int
draw_fringe_bitmap_1 (w, row, left_p, overlay, NO_FRINGE_BITMAP);
if (left_p && row->overlay_arrow_bitmap != NO_FRINGE_BITMAP)
- draw_fringe_bitmap_1 (w, row, 1, 1,
- (row->overlay_arrow_bitmap < 0
- ? get_logical_fringe_bitmap (w, Qoverlay_arrow, 0, 0)
- : row->overlay_arrow_bitmap));
+ draw_fringe_bitmap_1 (w, row, 1, 1, row->overlay_arrow_bitmap);
}
}
}
+ if (row->overlay_arrow_bitmap < 0)
+ row->overlay_arrow_bitmap = get_logical_fringe_bitmap (w, Qoverlay_arrow, 0, 0);
+
if (row->overlay_arrow_bitmap != cur->overlay_arrow_bitmap)
{
redraw_p = row->redraw_fringe_bitmaps_p = cur->redraw_fringe_bitmaps_p = 1;
fbp = &fringe_bitmaps[n];
if (*fbp && (*fbp)->dynamic)
{
+ /* XXX Is SELECTED_FRAME OK here? */
+ struct redisplay_interface *rif = FRAME_RIF (SELECTED_FRAME ());
if (rif && rif->destroy_fringe_bitmap)
rif->destroy_fringe_bitmap (n);
xfree (*fbp);
if (!once_p)
{
+ /* XXX Is SELECTED_FRAME OK here? */
+ struct redisplay_interface *rif = FRAME_RIF (SELECTED_FRAME ());
+
destroy_fringe_bitmap (which);
if (rif && rif->define_fringe_bitmap)
DEFUN ("define-fringe-bitmap", Fdefine_fringe_bitmap, Sdefine_fringe_bitmap,
2, 5, 0,
doc: /* Define fringe bitmap BITMAP from BITS of size HEIGHT x WIDTH.
-BITMAP is a symbol or string naming the new fringe bitmap.
+BITMAP is a symbol identifying the new fringe bitmap.
BITS is either a string or a vector of integers.
HEIGHT is height of bitmap. If HEIGHT is nil, use length of BITS.
WIDTH must be an integer between 1 and 16, or nil which defaults to 8.
else if (VECTORP (bits))
h = XVECTOR (bits)->size;
else
- bits = wrong_type_argument (Qsequencep, bits);
+ wrong_type_argument (Qsequencep, bits);
if (NILP (height))
fb.height = h;
}
}
-#if defined (WINDOWS_NT) || defined (MAC_OS)
+#if defined (HAVE_NTGUI) || defined (MAC_OS)
void
-#ifdef WINDOWS_NT
+#ifdef HAVE_NTGUI
w32_init_fringe ()
#else /* MAC_OS */
mac_init_fringe ()
#endif
{
int bt;
+ struct redisplay_interface *rif = FRAME_RIF (SELECTED_FRAME ());
if (!rif)
return;
}
#endif
-#ifdef WINDOWS_NT
+#ifdef HAVE_NTGUI
void
w32_reset_fringes ()
{
/* Destroy row bitmaps. */
int bt;
+ struct redisplay_interface *rif = FRAME_RIF (SELECTED_FRAME ());
if (!rif)
return;