Skip to content

Commit

Permalink
#1247 use the correct screen number with pointer events on a multi-sc…
Browse files Browse the repository at this point in the history
…reen desktop display

git-svn-id: https://xpra.org/svn/Xpra/trunk@13582 3bb7dfac-3a0b-4e04-842a-767bc560f471
  • Loading branch information
totaam committed Sep 6, 2016
1 parent 77a3e03 commit 883f614
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/xpra/x11/desktop_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,10 @@ def _set_window_state(self, proto, wid, window, new_window_state):
return changes


def get_screen_number(self, wid):
model = self._id_to_window.get(wid)
return model.client_window.get_screen().get_number()

def _adjust_pointer(self, wid, pointer):
#adjust pointer position for window position in client:
x, y = pointer
Expand Down
13 changes: 11 additions & 2 deletions src/xpra/x11/x11_server_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -612,11 +612,20 @@ def _bell_signaled(self, wm, event):
ss.bell(wid, event.device, event.percent, event.pitch, event.duration, event.bell_class, event.bell_id, event.bell_name or "")


def get_screen_number(self, wid):
#maybe this should be in all cases (it is in desktop_server):
#model = self._id_to_window.get(wid)
#return model.client_window.get_screen().get_number()
#return gtk.gdk.display_get_default().get_default_screen().get_number()
#-1 uses the current screen
return -1

def _move_pointer(self, wid, pos):
#(this is called within an xswallow context)
mouselog("move_pointer(%s, %s)", wid, pos)
screen_no = self.get_screen_number(wid)
mouselog("move_pointer(%s, %s) screen_no=%i", wid, pos, screen_no)
x, y = pos
X11Keyboard.xtest_fake_motion(self.screen_number, x, y)
X11Keyboard.xtest_fake_motion(screen_no, x, y)

def do_process_mouse_common(self, proto, wid, pointer):
if self.readonly:
Expand Down

0 comments on commit 883f614

Please sign in to comment.