Jump to content
Mumble forums

PTT and Dual Head (Separated X screen)


rafaeljpc
 Share

Recommended Posts

Hi,


I am quite new at mumble, so I don't if I've done something wrong.

I have 2 video cards, and 1 monitor on each board, I configured to use dual head with separated x screen (Linux version is Ubuntu 10.04).

The problem is, I like to use the chat programs on the screen that I'm not playing and when I move the mouse to the display that I am playing PTT button stop working.

Then when I move the mouse to the display that I openned Mumble it works fine again.


Sorry to bother, and thanks for the help

Sysinfo: AMD Athlon II X3 435 Processor 3.0GHz, 4GB DDR2, Ubuntu Lucid Lynx

Link to comment
Share on other sites

Are any of the keyboard or mouse input transferred to the other display? Because I think that the x-servers are not communication with each other. So a signal send on one display is not passed to the other display. I don't know if there is a setting in the xorg.conf to help you. You can always try to setup xinerama or RandR for your dual-head, but maybe you don't want that.


Another option could be that mumble will also start to listen to the other x-server for inputs from the keyboard or mouse. But I don't know if that is implemented or even possible.

Computer specs: AMD FX-8320, 8GB DDR3-SDRAM, AMD Radeon HD 7950, Asus Xonar D1, Windows 7 Ultimate 64bit/Debian Jessie AMD64.

Link to comment
Share on other sites

I tried to find something on xorg.conf, but it was in vain.


I can put my xorg.conf here, but first I think it is important to say that some programs, like Mangler (a ventrilo client for linux, that I'm using until my guild decide to change the platform) works fine.


Looking at the Mumble's source, I found where the signal is captured.

...
if (XQueryPointer(display, root, &root_ret, &child_ret, &root_x, &root_y, &win_x, &win_y, &mask[next]) && XQueryKeymap(display, keys[next])) {
...
}
...

 

At Mangler that they use the following line of code:

 

GdkWindow   *rootwin = gdk_get_default_root_window();
...
XQueryKeymap(GDK_WINDOW_XDISPLAY(rootwin), pressed_keys);

 

I looks like that XQueryKeymap of mumble just get the signal of the display that I oppened the Mumble and not from the active window (which is where the pointer is), and Mangler get it from the display of the current rootwin.


A Solution is to update the display variable every time befor call XQueryKeymap.


I'll try to modify and build mumble here then I'll send a patch, if you like.


Thanks for the help

Sysinfo: AMD Athlon II X3 435 Processor 3.0GHz, 4GB DDR2, Ubuntu Lucid Lynx

Link to comment
Share on other sites

  • 4 weeks later...

Hi... it's me again.


Well I'm trying to solve this bug, as I have the envirorment for that and want to learn more about Qt programing and the mumble itselft.

But when I did some traces I saw that are two ways that mumble listen the key/button events from X.


1 - When XInput2 is unavailable and a thread is openned that check the modifications at the keymap. (and works fine with 2 screens, I tested)

2 - Using XInput2, which is cleaner and, according to the every source I found, more efficient.


The problem is, when using xinput2 I looks like that the events generated at the screen :0.1 is not passed to the screen :0.0 (where mumble is openned).


I looked at the xfree86.org documentation and I couldn't find a way to link all screens events.


It's strange, by the way, because at one of the structures of XInput2 (the XKeyEvent or XButtonEvent) has a property called same_screen. :shock:


As I waste about 8 hours knocking my head at the keyboard ( :D :oops: ), I decided to call for help.


Did someone know why this problem is happening, and why all screens key events couldn't be passed to mumble.


PS: I Tryed to force the display connection inside the program and it workig perfectly.

Sysinfo: AMD Athlon II X3 435 Processor 3.0GHz, 4GB DDR2, Ubuntu Lucid Lynx

Link to comment
Share on other sites

You could provide a patch of your solutions to the tracker. I mean the force display connection inside the program, as long as it does not break the program for other users.


For the XInput2 problem I do not have a answer yet. But on freedesktop.org they have the complete protocol explained, maybe it can help you.

Computer specs: AMD FX-8320, 8GB DDR3-SDRAM, AMD Radeon HD 7950, Asus Xonar D1, Windows 7 Ultimate 64bit/Debian Jessie AMD64.

Link to comment
Share on other sites

I'm think on 2 solutions, both are not so good.


1 - Implement a parameter that jump the normal XInput2 part and run as it was not working.


2 - Open more connection, one for each screen, and link de devices and so on.


The first is easy, the second is more cool, but I was wondering if there is any problem with opening more displays.

Sysinfo: AMD Athlon II X3 435 Processor 3.0GHz, 4GB DDR2, Ubuntu Lucid Lynx

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...