/srv/irclogs.ubuntu.com/2012/04/11/#ubuntu-touch.txt

SatorisUnity 2D's dash not showing is _not_ caused by the gesture stack. I can verify that it does get the gestures, but the Dash visibility toggling code does not do what it is supposed to.07:41
=== MacSlow is now known as MacSlow|lunch
=== MacSlow|lunch is now known as MacSlow
cnddandrader, bregma, tvoss: standups!14:15
* bregma sips some cold dark-roasted Sumatran14:15
tvossworking on chromium patch, https://code.launchpad.net/~thomas-voss/utouch-frame/generic-backend and #95097414:15
bregmajust fixed #973539, writing a good test case (hopefully)14:15
cndI'm *still* working on bug 974887, which involves many nasty hairy issues in the server when touchscreen pointer emulation is performed14:15
bregmaI don't like touching hairy issues14:16
cndhere's the gist:14:16
cndyou have two touches in sequence, down up down up14:16
cndboth are grabbed by a touch grab14:16
dandraderI'm rebasing my s/geisv1/geisv2 refactoring on unity gestures code on top of my changes done for https://bugs.launchpad.net/unity/+bug/97837814:16
cndthe second touch is rejected before the first touch14:16
cndwhile both touches can be pointer emulated, we can't send pointer events for touch 2 before touch 114:17
dandraderthen I'll continue working on looking at what's missing on unity 3d gestures14:17
cnddandrader, I'm sorry I haven't had a chance to test your unity fix yet14:17
cndI hope to finish off the bug I'm working on this morning14:17
cndand then I'll get to testing it14:17
dandradercnd, ok14:18
bregmacnd, do you know if is there a directive in xorg.conf to force the server to NOT load an extension?14:18
cndbregma, which extension?14:19
cndI don't know anything off the top of my head14:19
cndman xorg.conf14:19
bregmayeah, I'm doing that but asking is quicker, if you know the answer14:19
bregmaI want to disable the XInput extension to test what happens when uTouch is used against a server that does not have it14:20
bregmathat bug is reported frequently, we need to handle it gracefully14:20
cndbregma, whoa, I don't think that's possible14:20
cndI think there are some extensions that are not optional14:20
cndand XI is one of them14:20
bregmawell, I can test against no server at all, the code path is almost the same14:21
bregmabut not identical14:21
cndbregma, you could also patch the server to not advertise it?14:21
bregmanot worth it for a simple regression test14:21
cndyeah14:22
bregmaas far as uTouch is concenrned, no server and no XI2.2 are pretty much the same thing14:22
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
=== tvoss is now known as tvoss|early_dinn
=== dandrader is now known as dandrader|lunch
=== tvoss|early_dinn is now known as tvoss
cndso many bugs I'm encountering when using a touchscreen...17:37
tvosscnd, ping17:46
cndtvoss, pong17:46
tvosscnd, finished pimpl'ing of the generic backend, unit tests pass: https://code.launchpad.net/~thomas-voss/utouch-frame/generic-backend17:46
cndcool17:47
tvosscnd, next step: port over the x backend, or should I go for documenting the code and start porting the x backend after that?17:48
cndtvoss, documentation should be done first, methinks17:48
cndit also helps one notice holes in implementations :)17:48
tvosscnd, no problem, will tackle that first17:48
cndtvoss, I think we might want to rename the includes as <utouch/backend/*>17:49
tvosscnd, yeah, do you think we should rename generic to something like legacy?17:49
cndtvoss, why legacy?17:50
tvosscnd, I think due to my bad understanding of english ;)17:50
tvosslet me give leo a try17:50
cndtvoss, legacy in this context would mean something kept around from the past17:50
cndlike a compatibility layer17:51
tvosscnd, ack ... and totally misleading :) stick with generic then?17:52
cndtvoss, I think we might want to structure this as src/v2/backend/<backend framework implementation> and src/v2/backends/<backend implementations>17:52
cnd?17:52
cndoh wait, I'm wrapping my head around this the wrong way17:52
cndhmm17:53
tvosscnd, but the structure is fine for me17:54
cndtvoss, what I'm thinking is that the generic backend implementation should be part of the main implementation17:54
cndright now you have a generic backend on top of the main implementation17:54
cndso it sits beside the current X backend17:54
cndinstead, should we move the generic backend code into the main implementation itself?17:55
tvossyeah, like a well-defined interface to the underlying implementation17:55
cndyeah17:56
tvossawesome17:56
cndthe idea really is that we are creating a public api for the frame backend, which is currently private17:58
tvossindeed, encouraging people to "port" frame in terms of custom backends17:59
tvosscnd, do you have any feedback from jorge regarding the uds sessions?18:06
cndtvoss, they are scheduled18:06
cndI'll forward you the email18:06
tvosscnd, thanks18:06
=== dandrader|lunch is now known as dandrader
dandradercnd, I'm starting to think that fixing this drag timeout issue in unity is more important than porting it to geisv2 api18:45
cnddandrader, the fix merely entails exposing the threshold and timeout configuration through geis18:46
cndyou can ask bregma for details on how to do it18:46
cndit should be simple18:46
cndgrail already has an API for setting the configurations18:46
dandradercnd, is the "flick" gesture type working or is it deprecated?18:49
cnddandrader, it was an attempt to make a flick or a hold gesture possible with the old architecture18:50
cndI don't think there's any reason it shouldn't still work, but it may be better to do it on the client side of geis18:50
cndbregma?18:50
cndI think I'm down to one last issue in the server, but it's very intermittent19:02
cndI can't seem to nail it down19:02
dandradercnd, should we expose those gesture configurations only in geisv2 or also in geisv1?19:03
cnddandrader, I think only in geis 219:03
cndit's not worth the effort in geis 119:03
dandraderok. so the fix for that in unity will carry along with it the port for geisv2 api :)19:04
bregmaI don;t think flick has been tested in a very long time19:07
bregma... the geis v1 configuration is a passthrough to the geis v2 configuration, the only extra work is in setting up the test cases (test cases are about 500% of the work involved in most tasks)19:08
=== tvoss is now known as tvoss|gftd
cnddandrader, this isn't a fix for a bug in precise is it?19:18
cndit's needed for future gesture work, correct?19:18
dandradercnd, it's in precise19:19
cnddandrader, so what is the bug, and why do we need to configurations?19:19
bregmathe door is rapidly swinging closed for precise19:19
dandraderif you put 3 fingers over a window, wait a second or so, and then start dragging them the window will stay put since the drag gesture has timed out19:19
cnddandrader, there are two resolutions:19:20
cnd1. Won't fix19:20
cnd2. use the info from the touch gesture events instead19:20
cndI'm fine with either, tbh19:20
cndpeople who want to move their windows are very likely to begin moving them as soon as they touch them19:21
dandraderI think it would be silly to have this limitation19:21
cnddandrader, yes, I don't think we should have the limitation either, but it's not a huge deal imo19:22
dandraderit's not huge, sure19:22
cndand I think it's worked this way for multiple releases, so it's not a regression either19:22
dandraderbut it's not a rare situation either, I think19:22
cnddandrader, sometimes you have to cut your losses and hope to fix things in the next release :)19:23
cndit's only 6 months away :)19:23
cndbtw, I'm going to try your unity branch right now19:23
cndargh, nux changes again19:27
cndwait a minute...19:28
cndit's trying to in include Nux/Nux.h19:29
cndbut all the nux -dev packages are namespaced like Nux-2.0/Nux.h19:29
cndhow is this supposed to compile?19:29
cnddandrader, do you have /usr/include/Nux?19:30
dandraderthe path is [...]/Nux-2.0/Nux/Nux.h19:31
cndahh19:31
cndso in my build configuration it isn't looking in the right place for some reason19:31
dandraderyou might want to rm * -rf build and run cmake again19:32
cndI just did a clean checkout and cmake configuration19:32
cndnothing would have changed19:32
dandraderdid it find nux at all?19:33
cndI resolved it19:36
cndI did what you said :)19:36
cndbecause cmake failed once because I was missing a dep19:36
cndso I installed the dep and reran it19:36
cndbut apparently rerunning cmake doesn't produce the same result as a clean cmake run19:37
dandraderyeah, cmake seems to do a lot of caching19:38
* bregma keeps studiously silent19:39
cndyeah, that's it's point, but if it caches it needs to do so correctly :)19:39
bregmawoo-hoo, I got a jenkins failure mail for the first time evarr19:39
cndyay19:40
bregmamake[3]: *** No rule to make target `/src/xorg-gtest-all.cpp', needed by `libgtest_geis_a-xorg-gtest-all.o'.  Stop.19:41
bregmahmmmm19:41
cndbregma, sounds like an out of date aclocal macro19:42
cndthe gtest prefix isn't being set properly19:42
cndbregma, oh right19:43
cndthis was an issue in the pbuilder-jenkins setup19:43
cndcheck the build log for it attempting to install some dependencies19:43
cndlike xorg-gtest19:43
cndit is probably trying to install libxorg-gtest0, which doesn't exist anymore19:44
cndI remember hitting this issue with grail19:44
cnddandrader, I'm hitting bugs in the x server with your branch again, so it'll be a bit before I can get back to you...19:50
dandraderok19:52
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader
cndI'm getting really annoyed with pointer emulation bugs20:57
cndhowever, this new bug looks to be a compiz bug20:58
bregmayay, play pass the bug21:03
cndoo, it is a bug in the unity gesture code21:06
cndI think it's always been there21:06
cndand my X fixes have activated it from being dormant to being a real issue21:06
cnddandrader, when gestures start, they call pushGrab21:07
cndwhen they end, they call releaseGrab21:07
cndremoveGrab I mean21:07
cndwhen I do a three touch drag, I see a pushGrab for both pinch and drag21:07
cndbut I only see removeGrab when the pinch finishes21:07
cndI'm not sure yet if the drag gesture finish isn't being sent, or if there's some other issue21:08
dandradercnd, and what does the missing removeGrab causes21:09
dandrader?21:09
cnddandrader, the compiz grab grabs the X pointer21:09
cndso now the pointer is grabbed, which means only compiz sees any pointer motion21:09
cndit looks like the code is ok though21:10
cndso this could end up being a bug in the server after we unravel it all21:10
dandraderthe gesture recognition parameters (timeout and threshold), should they be exposed via GeisSubscription or GeisGestureClass?21:13
cndbregma ^^?21:14
cnddandrader, found the bug in the GestureEngine21:15
* dandrader listens21:15
cndso in EndDrag(), we check if the drag gesture id is valid21:17
cndhowever, it merely checks if the id is non-zero21:17
cndthe first gesture has an id of 0, so this is clearly wrong21:17
cndwe don't really need to check _drag_id21:19
cndchecking _drag_window is enough21:19
dandraderits "empty" value should be -1 instead of 021:19
cnddandrader, even then that isn't quite right21:20
cnda gesture id is an unsigned value, and -1 is valid, IIRC21:20
dandrader?21:20
cndwell, -1 means 0xffffffff21:21
cndso it would be valid, after a really long time21:22
dandrader_drag_id in an int21:22
dandraders/in/is21:22
dandraderalthough it should probably be an unsigned int, to match the geis definition. in which case -1 wouldn't be possible21:23
cndthen it's wrong21:23
cndyeah21:23
cndso there's no "invalid" gesture id21:23
cndbut that's ok :)21:24
cndI have a patch!21:24
dandradergood21:24
cnddandrader, http://paste.ubuntu.com/925516/21:24
cnd_drag_window is maintained properly throughout the code21:25
cndso checking it alone is good enough21:25
cnddandrader, now for the bad news21:25
cndyour changes don't seem to have affected my ability to interact with objects even though some touches are outside their bounds21:26
cndI'll see if I can figure it out21:26
dandradercnd, but the corresponding unit test is passing! :)21:27
cndheh21:27
cnddandrader, so the device is NULL21:28
dandraderah... that's it21:28
cndand thus it falls over to going the indirect device route21:28
dandraderyes21:28
dandraderso geisv1 is not providing device info?21:29
cndor the unity code isn't handling things right21:29
cndin FindCompWindow, the frame->deviceid seems wrong21:30
cndit's 0xe310, a rather high value for an incremented value, IIRC21:30
cndit is getting the value from geis21:32
cndoh, it is likely right21:37
cndit's the lower 16 bits of the UFDevice value, which is a pointer21:37
cndso the devices array in the gesture engine is empty21:40
dandradercnd, geisv1 is not calling any of the callbacks provided via geis_input_funcs()21:40
cndok21:41
dandraders/geis_input_funcs/geis_input_devices21:41
cndbregma, geis bug!21:41
dandrader:)21:41
* cnd builds a debug version of geis21:44
cndit looks like devices that existed at start up are not handled21:53
cndwhen I add my magic trackpad, the callbacks work21:57
bregmathat's odd21:59
cndbregma, when I try geistest it doesn't print out all the connected devices like it used to21:59
cndI made sure to use -w <window id>21:59
cndhowever, it always errors out with error in geis_init...22:00
cndI guess that's the real bug with geistest22:00
bregmahmm, I wonder what could possibly have changed22:00
bregmaI will have to look at it later tonight, then22:02
bregmagotta run, back later....22:03
cnddandrader, do you have a good idea on how to test the DragEnd() fix?22:04
cndso we can propose it22:05
dandradercnd, of course22:05
dandradercnd, test/test-gesture-engine has mocks for Compiz stuff22:06
cndok22:06
cndI'm so glad that bug was a simple issue in compiz22:07
dandraderhopefully just a matter of doing count++ for each pushGrab call received and count-- for each removeGrab received and then checking if count ==0 in the end22:07
cndI was shouting expletives at my computer22:07
cndI'm very tired of the mess that is pointer emulation for touchscreens22:08
cnddandrader, so I should add a grab counter in CompScreenMock?22:11
dandradercnd, I don't see why not22:12
cndok22:12
cndI'm trying to figure out how all this works :)22:13
cnddandrader, does this look right? http://paste.ubuntu.com/925597/22:13
dandradermaybe you would want to do the grab/remove counting per GrabHandle22:16
cndhmm22:16
dandraderhaving a hash that maps a GrabHandle to its grab/remove count22:17
dandraderIn my tests I couldn't reproduce the missing removeGrab. I wonder if using a touchscreen instead of a trackpad makes any different.22:20
cnddandrader, there's only a list of grabs22:21
cndit's not per grab handle22:21
cndso a grab count should be correct22:21
dandradereven better22:21
cnddandrader, check if your gesture id for your drag is 0?22:21
cndthat's the only way to trigger the bug22:21
dandraderah, right. that's a tough one. the very first drag I do gets id 1 (probably the touch gesture got the id 0)22:27
dandraderbut well, I'm done for the day22:27

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!