X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Fgutter.c;h=224d2fab3e23fdde118d3543d51496220ccbc472;hp=d9534d03ebb47831e1a41ee15ba365a7a2ff66ea;hb=716cfba952c1dc0d2cf5c968971f3780ba728a89;hpb=ea1ea793fe6e244ef5555ed983423a204101af13 diff --git a/src/gutter.c b/src/gutter.c index d9534d0..224d2fa 100644 --- a/src/gutter.c +++ b/src/gutter.c @@ -222,13 +222,18 @@ output_gutter (struct frame *f, enum gutter_pos pos) struct device *d = XDEVICE (f->device); struct window* w = XWINDOW (window); int x, y, width, height, ypos; - int line; - int border_width = FRAME_GUTTER_BORDER_WIDTH (f, pos); - face_index findex = get_builtin_face_cache_index (w, Vgui_element_face); + int line, border_width; + face_index findex; display_line_dynarr* ddla, *cdla; struct display_line *dl; int cdla_len; + if (!WINDOW_LIVE_P (w)) + return; + + border_width = FRAME_GUTTER_BORDER_WIDTH (f, pos); + findex = get_builtin_face_cache_index (w, Vgui_element_face); + if (!f->current_display_lines) f->current_display_lines = Dynarr_new (display_line); if (!f->desired_display_lines) @@ -805,8 +810,7 @@ in the gutter area. automatically knew about specifier fallbacks, so we didn't have to do it ourselves. */ set_specifier_caching (Vdefault_gutter, - slot_offset (struct window, - default_gutter), + offsetof (struct window, default_gutter), default_gutter_specs_changed, 0, 0); @@ -818,8 +822,7 @@ See `default-gutter' for a description of a valid gutter instantiator. */ ); Vgutter[TOP_GUTTER] = Fmake_specifier (Qgutter); set_specifier_caching (Vgutter[TOP_GUTTER], - slot_offset (struct window, - gutter[TOP_GUTTER]), + offsetof (struct window, gutter[TOP_GUTTER]), gutter_specs_changed, 0, 0); @@ -836,8 +839,7 @@ displayed even if you provide a value for `bottom-gutter'. */ ); Vgutter[BOTTOM_GUTTER] = Fmake_specifier (Qgutter); set_specifier_caching (Vgutter[BOTTOM_GUTTER], - slot_offset (struct window, - gutter[BOTTOM_GUTTER]), + offsetof (struct window, gutter[BOTTOM_GUTTER]), gutter_specs_changed, 0, 0); @@ -854,8 +856,7 @@ displayed even if you provide a value for `left-gutter'. */ ); Vgutter[LEFT_GUTTER] = Fmake_specifier (Qgutter); set_specifier_caching (Vgutter[LEFT_GUTTER], - slot_offset (struct window, - gutter[LEFT_GUTTER]), + offsetof (struct window, gutter[LEFT_GUTTER]), gutter_specs_changed, 0, 0); @@ -872,8 +873,7 @@ displayed even if you provide a value for `right-gutter'. */ ); Vgutter[RIGHT_GUTTER] = Fmake_specifier (Qgutter); set_specifier_caching (Vgutter[RIGHT_GUTTER], - slot_offset (struct window, - gutter[RIGHT_GUTTER]), + offsetof (struct window, gutter[RIGHT_GUTTER]), gutter_specs_changed, 0, 0); @@ -913,8 +913,7 @@ is the default. */ ); Vdefault_gutter_height = Fmake_specifier (Qgutter_size); set_specifier_caching (Vdefault_gutter_height, - slot_offset (struct window, - default_gutter_height), + offsetof (struct window, default_gutter_height), default_gutter_size_changed_in_window, 0, 0); @@ -926,8 +925,7 @@ See `default-gutter-height' for more information. */ ); Vdefault_gutter_width = Fmake_specifier (Qnatnum); set_specifier_caching (Vdefault_gutter_width, - slot_offset (struct window, - default_gutter_width), + offsetof (struct window, default_gutter_width), default_gutter_size_changed_in_window, 0, 0); @@ -940,8 +938,7 @@ See `default-gutter-height' for more information. */ ); Vgutter_size[TOP_GUTTER] = Fmake_specifier (Qgutter_size); set_specifier_caching (Vgutter_size[TOP_GUTTER], - slot_offset (struct window, - gutter_size[TOP_GUTTER]), + offsetof (struct window, gutter_size[TOP_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -954,8 +951,7 @@ See `default-gutter-height' for more information. */ ); Vgutter_size[BOTTOM_GUTTER] = Fmake_specifier (Qgutter_size); set_specifier_caching (Vgutter_size[BOTTOM_GUTTER], - slot_offset (struct window, - gutter_size[BOTTOM_GUTTER]), + offsetof (struct window, gutter_size[BOTTOM_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -968,8 +964,7 @@ See `default-gutter-height' for more information. */ ); Vgutter_size[LEFT_GUTTER] = Fmake_specifier (Qnatnum); set_specifier_caching (Vgutter_size[LEFT_GUTTER], - slot_offset (struct window, - gutter_size[LEFT_GUTTER]), + offsetof (struct window, gutter_size[LEFT_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -982,8 +977,7 @@ See `default-gutter-height' for more information. */ ); Vgutter_size[RIGHT_GUTTER] = Fmake_specifier (Qnatnum); set_specifier_caching (Vgutter_size[RIGHT_GUTTER], - slot_offset (struct window, - gutter_size[RIGHT_GUTTER]), + offsetof (struct window, gutter_size[RIGHT_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -995,6 +989,7 @@ See `default-gutter-height' for more information. fb = Fcons (Fcons (list1 (Qx), Qautodetect), fb); #endif #ifdef HAVE_MS_WINDOWS + fb = Fcons (Fcons (list1 (Qmsprinter), Qautodetect), fb); fb = Fcons (Fcons (list1 (Qmswindows), Qautodetect), fb); #endif if (!NILP (fb)) @@ -1008,6 +1003,7 @@ See `default-gutter-height' for more information. fb = Fcons (Fcons (list1 (Qx), make_int (DEFAULT_GUTTER_WIDTH)), fb); #endif #ifdef HAVE_MS_WINDOWS + fb = Fcons (Fcons (list1 (Qmsprinter), Qzero), fb); fb = Fcons (Fcons (list1 (Qmswindows), make_int (DEFAULT_GUTTER_WIDTH)), fb); #endif @@ -1036,8 +1032,7 @@ instead. */ ); Vdefault_gutter_border_width = Fmake_specifier (Qnatnum); set_specifier_caching (Vdefault_gutter_border_width, - slot_offset (struct window, - default_gutter_border_width), + offsetof (struct window, default_gutter_border_width), default_gutter_border_width_changed_in_window, 0, 0); @@ -1050,8 +1045,8 @@ See `default-gutter-height' for more information. */ ); Vgutter_border_width[TOP_GUTTER] = Fmake_specifier (Qnatnum); set_specifier_caching (Vgutter_border_width[TOP_GUTTER], - slot_offset (struct window, - gutter_border_width[TOP_GUTTER]), + offsetof (struct window, + gutter_border_width[TOP_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -1064,8 +1059,8 @@ See `default-gutter-height' for more information. */ ); Vgutter_border_width[BOTTOM_GUTTER] = Fmake_specifier (Qnatnum); set_specifier_caching (Vgutter_border_width[BOTTOM_GUTTER], - slot_offset (struct window, - gutter_border_width[BOTTOM_GUTTER]), + offsetof (struct window, + gutter_border_width[BOTTOM_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -1078,8 +1073,8 @@ See `default-gutter-height' for more information. */ ); Vgutter_border_width[LEFT_GUTTER] = Fmake_specifier (Qnatnum); set_specifier_caching (Vgutter_border_width[LEFT_GUTTER], - slot_offset (struct window, - gutter_border_width[LEFT_GUTTER]), + offsetof (struct window, + gutter_border_width[LEFT_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -1092,8 +1087,8 @@ See `default-gutter-height' for more information. */ ); Vgutter_border_width[RIGHT_GUTTER] = Fmake_specifier (Qnatnum); set_specifier_caching (Vgutter_border_width[RIGHT_GUTTER], - slot_offset (struct window, - gutter_border_width[RIGHT_GUTTER]), + offsetof (struct window, + gutter_border_width[RIGHT_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -1105,6 +1100,7 @@ See `default-gutter-height' for more information. fb = Fcons (Fcons (list1 (Qx), make_int (DEFAULT_GUTTER_BORDER_WIDTH)), fb); #endif #ifdef HAVE_MS_WINDOWS + fb = Fcons (Fcons (list1 (Qmsprinter), Qzero), fb); fb = Fcons (Fcons (list1 (Qmswindows), make_int (DEFAULT_GUTTER_BORDER_WIDTH)), fb); #endif if (!NILP (fb)) @@ -1133,8 +1129,8 @@ visibility specifiers have a fallback value of true. */ ); Vdefault_gutter_visible_p = Fmake_specifier (Qboolean); set_specifier_caching (Vdefault_gutter_visible_p, - slot_offset (struct window, - default_gutter_visible_p), + offsetof (struct window, + default_gutter_visible_p), default_gutter_visible_p_changed_in_window, 0, 0); @@ -1147,8 +1143,8 @@ See `default-gutter-visible-p' for more information. */ ); Vgutter_visible_p[TOP_GUTTER] = Fmake_specifier (Qboolean); set_specifier_caching (Vgutter_visible_p[TOP_GUTTER], - slot_offset (struct window, - gutter_visible_p[TOP_GUTTER]), + offsetof (struct window, + gutter_visible_p[TOP_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -1161,8 +1157,8 @@ See `default-gutter-visible-p' for more information. */ ); Vgutter_visible_p[BOTTOM_GUTTER] = Fmake_specifier (Qboolean); set_specifier_caching (Vgutter_visible_p[BOTTOM_GUTTER], - slot_offset (struct window, - gutter_visible_p[BOTTOM_GUTTER]), + offsetof (struct window, + gutter_visible_p[BOTTOM_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -1175,8 +1171,8 @@ See `default-gutter-visible-p' for more information. */ ); Vgutter_visible_p[LEFT_GUTTER] = Fmake_specifier (Qboolean); set_specifier_caching (Vgutter_visible_p[LEFT_GUTTER], - slot_offset (struct window, - gutter_visible_p[LEFT_GUTTER]), + offsetof (struct window, + gutter_visible_p[LEFT_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -1189,8 +1185,8 @@ See `default-gutter-visible-p' for more information. */ ); Vgutter_visible_p[RIGHT_GUTTER] = Fmake_specifier (Qboolean); set_specifier_caching (Vgutter_visible_p[RIGHT_GUTTER], - slot_offset (struct window, - gutter_visible_p[RIGHT_GUTTER]), + offsetof (struct window, + gutter_visible_p[RIGHT_GUTTER]), gutter_geometry_changed_in_window, 0, 0); @@ -1203,5 +1199,4 @@ See `default-gutter-visible-p' for more information. set_specifier_fallback (Vgutter_visible_p[BOTTOM_GUTTER], fb); set_specifier_fallback (Vgutter_visible_p[LEFT_GUTTER], fb); set_specifier_fallback (Vgutter_visible_p[RIGHT_GUTTER], fb); - }