aboutsummaryrefslogtreecommitdiffstats
path: root/vncviewer/DesktopWindow.h
Commit message (Collapse)AuthorAgeFilesLines
* Mark overridden virtual functionsPierre Ossman2024-06-241-4/+4
| | | | | Use the new "override" keyword to properly differentiate between new virtual methods, and existing virtual methods being overridden.
* Merge "Pixel" type in to PixelFormat headerPierre Ossman2023-02-181-1/+0
| | | | | It's a type specific to that class, so let's keep them close for clarity.
* Use stdint typesPierre Ossman2023-02-011-1/+1
| | | | | Avoid having our own custom stuff and instead use the modern, standard types, for familiarity.
* Use __attribute__:s directlyPierre Ossman2023-01-051-7/+2
| | | | | | These are supported by gcc and clang, and I don't think MSVC works well with our code anyway, so let's keep things simple and use these directly.
* Only grab keyboard when we have focusSamuel Mannehed2021-09-241-0/+2
| | | | | | | | | | | There was an issue with the new grabs that were introduced in commit 2289342de7222e4ff2483eae95bb9898830e6097. On macOS when running vncviewer in fullscreen on one monitor, we saw that we sometimes got resize and fullscreen events when switching the focus away from vncviewer. With the changes in the commit mentioned above this meant that we immediately grabbed the keyboard again, thus never releasing it. Fixes #1332.
* Create helper function for grabKeyboard conditionsSamuel Mannehed2021-09-241-0/+1
|
* Clean up global event handler structurePierre Ossman2021-09-061-1/+2
| | | | | Let's separate the standard global event handling from the hacky workarounds, for clarity.
* Merge branch 'fullscreens-added-removed' of https://github.com/x11clone/x11clonePierre Ossman2021-09-021-0/+1
|\
| * Recreate fullscreen window if screens are removed or addedPeter Åstrand (astrand)2018-05-071-0/+1
| |
* | Support the VMware Cursor Position extension on vncviewerlhchavez2021-03-111-0/+3
| | | | | | | | | | | | | | | | This change makes it possible for re-synchronizing the remote cursor on the vncviewer when in fullscreen mode. This is done by locally moving the cursor position to what the server thinks it should be. Now SDL games should work!
* | Merge branch 'exclipboard' of https://github.com/CendioOssman/tigervncPierre Ossman2019-07-011-3/+5
|\ \
| * | Improved clipboard APIPierre Ossman2019-07-011-3/+5
| | | | | | | | | | | | | | | Change the internal clipboard API to use a request based model in order to be prepared for more advanced clipboard transfers.
| * | Clean up internal clipboard handlingPierre Ossman2019-07-011-1/+1
| |/ | | | | | | | | | | We now filter incoming data, which means we can start assuming the clipboard data is always null terminated. This allows us to clean up a lot of the internal handling.
* | Properly mark overloaded methods with virtualPierre Ossman2019-06-181-3/+3
| | | | | | | | Makes it easier to see what is overloaded and what isn't.
* | Request keyboard grab ability under XwaylandPierre Ossman2019-06-181-0/+1
|/ | | | | We're usually white listed, but let's be a good citizen and formally request the keyboard grab ability from the compositor.
* Move server cut text handler to ViewportPierre Ossman2018-03-261-0/+3
| | | | | That way both incoming and outgoing clipboard are both in the same place, making things clearer.
* Replace "frames" with "updates" in statsPierre Ossman2018-03-261-2/+2
| | | | | | The VNC servers aren't great at getting full frames with each update, so avoid calling it "frames per second" in the statistics as that can be misleading.
* Release pointer grab when cursor leaves windowPierre Ossman2017-09-181-0/+5
| | | | | | We don't need the grab any more if the pointer cannot click on our window. This makes it possible to shift focus to another application when we aren't covering all monitors.
* Add client support for LED state syncPierre Ossman2017-08-241-0/+3
|
* Display performance statistics in viewerPierre Ossman2017-02-241-0/+18
| | | | | | Adds an optional graph to the viewer to display current frame rate, pixel rate and network bandwidth. Makes it easier to debug and test performance related issues.
* Change cursor API to use RGBA dataPierre Ossman2017-02-221-1/+1
| | | | | This will allow us to use better formats that preserve the entire alpha channel.
* Fade overlay in and outPierre Ossman2017-02-101-1/+3
|
* Add overlay tip to help find the context menuPierre Ossman2017-02-101-0/+12
|
* Render on a temporary surface when neededPierre Ossman2017-02-101-0/+2
| | | | | | 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.
* Handle scrolling manuallyPierre Ossman2017-02-101-3/+6
| | | | | Stop fighting with the FLTK scroll widget and handle layout ourselves. This opens up the possibility of doing more complex drawing as well.
* Delegate decoder object management to a separate classPierre Ossman2015-11-271-3/+0
| | | | | | | | | 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.
* Use PixelBuffer objects as the interface for encoders and decodersPierre Ossman2014-07-141-9/+7
| | | | | | | 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-1/+1
| | | | | Clearly separates the read API from the write API and also from actual implementation.
* Remove full support for colour mapsPierre Ossman2014-07-071-2/+0
| | | | | | | | | 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.
* Remove some premature optimisationPierre Ossman2014-07-071-19/+9
| | | | Reduces header dependencies.
* Be more consistent in referring to pixel byte streams as buffersPierre Ossman2014-07-071-2/+2
|
* Restore edge/bump scrolling when we are in full screen mode as it is easierPierre Ossman2012-09-031-0/+4
| | | | | | | to use. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4991 3789f03b-4d11-0410-bbf8-ca57d06f2519
* X11 window managers are very buggy when it comes to having a window startPierre Ossman2012-08-231-1/+6
| | | | | | | | | 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
* Added new option "-Maximize", for maximizing the window at startup.Peter Åstrand2012-08-011-0/+2
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4949 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Implement client side multi-head support. Requires a FLTK patched to supportPierre Ossman2012-07-131-0/+2
| | | | | | | | 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 resizingPierre Ossman2012-07-041-0/+6
| | | | | | | | 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
* If the client and server are using identical pixel formats, then perform ↵DRC2011-11-031-0/+7
| | | | | | Tight decoding directly into the viewer's back buffer, rather than going through the slow fillRect/imageRect routines. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4757 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Fix build issues with Visual C++ (implemented macro version of snprintf + ↵DRC2011-06-241-3/+3
| | | | | | re-ordered headers to ensure that winsock is included ahead of windows.h) git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4527 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Implement a more robust method to handle the keyboard grab/focus voodoo asPierre Ossman2011-06-141-0/+2
| | | | | | | it didn't catch some cases on OS X. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4496 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Add support for cursors to the new viewer.Pierre Ossman2011-06-081-4/+3
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4472 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Handle framebuffer resize requests.Pierre Ossman2011-06-011-0/+4
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4460 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Implement support for grabbing the keyboard when in full screen mode.Pierre Ossman2011-05-261-0/+9
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4449 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Add a scroll widget so that we can allow resizing of the main window.Pierre Ossman2011-04-151-0/+3
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4374 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Split out the graphics and input handling to a separate widget in preparationPierre Ossman2011-04-151-56/+6
| | | | | | | for things like scroll bars. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4371 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Use a STL map to track keys so we don't have to care what range FLTK key codesPierre Ossman2011-04-141-1/+4
| | | | | | | can have. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4368 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Reorganise the translation to keysyms to make the code simpler. At the samePierre Ossman2011-03-101-0/+1
| | | | | | | time give special keys priority as some of them generate symbols as well. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4355 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Initial stab at keyboard support. Lots of corner case to work out though...Pierre Ossman2011-03-091-0/+4
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4349 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Handle pointer events.Pierre Ossman2011-03-091-0/+7
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4346 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Initial commit of new FLTK based vncviewer. Most of the code comes from thePierre Ossman2011-03-091-0/+110
| | | | | | | current Unix vncviewer. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4345 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Migrating to new directory structure adopted from the RealVNC's source tree. ↵Constantin Kaplinsky2006-05-251-254/+0
| | | | | | Windows part should be complete. For the Unix part, more changes will follow. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@592 3789f03b-4d11-0410-bbf8-ca57d06f2519