Xpra: Ticket #539: tabbed client
Instead of displaying all the client windows as individual windows, we could use a tabbed viewer which shows each client window as a separate tab.
Problems:
- Application Quircks: applications like google chrome that don't use the correct window type hints will just be impossible to handle correctly
- refactoring needed for:
- client window base vs client widget base common code
- clicks, mouse, keyboard handling, focus, etc
- painting spinners
- opengl backing integration (potentially big, could go with a simple pixmap backing to begin with: lots of memory copying, but client usually has CPU to spare anyway)
- pass icons and title to tab parent window
- missing code for: xid
- decide how to handle: applications that request a resize or move
- potentially very big: smooth scrolling (allow the server side window to be much bigger than what we display and use scrollbars to navigate it) - could be extended later so that the remote app cooperates in scrolling (so we can have a virtual window size much bigger than the server-side window area)
- handle maximize, fullscreen
- slow down the refresh for the tabs that aren't shown (but still update our back buffer so we can show them instantly when switching tabs)
- handling size hints, etc: we need to add the offset of our top bar (should be possible by modifying the base-size attribute on the fly?)
I will attach a stub client that uses virtual "tab" windows (work in progress)
Wed, 19 Mar 2014 15:12:37 GMT - Antoine Martin: attachment set
- attachment
set to tabbed-client.patch
stub for a tabbed client
Wed, 19 Mar 2014 15:31:49 GMT - Antoine Martin: owner, status, description changed
- owner
changed from Antoine Martin to Antoine Martin
- status
changed from new to assigned
- description
modified (diff)
Sat, 17 May 2014 11:20:46 GMT - Antoine Martin: milestone changed
- milestone
changed from 0.13 to 0.14
re-scheduling.
Thu, 19 Jun 2014 04:22:01 GMT - Antoine Martin: milestone changed
- milestone
changed from 0.14 to future
Re-scheduling: too much work, best to have the application use a control channel to tune the encoding (example code: webkit_scrolling_window.py), or write a dedicated client application.
Fri, 01 May 2015 06:32:13 GMT - Antoine Martin: status changed; resolution set
- status
changed from assigned to closed
- resolution
set to wontfix
Too hard to get right generically.
Sat, 23 Jan 2021 04:58:45 GMT - migration script:
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/539