Use PixelBuffer objects as the interface for encoders and decoders
This avoid a lot of unnecessary middle men. This also pushes the
responsibility for pixel format conversion into the encoders and
decoders. The new bufferFromBuffer() is used for direct conversion,
rather than PixelTransformer/TransImageGetter.
Gets rid of a loooot of code and complexity.
Colour map clients are still supported through an
automatically generated map, but we lose the ability to
develop a client or server that uses colour maps
internally.
Leaving/entering full screen on OS X would leave the scroll bars in an
incorrect state. Turned out it was actually a redraw bug.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5010 3789f03b-4d11-0410-bbf8-ca57d06f2519
Fl::screen_work_area() was added after FLTK 1.3.0, so we need to have
checks that it is actually present on the current system.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5008 3789f03b-4d11-0410-bbf8-ca57d06f2519
Starting in full screen was misbehaving because we were waiting
for a FL_FULLSCREEN event to set things up properly, and FLTK
doesn't emit this for a hidden window.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5004 3789f03b-4d11-0410-bbf8-ca57d06f2519
XFCE's window manager did not interact well with the code that avoided
accidental legacy full screen requests. Seems we need to sort that
FIXME out sooner rather than later.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5002 3789f03b-4d11-0410-bbf8-ca57d06f2519
Using maximize and full screen at the same time on OS X would misbehave
as we would first create a full screen window, then resize it to a
maximized site. Reorganise things a bit so that we get sensible
behaviour.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@5001 3789f03b-4d11-0410-bbf8-ca57d06f2519
Move the -geometry parsing up, so that it affects fullscreen mode as
well. This to allow specifying which monitor to use for fullscreen
mode.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4981 3789f03b-4d11-0410-bbf8-ca57d06f2519
X11 window managers are very buggy when it comes to having a window start
in full screen mode. So we'll resort to creating a normal window, and then
switching to full screen once it is mapped. Unfortunately it means we need
to handle delaying some resize handling.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4958 3789f03b-4d11-0410-bbf8-ca57d06f2519
Implement client side multi-head support. Requires a FLTK patched to support
fullscreen over multiple monitors. Will properly report screen configuration
to the server, provided the server supports it.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4935 3789f03b-4d11-0410-bbf8-ca57d06f2519
Make it possible to dynamically resize the size of the session, when resizing
the viewer window, or when entering or leaving fullscreen mode. Initial
work done by Arthur Huillet and clohr.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4924 3789f03b-4d11-0410-bbf8-ca57d06f2519
Also grab the mouse pointer in full screen as some window managers like to
do special things with buttons combined with modifiers. The user probably
wants to propagate these to the server though.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4808 3789f03b-4d11-0410-bbf8-ca57d06f2519
Put the TigerVNC marker at the end instead of the beginning of the window
title, making it easier to differentiate windows. At the same time remove
the translation tags as there is nothing in there that should be translated.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4682 3789f03b-4d11-0410-bbf8-ca57d06f2519
Make sure to include config.h in every compilation unit. Otherwise,
the necessary defines will only be visible as a side effect of
including other headers, leading to problems with things like
translations, which will fail in various places.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4646 3789f03b-4d11-0410-bbf8-ca57d06f2519
More fullscreen fixes: Do not try to change size in fullscreen mode
even if viewport is same as window size. However, after exiting
fullscreen mode, the window size needs to be updated.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4610 3789f03b-4d11-0410-bbf8-ca57d06f2519
Another fullscreen fix: When the framebuffer size changes, we must not
call size_range with a limit, when running in fullscreen mode.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4600 3789f03b-4d11-0410-bbf8-ca57d06f2519
Make fullscreen mode work better with some X11 WMs such as Fedora 14
Metacity by removing the size limits before attempting fullscreen.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4599 3789f03b-4d11-0410-bbf8-ca57d06f2519
XGrabKeyboard needs to use CurrentTime rather than
fl_event_time. Otherwise, the second delayed grab attempt will often
fail.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4598 3789f03b-4d11-0410-bbf8-ca57d06f2519