2009/3/2 Ethan <[email protected]>:
> log is attached. the last bit (the relevant bit?) is:
> got ['button-action', 1, 5, 1, [39, 94], []]
> current mask: set([]), wanted: set([])
> Gdk-ERROR **: The program 'xpra' received an X Window System error.
> This probably reflects a bug in the program.
> The error was 'BadValue (integer parameter out of range for operation)'.
> (Details: serial 455 error_code 2 request_code 131 minor_code 2)
> (Note to programmers: normally, X errors are reported asynchronously;
> that is, you will receive the error a while after causing it.
> To debug your program, run it with the --sync command line
> option to change this behavior. You can then get a meaningful
> backtrace from your debugger if you break on the gdk_x_error() function.)
> aborting...
Ugh -- it looks like your Xvfb (or your Xvfb's XTest extension) thinks
that mice have only 3 buttons. (X treats mouse wheels as "extra
buttons".)
Can you test the attached patch? With it applied (on the server side),
then using the wheel *should* no longer crash your session. (And you
should see a nice warning in your .log file.) However, the mouse wheel
still won't *work*, it will just be ignored. I'm not sure if there's
any magic incantation that will convince Xvfb to accept mouse wheel
events -- does anyone know? Do mouse wheels work for anyone else? (I
don't have any wheel mice handy to test.)
What does 'xdpyinfo | head' say when run against the xpra server?
(I.e., 'DISPLAY=:36 xpydinfo | head'.)
-- Nathaniel
#
# old_revision [e42d6e344e36c012b1dfd5dee5bc3537524b75b7]
#
# patch "xpra/server.py"
# from [1c658cde8dbe91e5dfb0fdb37b5c038d7d88881c]
# to [7151d2da4fd320ca1b8e699ac02bab89e0339f02]
#
============================================================
--- xpra/server.py 1c658cde8dbe91e5dfb0fdb37b5c038d7d88881c
+++ xpra/server.py 7151d2da4fd320ca1b8e699ac02bab89e0339f02
@@ -23,6 +23,7 @@ from wimpiggy.keys import grok_modifier_
get_children)
from wimpiggy.window import OverrideRedirectWindowModel, Unmanageable
from wimpiggy.keys import grok_modifier_map
+from wimpiggy.error import XError, trap
from wimpiggy.log import Logger
log = Logger()
@@ -542,7 +543,14 @@ class XpraServer(gobject.GObject):
self._make_keymask_match(modifiers)
self._desktop_manager.raise_window(self._id_to_window[id])
self._move_pointer(pointer)
- xtest_fake_button(gtk.gdk.display_get_default(), button, depressed)
+ try:
+ trap.call_unsynced(xtest_fake_button,
+ gtk.gdk.display_get_default(),
+ button, depressed)
+ except XError, e:
+ log.warn("Failed to pass on (un)press of mouse button %s"
+ + " (perhaps your Xvfb does not support mousewheels?)",
+ button)
def _process_pointer_position(self, proto, packet):
(_, id, pointer, modifiers) = packet
_______________________________________________
Parti-discuss mailing list
[email protected]
http://lists.partiwm.org/cgi-bin/mailman/listinfo/parti-discuss