Discussion:
Xfwm window borders do not respond to touch screen
Chandler Paul
2012-07-19 15:33:27 UTC
Permalink
Hello, recently I got my hands on a Lenovo S10-3t with a multitouch
screen. Everything works fine, however titlebars of windows along with
their borders do not respond to my touch screen exclusively. I can
interact with windows normally with my touch screen, however I cannot
use my touch screen to move a window, minimize a window, close a
window, etc. unless I use the right click menu on a window button. Now
if I try to do the same with my laptop's touch pad, it works just fine.
I am very sure this is an actual problem with xfwm, as I have /no/
issues with anything else other then window borders, and metacity along
with twm allow me to interact with title bars and window borders
perfectly using my touch screen. In addition, the Xorg mailing list
told me that the issue is most likely with Xfwm as opposed to Xorg
itself due to the fact that everything else with my touch screen works
fine. I have looked through all the Xfce settings over and over again
with no luck, and I have verified that Xorg is indeed showing a click
event for my touch screen using xev. Xorg's log shows nothing of use
either. If anyone would help me I would be very thankful.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.xfce.org/pipermail/xfce/attachments/20120719/281a06a6/attachment.pgp>
Olivier Fourdan
2012-07-20 11:03:05 UTC
Permalink
Post by Chandler Paul
Hello, recently I got my hands on a Lenovo S10-3t with a multitouch
screen. Everything works fine, however titlebars of windows along with
their borders do not respond to my touch screen exclusively. I can
interact with windows normally with my touch screen, however I cannot
use my touch screen to move a window, minimize a window, close a
window, etc. unless I use the right click menu on a window button. Now
if I try to do the same with my laptop's touch pad, it works just fine.
I am very sure this is an actual problem with xfwm, as I have /no/
issues with anything else other then window borders, and metacity along
with twm allow me to interact with title bars and window borders
perfectly using my touch screen. In addition, the Xorg mailing list
told me that the issue is most likely with Xfwm as opposed to Xorg
itself due to the fact that everything else with my touch screen works
fine. I have looked through all the Xfce settings over and over again
with no luck, and I have verified that Xorg is indeed showing a click
event for my touch screen using xev. Xorg's log shows nothing of use
either. If anyone would help me I would be very thankful.
I don't have such hardware, but I tried with a touch tablet and another
screen tablet and no problem whatsoever.

Beside, ignoring events based on their source requires additional code that
xfwm4 does not have so I don't see how it could ignore events coming from
the touch screen alone.

Only possibility I could think of is the type of click (simple click, click
and drag, double click, etc.) detection routine in xfwm4 gets fooled when
using the touch screen for some reason, so I would suggest to dig there
first, possibly by adding traces in the code to see what it does and what
might go wrong.

http://git.xfce.org/xfce/xfwm4/tree/src/events.c#n227

Another possibility is to record the device description of your touch
screen using "evemu-describe" and record an event using "evemu-record"
(needs to be done without any X server running or else the device will be
grabbed by the X server) and post both the description and event recording
so I can try to reproduce without the hardware.

Once you have more info we can start to investigate, but it's next to
impossible for me to investigate that without any data.

