]> git.eshelyaron.com Git - emacs.git/commit
Fix race conditions processing frame fullscreen state on Haiku
authorPo Lu <luangruo@yahoo.com>
Thu, 19 May 2022 03:43:39 +0000 (03:43 +0000)
committerPo Lu <luangruo@yahoo.com>
Thu, 19 May 2022 03:43:39 +0000 (03:43 +0000)
commit4dfaefcffc987400a317b5ccf0c9bf00f7c84134
tree590fe0f71a6fae3fdec4d64fa80e20875f136be9
parentbc604417f87f9fce865e70b3bc88b6bf2a8fd415
Fix race conditions processing frame fullscreen state on Haiku

* doc/lispref/frames.texi (Size Parameters): Remove note saying
Haiku doesn't support `fullwidth' and `fullboth'.

* src/haiku_support.cc (subset_windows, class EmacsWindow)
(Unparent, ParentTo): Stop calling old fullscreen functions.
(ClearFullscreen, FullscreenRectForMode, SetFullscreen): New
functions.  Completely rewrite old zoom and fullscreen handling
code.
(Zoom): Send a ZOOM_EVENT and don't actually zoom.
(BWindow_zoom, EmacsWindow_make_fullscreen, EmacsWindow_unzoom):
Delete functions.
(be_set_window_fullscreen_mode): New function.

* src/haiku_support.h (struct haiku_zoom_event): Remove
`zoomed_p' parameter.
(enum haiku_fullscreen_mode): New enum.  Update prototypes.

* src/haikufns.c (Fx_display_pixel_height): Return height
instead of width.

* src/haikuterm.c (haiku_make_fullscreen_consistent)
(haiku_read_socket, haiku_fullscreen): Adjust to always set zoom
and fullscreen in the main thread instead of the UI threads.

* src/haikuterm.h (struct haiku_output): Remove flag `zoomed_p'
and add field `fullscreen_mode'.
doc/lispref/frames.texi
src/haiku_support.cc
src/haiku_support.h
src/haikufns.c
src/haikuterm.c
src/haikuterm.h