all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
blob 38cdecc69dd2ac284fce9972a2aeb7cea5888574 5348 bytes (raw)
name: ChangeLog 	 # note: path name is non-authoritative(*)

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
 
2016-10-27  Daniel Colascione  <dancol@dancol.org>

	* src/xterm.h (struct x_display_info): New member supports_xdbe.
	(struct x_output): New member draw_desc.
	(FRAME_X_DRAWABLE, FRAME_X_DOUBLE_BUFFERED_P)
	(FRAME_X_NEED_BUFFER_FLIP): New macros.
	(set_up_x_back_buffer, tear_down_x_back_buffer)
	(initial_set_up_x_back_buffer): Declare.

	* src/xterm.c: Include Xdbe.h.
	(x_begin_cr_clip, x_fill_rectangle, x_draw_rectangle)
	(x_draw_vertical_window_border, x_update_end)
	(x_setup_relief_color, x_draw_relief_rect)
	(x_draw_fringe_bitmap, x_shift_glyphs_for_insert)
	(x_scroll_run, x_draw_hollow_cursor, x_draw_bar_cursor): Use
	FRAME_X_DRAWABLE instead of FRAME_X_WINDOW; rename local
	variables appropriately; substitute calls to XClearArea with
	x_clear_area, which DTRT for double buffering.
	(x_clear_window, x_clear_area): In double-buffering mode, use
	rect-drawing X functions instead of XClearWindow and
	XClearArea, which always operate on the front buffer.
	(show_back_buffer): New function.
	(XTframe_up_to_date): Call show_back_buffer when done.
	(x_clear_frame, x_clear_frame_area): Remove obsolete calls to
	gtk_widget_queue_draw to refresh scroll bars; scroll bars are
	now independent X windows.
	(handle_one_xevent): Call font_drop_xrender_surfaces when XftDraw
	might need regenerating; perform buffer flip when responding
	to Expose events; issue front-buffer clearing commands as
	stopgap while we wait for redisplay.
	(x_make_frame_visible): Un-bitrot comment; move XSETFRAME
	earlier in function.
	(x_free_frame_resources): Call tear_down_x_back_buffer when
	destroying frame.
	(x_term_init): Attempt to initialize double buffer extension.
	(x_flip_and_flush): New function.
	(x_redisplay_interface): Point to x_flip_and_flush instead of
	x_flip directly.

	* src/xftfont.c (xftfont_drop_xrender_surfaces): Use
	FRAME_X_DRAWABLE instead of FRAME_X_WINDOW.
	(xftfont_drop_xrender_surfaces): New function.
	(syms_of_xftfont): Register it.

	* src/xfont.c (xfont_draw): Use FRAME_X_DRAWABLE instead of
	FRAME_X_WINDOW.

	* src/xfns.c: Include Xdbe.h.
	(x_set_inhibit_double_buffering, set_up_x_back_buffer)
	(Fx_double_buffered_p): New functions.
	(x_window): Call initial_set_up_x_back_buffer.
	(x_make_gc): Use FRAME_X_DRAWABLE instead of FRAME_X_WINDOW.
	(Fx_create_frame): Configure `inhibit-double-buffering'
	frame parameter.
	(x_create_tip_frame): Call initial_set_up_x_back_buffer.
	(x_frame_parm_handlers): Register
	x_set_inhibit_double_buffering.
	(syms_of_xfns): Register Sx_double_buffered_p.

	* src/xfaces.c (x_create_gc): Use FRAME_X_DRAWABLE instead of
	FRAME_X_WINDOW.

	* src/xdisp.c (remember_mouse_glyph, init_glyph_string): Use
	FRAME_X_DRAWABLE instead of FRAME_X_WINDOW.
	(redisplay_internal): Restart redisplay if a frame is garbaged
	during updating; explain why.
	(redisplay_preserve_echo_area): Call flush_frame
	conditionally, depending on `double_buffered'.
	(show_mouse_face): In the `double_buffered' case, queue frame
	for redisplay (and thus buffer flip), because immediate
	drawing will have no effect.

	* src/w32fns.c (w32_frame_parm_handlers): Add placeholder for
	x_set_inhibit_double_buffering.

	* src/termhooks.h (struct terminal): Explain why calling
	`frame_up_to_date_hook' is important.

	* src/nsfns.m (ns_frame_parm_handlers): Add placeholder for
	x_set_inhibit_double_buffering.

	* src/image.c (x_create_bitmap_from_data)
	(x_create_bitmap_from_file, x_create_x_image_and_pixmap)
	(Create_Pixmap_From_Bitmap_Data)
	(x_create_bitmap_from_xpm_data, xpm_load, gs_load): Use
	FRAME_X_DRAWABLE instead of FRAME_X_WINDOW; rename local
	variables appropriately.

	* src/gtkutil.c: Include Xdbe.h.
	(xg_get_widget_from_map): Forward declare.
	(xg_clear_under_internal_border): Remove obsolete calls to
	refresh scroll bars.
	(xg_create_frame_widgets): Call initial_set_up_x_back_buffer.
	(xg_free_frame_widgets): Call tear_down_x_back_buffer; reset
	FRAME_X_DRAWABLE as well as FRAME_X_WINDOW and for the
	same reason.
	(xg_set_background_color): Set scroll bar background colors.
	(xg_finish_scroll_bar_creation): New function with common
	logic of xg_create_scroll_bar, xg_create_horizontal_scroll_bar. Force
	scroll bars to be real X11 windows.
	(xg_create_scroll_bar, xg_create_horizontal_scroll_bar): Call
	xg_finish_scroll_bar_creation.
	(xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos):
	Remove obsolete calls to refresh scroll bars; fix comments.

	* src/ftxfont.c (ftxfont_get_gcs, ftxfont_draw_bitmap,
	(ftxfont_draw_background): Use FRAME_X_DRAWABLE instead of
	FRAME_X_WINDOW.

	* src/frame.h (struct frame): Add double_buffered bitfield.

	* src/frame.c (frame_parms): Add table entry for new
	`inhibit-double-buffering' frame parameter
	(syms_of_frame): Register Qinhibit_double_buffering.

	* src/font.h (struct font_driver): Add new
	`flush_frame_caches' hook.
	(font_drop_xrender_surfaces): Declare.

	* src/font.c (font_drop_xrender_surfaces): New function.

	* src/dispnew.c (redraw_frame): Call font_drop_xrender_surfaces.

	* src/Makefile.in (XDBE_LIBS, XDBE_CFLAGS): Substitute.

	* etc/NEWS: Mention use of double buffering

	* doc/lispref/frames.texi (Management Parameters): Document
	`inhibit-double-buffering' frame parameters.
	(Visibility of Frames): Document `x-double-buffered-p'.

	* configure.ac: Check for the X double buffer extension

debug log:

solving 38cdecc ...
found 38cdecc in https://yhetil.org/emacs/740d34db48a1e4b711cb1cfa987423c9.squirrel@dancol.org/

applying [1/1] https://yhetil.org/emacs/740d34db48a1e4b711cb1cfa987423c9.squirrel@dancol.org/
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..38cdecc

Checking patch ChangeLog...
Applied patch ChangeLog cleanly.

index at:
100644 38cdecc69dd2ac284fce9972a2aeb7cea5888574	ChangeLog

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.