/srv/irclogs.ubuntu.com/2015/03/25/#ubuntu-mir.txt

=== tmpRAOF is now known as RAOF
=== ara is now known as Guest58945
=== chihchun_afk is now known as chihchun
alan_ganpok: duflu_ any last reviews? https://code.launchpad.net/~alan-griffiths/mir/make-window-management-configurable/+merge/25372509:45
=== duflu_ is now known as duflu
duflualan_g: Adding a comment, but not blocking09:47
=== marcusto_ is now known as marcustomlinson
anpokalan_g: interesting side note on clang compilation error, gcc only allows it when the constructor is a constructor template10:12
alan_gWeird. I'd be very surprised if a using directive for the constructor doesn't determine the access. Almost worth posting a test case to the standards reflector.10:15
alan_gI'd have to look at the wording, but I naively(?) expect it to work the same as with member functions.10:17
anpokfiled a bug report at llvm10:18
anpokhttps://llvm.org/bugs/show_bug.cgi?id=2301810:23
ubot5llvm.org bug 23018 in C++ "clang claims an inherited constructor protected when declared public with using" [Normal,New]10:23
anpokoh what a curious bot10:23
anpokalan_g: do you prefer 2014-2015 or 2015 for new files (I (inconsistently) used the former for files that I already proposed in december)10:26
alan_gI think it is all silly. But it should reflect the date the intellectual property was created.10:27
alan_g"silly" is these comments, not IP rights.10:27
anpok:)10:31
alan_g/rant=on The only reason I know of for such comments is that in the USA before 1966(ish) one had to assert the rights to be able to enforce them. And even in those days, in that jurisdiction you could put them at the bottom of the file where they are not in the way.10:33
tsdgeosguys11:10
tsdgeosi'm having issues with an autopilot injected keypress not being detected by the event dispatcher11:11
tsdgeosany iea what may be wrong?11:11
tsdgeosit's the first one11:11
tsdgeosi..e it injects p a s s w o r d11:11
tsdgeosand sometimes p is lost11:11
anpoksurface is not yet focused?11:11
tsdgeosit should11:11
anpokor where do you track the loss of the p?11:12
tsdgeosat least the qml side says it is11:12
tsdgeosat the mir level11:12
tsdgeoswell qtmir11:12
tsdgeosi.e. on a dispatch() implementation11:12
anpokhm11:12
tsdgeosfunny thing11:12
tsdgeosis that if i add a wait in the test11:12
tsdgeosthen it seems to not fail11:12
anpokwhere does that injection happen? at usc?11:12
tsdgeosbut i can't find what isn't yet settled11:13
tsdgeossince it all seems to have been created ages ago11:13
tsdgeosthe surface, the event feeder, etc11:13
tsdgeosanpok: it's written to uiput device11:13
anpokevdev emulation?11:13
tsdgeosi guess my next step would be adding some debug somewhere in mir11:13
tsdgeosbut recompiling mir not cool :D11:14
anpokhm then you could enable input reports at usc/u811:14
tsdgeoshow do i do that?11:14
anpokhttp://unity.ubuntu.com/mir/component_reports.html11:14
anpokbrb11:14
tsdgeosi have a feeling of having asked that question before11:15
anpok:)11:15
tsdgeosand having got that url and could get it to work :D11:15
anpoknote that u8 is both server and client11:15
tsdgeosbut let me see if i'm better now11:15
alan_gtsdgeos: you're going through USC + U8 + app? Note that USC waits for the second posted frame before granting focus to u8 (which IIUC) waits for the first frame before giving focus to the app - that can add up to a delay.11:19
tsdgeosalan_g: the app and surface have been on screw "for ages"11:20
tsdgeosthat's what's puzzling me11:20
tsdgeosi wonder if it's even the evdev device eating the write() to it11:20
alan_gWeird.11:22
tsdgeosi'm using those env vars11:26
tsdgeosand see nothing11:26
tsdgeoswhere should MIR_SERVER_INPUT_REPORT=log11:26
tsdgeoswrite that log?11:26
tsdgeosstdoutput?11:26
alan_gtsdgeos: yes, but I think that's redirected to a log file somewhere11:29
tsdgeosyou mean ~/.cache/upstart/unity8.log ?11:29
tsdgeosi can't see it in there11:29
alan_ggreyback: you know where the logs go? ^^11:30
greybackunity8's logs? yeah, tsdgeos has it11:31
tsdgeosand it should end up in there if started with MIR_SERVER_INPUT_REPORT=log ?11:33
tsdgeosis there anything else i need to enable?11:33
greybacknot that I'm aware of. But by your tone, I'm guessing it's not working ;)11:33
greybackalan_g: that does work for a nested server too?11:34
alan_git always has. I can double check...11:35
tsdgeosMIR_SERVER_NAME=session-0 MIR_SOCKET=/run/mir_socket QT_QPA_PLATFORM=mirserver MIR_SERVER_INPUT_REPORT=log  /usr/bin/unity811:38
tsdgeosdoesn't seem to give me much11:38
anpokand MIR_CLIENT_INPUT_REPORT=log11:39
tsdgeoswent with11:39
tsdgeosMIR_SERVER_NAME=session-0 MIR_SOCKET=/run/mir_socket QT_QPA_PLATFORM=mirserver MIR_SERVER_INPUT_REPORT=log MIR_CLIENT_INPUT_REPORT=log MIR_CLIENT_INPUT_RECEIVER=log  /usr/bin/unity811:39
anpokmaybe that log file is just a reopened std out? then maybe also redirect std out..11:39
tsdgeosnothing either11:39
anpokoops11:39
anpokyes input receiver ..11:39
tsdgeosthat should give me touch events too, right=11:39
alan_gtsdgeos: greyback - yes, reports are working from a nested server11:44
tsdgeosthey don't from unity8 :/11:47
greybackMIR_CLIENT_INPUT_RECEIVER_REPORT is in the mir sources11:47
tsdgeosok11:48
tsdgeosthat gave me stuff11:48
tsdgeosso yeah11:50
tsdgeosaccording to that11:50
tsdgeosdoesn't get whatever prints11:50
tsdgeos[1427284176.481447] <DEBUG> input-receiver: Received event:11:50
tsdgeosonly get the a there11:50
anpoktsdgeos: so u8s surface is not yet focused/hasnt submitted buffers/been created yet...?12:06
tsdgeosanpok: don't think so12:06
tsdgeosusc is not getting the key event either12:07
anpokoh12:07
anpokbut there is no client report in usc12:07
tsdgeoswell there is the server one12:07
tsdgeoshttp://paste.ubuntu.com/10677149/12:08
tsdgeos14 events12:08
tsdgeoswhich should be 1612:08
anpokyeah but thats the sending part12:08
anpokso there is still a lot that can go wrong (or right) within usc before this report is generated12:09
anpokif you enable the MIR_SERVER_LEGACY_INPUT_REPORT=log on usc you see the part that reads the event from the evdev devices12:10
tsdgeosoki12:12
* tsdgeos does12:12
tsdgeos[1427285878.408333] android-input: [InputReader]Dropping key up from device py-evdev-uinput because the key was not down.  keyCode=44, scanCode=2512:18
tsdgeosthat's good12:18
tsdgeosso it seems that autopilot creates device /dev/input/event812:18
tsdgeosthen mir says12:18
tsdgeos[1427285878.342107] android-input: [EventHub]New device: id=18, fd=66, path='/dev/input/event8', name='py-evdev-uinput', classes=0x80000063, configuration='', keyLayout='Generic.kl', keyCharacterMap='Generic.kcm', builtinKeyboard=false, usingSuspendBlockIoctl=true, usingClockIoctl=true12:18
tsdgeos[1427285878.342351] android-input: [InputReader]Device added: id=18, name='py-evdev-uinput', sources=0x0000070112:18
tsdgeosand i guess sometimes something goes too slow12:19
tsdgeosand the first key down fails?12:19
tsdgeosright12:20
tsdgeosso that's what happens12:20
tsdgeosmir is not seeing the new device until12:21
tsdgeos[1427285878.34210712:21
tsdgeosbut the keypress is on12:21
tsdgeos12:17:58.305 DEBUG _uinput:60 - Pressing p (25).12:21
tsdgeosthat is 1427285878.30512:21
tsdgeosi.e. 40 msec before12:21
tsdgeosok i kind of know what's wrong now12:22
tsdgeosno idea how to fix it though :D12:22
tsdgeosother than blindly adding a sleep12:22
greybacktsdgeos: log a mir bug anyway12:41
greybacktho it's probably a race that's hard to fix12:42
=== dandrader is now known as dandrader|afk
kdubgreyback, seems like with qt 5.5, you can split the qtgui and the renderloop thread12:47
greybackkdub: yeah12:48
greybackthere was work to enable threaded rendering with a custom qquickrendercontrol for qt5.512:48
kdubyay, neat12:48
greybacksadly that's not in 5.412:48
greybackwhich I expect will slow down your work a bit?12:49
kdubit might, i'm having a hard time convincing the qtgui thread not to try to run12:49
greyback:) the "Gui" thread does lots of other stuff too, from processing input events and managing the qml scene12:50
kdubyeah, its good that it can be split in qt 5.5, although its still disconcerting how the threading works so rigidly (imo)12:51
greybackkdub: "rigidly" is an interesting term, what do you mean?12:53
greybacklike 1 thread per qquickwindow, or 1 thread for all windows, and nothing else?12:54
kdubyeah, its just strange that i have to set affinity of objects with certain threads, and mind which thread calls certain functions (just an empty complaint, really :) )12:56
=== chihchun is now known as chihchun_afk
kdubgreyback, the problem i'm running into now (with 5.4) is that the QQuickRenderControl seems to need a QQuickWindow with a fb target (QOffscreenSurface) associated with it... and trying to QQuickWindow::create() the window associated with the QQuickRenderControl seems to start the QtGui thread12:59
=== marcusto_ is now known as marcustomlinson_
=== dandrader|afk is now known as dandrader
mptThe menu bar doesn’t cast a shadow on a window touching it, therefore the window is not lower than the menu bar.15:03
mptA window can slide underneath the Launcher, therefore a window is lower than the Launcher.15:03
mptA window is lower than the Launcher, but not lower than the menu bar, therefore the Launcher is higher than the menu bar.15:05
mptTherefore shell components are on multiple layers.15:06
mptWhich is … inconvenient.15:08
greybackmpt: you're testing unity8 desktop mode I'm assuming? Yes we've plenty of work to do there yet. We've inherited those layers from the phone/tablet15:32
mptgreyback, no, I was talking about shells in general. What I said was true for Unity 7 and for OS X, and probably (though I haven’t tried) for Gnome Shell as well.15:33
greybackmpt: ah I see, apologies15:34
greybackmpt: mind if I ask what you find inconvenient about shell components on layers though? You could consider each window as being in it's own layer (except for our desired case of windows being snapped together, so in same layer)15:35
mptgreyback, it’s inconvenient for defining exactly what order surfaces are in, layer-wise15:36
mptAt the moment I think the answer is “the topmost dialog/freestyle/regular/floating regular window, in the topmost window tree, should be level with the bottommost shell surface”15:41
mptbut that seems like a bit of a hack15:41
mptA much simpler version of the problem is: When the frontmost regular window has a dialog, and the title bars of both are flush with the bottom of the menu bar, what is the layering of the menu bar? Is it (a) above both, (b) level with the dialog, (c) level with the parent, like it would be if it didn’t have a dialog, or (d) below them both?15:43
mptIn Unity 7, the answer is (b)15:44
mpt(i.e. as soon as the dialog opens, its parent sinks down below the menu bar)15:47
mptIn OS X, the answer is (e) magically level with both, even though one is above the other15:47
=== chihchun_afk is now known as chihchun
* alan_g was just thinking about how to better manage the z-order of related surfaces in Mir.15:53
greybackmpt: ok problem is clear, no obvious solution strikes me however16:03
greybackthanks for elaborating16:03
greybackonly thing I can suggest is not having menubar part of the stack of window layers, but in a separate layer whose bottom z-order matches the top window's layer z-order16:06
greybackless elegant but gives more power to choose how menubar's shadow falls16:07
=== dandrader is now known as dandrader|afk
mptSeveral subtleties about window position and size depend on knowing what is a “shell surface”16:44
mptFor example, if you have the Dash open, a new window can happily open with its title bar entirely covered by the Dash, but we mustn’t let its title bar be entirely covered by the menu bar or the Launcher16:45
mptThe menu bar and Launcher are “shell surfaces” under this definition, while the Dash is not (and nor are indicator menus, session dialogs, Launcher tooltips, etc)16:46
mptSo, it’s useful for a shell to be able to say “this surface here is of type SHELL_SURFACE” (a.k.a. _NET_WM_WINDOW_TYPE_DOCK) and let Mir handle the subtleties16:49
mptBut, greyback, that doesn’t work if the menu bar is a magical surface that layers differently from the other shell surfaces :-)16:50
greybackmpt: it's not necessarily magical, we're just not confined to the laws of physics here :) It's very possible to have menubar at same z-order as the top-most window in the stack of windows16:59
mptSure, the magical part is the detail where OS X’s menu bar is level with all windows at the same time <http://en.wikipedia.org/wiki/Waterfall_%28M._C._Escher%29>17:07
=== alan_g is now known as alan_g|EOD
=== chihchun is now known as chihchun_afk
racarr*deletes 2000 lines of code from PAPI*22:50
racarrdelicious delicious deletion22:51
racarr3285 lines (+34/-2861) 40 files modified23:22
racarroh yeah23:22

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