Cheers,
Olivier.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.xfce.org/pipermail/xfce/attachments/20120720/1cd1526d/attachment.html>
Chandler Paul
2012-07-20 20:24:32 UTC
Permalink
On Fri, 20 Jul 2012 13:03:05 +0200
Post by Olivier Fourdan
Another possibility is to record the device description of your touch
screen using "evemu-describe" and record an event using "evemu-record"
(needs to be done without any X server running or else the device
will be grabbed by the X server) and post both the description and
event recording so I can try to reproduce without the hardware.
I'm on Gentoo, and we don't have the utouch (it looks like that's what evemu-describe and evemu-record are from) drivers in portage, the current driver I'm using is xf86-input-evdev. Is there any way I can get that information for you without using utouch (e.g. with xev or the like)?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.xfce.org/pipermail/xfce/attachments/20120720/3dfb6cd0/attachment.pgp>
Olivier Fourdan
2012-07-20 21:19:26 UTC
Permalink
Post by Chandler Paul
On Fri, 20 Jul 2012 13:03:05 +0200
Post by Olivier Fourdan
Another possibility is to record the device description of your touch
screen using "evemu-describe" and record an event using "evemu-record"
(needs to be done without any X server running or else the device
will be grabbed by the X server) and post both the description and
event recording so I can try to reproduce without the hardware.
I'm on Gentoo, and we don't have the utouch (it looks like that's what
evemu-describe and evemu-record are from) drivers in portage, the current
driver I'm using is xf86-input-evdev. Is there any way I can get that
information for you without using utouch (e.g. with xev or the like)?
If not available on Gentoo, just grab the sources and built it (gentoo is a
source based distribution, innit?)

Cheers,
Olivier.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.xfce.org/pipermail/xfce/attachments/20120720/23d68055/attachment.html>
Chandler Paul
2012-07-20 21:41:01 UTC
Permalink
On Fri, 20 Jul 2012 23:19:26 +0200
On Fri, Jul 20, 2012 at 10:24 PM, Chandler Paul
Post by Chandler Paul
On Fri, 20 Jul 2012 13:03:05 +0200
Post by Olivier Fourdan
Another possibility is to record the device description of your
touch screen using "evemu-describe" and record an event using
"evemu-record" (needs to be done without any X server running or
else the device will be grabbed by the X server) and post both
the description and event recording so I can try to reproduce
without the hardware.
I'm on Gentoo, and we don't have the utouch (it looks like that's
what evemu-describe and evemu-record are from) drivers in portage,
the current driver I'm using is xf86-input-evdev. Is there any way
I can get that information for you without using utouch (e.g. with
xev or the like)?
If not available on Gentoo, just grab the sources and built it
(gentoo is a source based distribution, innit?)
Cheers,
Olivier.
Alright, I compiled it and ran the commands you wanted me to. The output is attached. I don't know if this is all the data you need, so feel free to tell me if you need more.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: evemu-describe.txt
URL: <http://mail.xfce.org/pipermail/xfce/attachments/20120720/43bc0206/attachment-0002.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: evemu-record.txt
URL: <http://mail.xfce.org/pipermail/xfce/attachments/20120720/43bc0206/attachment-0003.txt>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.xfce.org/pipermail/xfce/attachments/20120720/43bc0206/attachment-0001.pgp>
Chandler Paul
2012-07-22 18:06:44 UTC
Permalink
On Fri, 20 Jul 2012 13:03:05 +0200
Post by Olivier Fourdan
Beside, ignoring events based on their source requires additional
code that xfwm4 does not have so I don't see how it could ignore
events coming from the touch screen alone.
Only possibility I could think of is the type of click (simple click,
click and drag, double click, etc.) detection routine in xfwm4 gets
fooled when using the touch screen for some reason, so I would
suggest to dig there first, possibly by adding traces in the code to
see what it does and what might go wrong.
http://git.xfce.org/xfce/xfwm4/tree/src/events.c#n227
I just tried this today, and I noticed something very odd. I tried to add some breakpoints at typeOfClick(), and when I tap the window borders with my touch screen the function isn't even called.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.xfce.org/pipermail/xfce/attachments/20120722/7493c119/attachment.pgp>
Chandler Paul
2012-07-22 20:38:17 UTC
Permalink
On Sun, 22 Jul 2012 18:06:44 +0000
Post by Chandler Paul
I just tried this today, and I noticed something very odd. I tried to
add some breakpoints at typeOfClick(), and when I tap the window
borders with my touch screen the function isn't even called.
I decided to try looking into this a little further, and actually managed to get somewhere. It looks like that when I tap the window border with my touch screen, handleButtonPress(DisplayInfo *display_info, XButtonEvent * ev) is called, for some reason ev.subwindow is set to 0, which causes handleButtonPress() to discard the event, meaning that whatever is passing the XButtonEvent structure to handleButtonPress() is not properly setting the subwindow value for whatever reason...
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <http://mail.xfce.org/pipermail/xfce/attachments/20120722/bdd6f5c2/attachment.pgp>
Loading...