-*os_haiku.txt* For Vim version 9.1. Last change: 2020 May 13
+*os_haiku.txt* For Vim version 9.1. Last change: 2025 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
of the Terminal, and if so, uses the GUI anyway. However, the current detection
scheme is fooled if you use the command "vim - </dev/null".
+Toggling between normal managed window and fullscreen mode can be done by
+pressing <Alt-Enter>.
+
Stuff that does not work yet:
- Mouse up events are not generated when outside the window. You can notice
in when the window is activated or deactivated (so it works best with focus-
follows-mouse turned on).
- The cursor does not flash.
-
+- Switching windows using <C-Tab-Up> and <C-Tab-Down> in Twitcher does not
+ work. This is due to each gvim window being managed by a separate instance
+ completely unaware of other vim processes.
4. The $VIM directory *haiku-vimdir*
-*version9.txt* For Vim version 9.1. Last change: 2025 Sep 02
+*version9.txt* For Vim version 9.1. Last change: 2025 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
- Python3 support in OpenVMS is now available.
- The Win32 GUI comes with better toolbar icons.
+
+- Better fullscreen support for Haiku |os_haiku.txt|.
*new-other-9.2*
Other new features ~
------------------
-*vi_diff.txt* For Vim version 9.1. Last change: 2025 Sep 04
+*vi_diff.txt* For Vim version 9.1. Last change: 2025 Sep 08
VIM REFERENCE MANUAL by Bram Moolenaar
System | Status:~
--------------------------------+-----------------------------------------
Amiga (OS4, AROS & MorphOS): | still supported (?)
-Haiku: | still supported (?)
+Haiku: | supported
Linux: | fully supported (on maintained versions)
Mac OS: | fully supported up until v10.6 (?)
MS-Windows 7, 8, 10, 11: | fully supported
-UNIX: | supported (on maintained versions)
OpenVMS: | supported
QNX: | still supported (?)
+UNIX: | supported (on maintained versions)
zOS/OS390: | still supported (?)
The following operating systems are no longer supported:
VimWindow();
~VimWindow();
- // virtual void DispatchMessage(BMessage *m, BHandler *h);
+ virtual void DispatchMessage(BMessage *m, BHandler *h);
virtual void WindowActivated(bool active);
virtual bool QuitRequested();
private:
void init();
+ bool is_fullscreen = false;
+ BRect saved_frame;
+ window_look saved_look;
};
class VimFormView: public BView
write_port(gui.vdcmp, VimMsg::Key, &km, sizeof(km));
return false;
}
+ void
+VimWindow::DispatchMessage(BMessage *m, BHandler *h)
+{
+ bool should_propagate = true;
+
+ switch (m->what)
+ {
+ case B_KEY_DOWN:
+ {
+ int32 scancode = 0;
+ int32 beModifiers = 0;
+ m->FindInt32("raw_char", &scancode);
+ m->FindInt32("modifiers", &beModifiers);
+
+ if (scancode == B_ENTER && (beModifiers & B_LEFT_COMMAND_KEY))
+ {
+ should_propagate = false;
+ if (this->is_fullscreen)
+ {
+ this->is_fullscreen = false;
+ ResizeTo(this->saved_frame.Width(), this->saved_frame.Height());
+ MoveTo(this->saved_frame.left, this->saved_frame.top);
+ SetLook(this->saved_look);
+ SetFlags(Flags() & ~(B_NOT_RESIZABLE | B_NOT_MOVABLE));
+ } else {
+ this->saved_frame = Frame();
+ this->saved_look = Look();
+ this->is_fullscreen = true;
+ BScreen s(this);
+ SetLook(B_NO_BORDER_WINDOW_LOOK);
+ ResizeTo(s.Frame().Width() + 1, s.Frame().Height() + 1);
+ MoveTo(s.Frame().left, s.Frame().top);
+ SetFlags(Flags() | (B_NOT_RESIZABLE | B_NOT_MOVABLE));
+ }
+ }
+ }
+ }
+
+ if (should_propagate)
+ Inherited::DispatchMessage(m, h);
+}
+
// ---------------- VimFormView ----------------
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1743,
/**/
1742,
/**/