Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

scrolling for the osx shadow server #1321

Closed
totaam opened this issue Sep 22, 2016 · 8 comments
Closed

scrolling for the osx shadow server #1321

totaam opened this issue Sep 22, 2016 · 8 comments

Comments

@totaam
Copy link
Collaborator

totaam commented Sep 22, 2016

Issue migrated from trac ticket # 1321

component: platforms | priority: major | resolution: wontfix | keywords: osx shadow scrolling

2016-09-22 09:46:06: antoine created the issue


Follow up from #1232, osx has an API to give us those rectangles: CGScreenUpdateMoveCallback.
It shouldn't be too hard to add this callback to the osx shadow server, it will be a little bit more difficult to bypass most of the screen damage logic to go straight to the "scrolling" encoder.

@totaam
Copy link
Collaborator Author

totaam commented Feb 15, 2017

2017-02-15 09:10:33: antoine uploaded file osx-shadow-scrolling.patch (5.5 KiB)

attempt to use CGScreenRegisterMoveCallback

@totaam
Copy link
Collaborator Author

totaam commented Feb 15, 2017

2017-02-15 09:14:27: antoine changed status from new to assigned

@totaam
Copy link
Collaborator Author

totaam commented Feb 15, 2017

2017-02-15 09:14:27: antoine commented


The patch above fails with a cryptic error message: SystemError: error return without exception set.

Maybe we'll need to use Cython to get this to work. PITA.

@totaam
Copy link
Collaborator Author

totaam commented Mar 20, 2019

2019-03-20 05:06:15: antoine commented


Milestone renamed

@totaam
Copy link
Collaborator Author

totaam commented Feb 29, 2020

2020-02-29 07:14:52: antoine uploaded file osx-shadow-scrolling-v2.patch (5.6 KiB)

updated patch

@totaam
Copy link
Collaborator Author

totaam commented Feb 29, 2020

2020-02-29 07:18:04: antoine changed status from assigned to closed

@totaam
Copy link
Collaborator Author

totaam commented Feb 29, 2020

2020-02-29 07:18:04: antoine set resolution to wontfix

@totaam
Copy link
Collaborator Author

totaam commented Feb 29, 2020

2020-02-29 07:18:04: antoine commented


Even with the latest pyobjc 6.1 and the refreshed patch, registering for the callback fails:

Traceback (most recent call last):
  File "/Users/antoine/Desktop/Xpra.app/Contents/Resources/lib/python/xpra/server/shadow/shadow_server_base.py", line 431, in _process_map_window
    self.start_refresh(wid)
  File "/Users/antoine/Desktop/Xpra.app/Contents/Resources/lib/python/xpra/platform/darwin/shadow_server.py", line 162, in start_refresh
    err = CG.CGScreenRegisterMoveCallback(self.screen_move_callback, None)
SystemError: <built-in function CGScreenRegisterMoveCallback> returned NULL without setting an error

And this API is deprecated anyway, in favour of the Quartz Display Streaming API

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant