aboutsummaryrefslogtreecommitdiffstats
path: root/vncviewer/Viewport.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Handle Ctrl+AltGr on WindowsPierre Ossman2018-03-081-17/+17
| | | | | Improve AltGr detection even further on Windows so we can detect the case when Ctrl and AltGr are pressed together.
* Better detection of AltGr on WindowsPierre Ossman2018-03-081-34/+58
| | | | | | Try to properly detect the fake CtrlL+AltR sequence Windows sends when pressing AltGr. This allows us to send more accurate key events over to the server.
* Merge branch 'pause' of https://github.com/CendioOssman/tigervncPierre Ossman2017-11-171-8/+36
|\
| * Handle right shift better on WindowsPierre Ossman2017-11-131-0/+14
| | | | | | | | | | The shift buttons are a bit buggy on Windows unfortunately, but we can do slightly better than we're doing today.
| * Handle Windows scan code exceptionsPierre Ossman2017-11-131-9/+23
| | | | | | | | | | Windows mostly follows the AT set 1 scan codes that we want, but there are a few exceptions.
* | Remove double cursor workaround in clientPierre Ossman2017-11-171-6/+0
|/ | | | | We've fixed the issue more properly in the server now, so remove the workaround we had in the client.
* Be explicit which Exception class we wantPierre Ossman2017-09-181-2/+2
|
* Add support for raw keyboard in vncviewerPierre Ossman2017-09-111-52/+122
| | | | | Make sure it can map between the key codes of the local system in to the key codes used by the protocol.
* Basic support for QEMU Extended Key EventsPierre Ossman2017-08-281-6/+6
| | | | | | This adds the basic infrastructure and handshake for the QEMU Extended Key Events extension. No viewer or server makes use of the extra functionality yet though.
* Sync LED state when gaining focusPierre Ossman2017-08-241-0/+81
| | | | | The state might have changed when we didn't have focus. Get everything back in sync once we're back in control.
* Add client support for LED state syncPierre Ossman2017-08-241-0/+172
|
* Change cursor API to use RGBA dataPierre Ossman2017-02-221-34/+8
| | | | | This will allow us to use better formats that preserve the entire alpha channel.
* Render on a temporary surface when neededPierre Ossman2017-02-101-0/+13
| | | | | | Some platforms draw directly to the screen, which means that updates will flicker if we draw multiple layers. Prevent this by first composing the update on a hidden surface.
* Abstract platform rendering to "surfaces"Pierre Ossman2017-02-101-34/+2
| | | | This will allow us to render more things than just the framebuffer.
* Respect SendClipboard settingPierre Ossman2017-01-021-0/+3
|
* Only show sendPrimary on X11 platformsPierre Ossman2015-12-111-0/+2
| | | | | Primary selection is inherently a X11 concept so there is no point showing the settings related to it on other platforms.
* Delegate decoder object management to a separate classPierre Ossman2015-11-271-49/+7
| | | | | | | | | Done in preparation for multi-core decoding. Keeps the complexity out of the other classes. This also moves ownership of the framebuffer in to CConnection. It's the CConnection object that is aware of the threads and how to synchronise with them. Therefore the ownership of the framebuffer must also be there to make sure it isn't deleted whilst threads are working.
* Give context for strings used in menusPierre Ossman2015-09-231-22/+25
| | | | | Makes it easier to see which hot-keys might conflict with each other, and allow some variation in translation in the future.
* Display partial updates on slow transfersPierre Ossman2015-09-231-1/+0
| | | | | | | Normally we only display screen changes once we have the updates for the entire screen. This may give the impression that the viewer is hung though. So display the partial data if the update is taking to long to arrive.
* Add a missing break statement.Joel Teichroeb2015-07-181-0/+1
|
* Add minimize button on f8 menu. Fixes #90Joel Teichroeb2015-07-131-1/+5
|
* Change fillRect() to take a buffer instead of a pixelPierre Ossman2015-06-051-2/+4
| | | | | | | | There has been some confusion if fillRect() should accept a buffer or a pixel. This can cause misrendering if your data is not in the native endian order. A buffer makes more sense here though, and is what most of the callers are already assuming, so change the API to follow that.
* Merge branch 'upreqs' of https://github.com/CendioOssman/tigervncPierre Ossman2015-03-121-290/+2
|\ | | | | | | | | | | Conflicts: contrib/packages/rpm/el5/SPECS/tigervnc.spec vncviewer/Viewport.cxx
| * Raise FLTK requirement to 1.3.3Pierre Ossman2015-01-271-290/+2
| | | | | | | | This means that we can remove a lot of conditionals and fallback code.
* | Reorder class initialiser list to match what actually happensPierre Ossman2015-03-031-1/+1
| |
* | Fix mismatches between format string and argumentsPierre Ossman2015-03-031-1/+1
| |
* | Escape FLTK menu entriesPierre Ossman2015-02-251-18/+27
| | | | | | | | | | We don't want it automatically creating submenus when least expected.
* | Revert "Switch to FLTK's copy() method for menus"Pierre Ossman2015-02-251-57/+28
| | | | | | | | | | | | | | | | This reverts commit e95412569bd45ec3da43e1b9a244856e0408f6ab and commit 52a18150a7a8f2802000136c35005bc83b5b0855. The copy() method unfortunately has its own problems so it was not a good replacement.
* | Disable entries instead of shuffling memory aroundPierre Ossman2015-02-201-22/+11
| | | | | | | | Less risk for bugs this way.
* | Switch to FLTK's copy() method for menusPierre Ossman2015-02-201-24/+64
| | | | | | | | It has less surprises in terms of magical characters.
* | Add shortcuts to context menu for quick accessPierre Ossman2015-02-161-11/+11
| |
* | Stop mapping Meta to SuperPierre Ossman2015-02-161-2/+0
|/ | | | | A lot of X11 keyboard layouts send Meta for Shift-Alt so it's not really a good idea to assume this is the Windows key.
* Use exceptions rather than asserts for for "normal" errorsPierre Ossman2014-10-101-0/+3
| | | | | | | Although these are rare, they are still not indicative of bugs so an exception (which ends up in the log and might also be shown to the user) is more appropriate than an assert. Asserts should only be used to catch blatant API misuse and similar.
* Handle PrintScreen and SysReq on WindowsPierre Ossman2014-09-301-0/+8
| | | | | | This key requires a bit extra care on Windows. We get wildly different messages depending on if Alt is pressed or not. The symbol chosen now follows the standard behaviour on X11.
* Make some log messages more sane for translatorsPierre Ossman2014-09-221-4/+8
|
* Update FLTK patches based on feeback from upstreamPierre Ossman2014-09-111-15/+15
|
* Protect the optional IM disabling calls with #ifdef:sPierre Ossman2014-09-111-0/+4
|
* Use different keysyms for left and right alt on OS XPierre Ossman2014-08-221-0/+2
| | | | | The server will get them confused otherwise if they are pressed at the same time.
* Disable input methods when the viewport is focusedPierre Ossman2014-08-221-0/+2
| | | | | | Input methods are way too complex for us to map them to the VNC protocol in any sane manner. Best just to disable them and rely on simple keyboard behaviour when the viewport is active.
* Ignore FLTK events when we have low level hooksPierre Ossman2014-08-221-0/+4
| | | | | Some events can sneak through, e.g. from some virtual keyboards. We need to ignore these to avoid confusion.
* Add OS X keyboard handlerPierre Ossman2014-08-221-1/+34
|
* Add Windows keyboard handlerPierre Ossman2014-08-221-1/+62
|
* Add X11 keyboard handlerPierre Ossman2014-08-221-0/+41
|
* Add xhandler hookPierre Ossman2014-08-221-0/+31
| | | | | Boiler plate code to intercept system events from FLTK so that we can generate proper keyboard messages.
* Attempt to handle Ctrl+keyPierre Ossman2014-08-221-1/+17
| | | | | Hacky attempt to try to figure out the actual key pressed when FLTK is giving us control codes.
* Remove simple keyboard modelPierre Ossman2014-08-221-150/+175
| | | | | Remove the FLTK simple keyboard system and reorganise things in preparation for a more direct approach.
* Use NoSymbol as the error codePierre Ossman2014-07-211-3/+7
| | | | | This is how the X11 API does things, so it's clearer if we use the same principle.
* Use PixelBuffer objects as the interface for encoders and decodersPierre Ossman2014-07-141-106/+8
| | | | | | | 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.
* Provide a better R/W base PixelBuffer classPierre Ossman2014-07-071-0/+6
| | | | | Clearly separates the read API from the write API and also from actual implementation.
* Get rid of the direct access abuse of FullFramePixelBuffer's dataPierre Ossman2014-07-071-4/+10
|