On Wed, Jan 5, 2011 at 12:22 PM, Josh Headapohl <joshh...@gmail.com> wrote: > Yes! I needed to Ungrab the pointer. I get prelighting on the menu items > now, without releasing the mouse button, but I still can't make selections. > I think this is due partly to some code in QuickListView that checks whether > mouse presses are inside the quick list area. > How would I debug the Unity plugin? I found the following post (by you ;) ) > which says how to start Compiz with gdb, but it looks like I'm restricted to > compiz core. > http://forum.compiz.org/viewtopic.php?t=11246 > It might be that I just don't know how to use gdb very well! I've never used > it with a project this complex before.
You should just be able to compile the unity plugin with debugging symbols and then do breakpoints wherever (eg break unityshell.cpp:linenumber or Launcher.cpp:linenumber) or on particular functions. gdb will complain about how symbols aren't loaded yet, just ignore this, it will auto-resolve them once they are dlopened. > Thanks, > Josh > > > On Tue, Jan 4, 2011 at 10:21 PM, Sam Spilsbury <smspil...@gmail.com> wrote: >> >> On Wed, Jan 5, 2011 at 11:05 AM, Josh Headapohl <joshh...@gmail.com> >> wrote: >> > Thanks Sam, for replying to my question and for pointing me in the right >> > direction. >> > I didn't see the inheritance structure before and everything makes a >> > little >> > more sense now. >> > You are correct that the code that handles drag events does not look at >> > which button is pressed. The LauncherIcon class does handle clicks and >> > quicklist creation, while drag events are handled by the Launcher class. >> > If >> > I add a check in the Launcher class to consider which button is pressed, >> > I >> > can prevent the right mouse button from initiating drags. >> >> Cool, that's part one at least >> >> > Unfortunately, whether or not the launcher icon is dragged, if the mouse >> > is >> > initially depressed over a launcher icon, the quicklist ignores or >> > doesn't >> > receive events until the mouse is released. >> >> Yes, this is a bit of an annoying shortcoming (there is no way to >> transfer the grab to another widget in nux). I think the way you will >> need to do it is to XUngrabPointer (grep other bits of the code on how >> to do this - I think the menus do it) and then then open the menu and >> make sure it is "grabbed" currently. >> >> >> Cheers, >> >> Sam >> >> > I guess that I am halfway to a functioning solution: The right mouse >> > doesn't >> > initiate launcher or icon drags, but I can't yet open the quicklist and >> > make >> > a selection in one click. >> > Josh >> > >> > >> > On Sun, Jan 2, 2011 at 8:12 PM, Sam Spilsbury <smspil...@gmail.com> >> > wrote: >> >> >> >> On Wed, Dec 29, 2010 at 12:27 PM, Josh Headapohl <joshh...@gmail.com> >> >> wrote: >> >> > Hello, I'm working on bug 688830 in Unity, which is about letting the >> >> > user >> >> > select a quicklist item with just one right click. Currently, you >> >> > have >> >> > to >> >> > let go of the mouse button first or you will just start dragging the >> >> > launcher icon. This behavior is annoying and the bug is tagged as >> >> > bite-size >> >> > so I decided to try to help fix it. >> >> > Dieder Roche commented it could be "bitesize with good mentorship," >> >> > so I >> >> > hope I can get a little assistance here in figuring out Unity's >> >> > technical >> >> > design. Okay, maybe more than the design. :) There's a lot to take >> >> > in. >> >> > I see that when there is an OnMouseDown signal emitted, a Launcher >> >> > instance >> >> > will handle it, and I can see where later in the chain of method >> >> > calls, >> >> > the >> >> > quicklist menu item is created and shown in >> >> > LauncherIcon::RecvMouseDown. >> >> > What I haven't found yet is what sends the OnMouseDown signal in the >> >> > first >> >> > place. >> >> > For example, in Launcher.cpp line 186, >> >> > OnMouseDown.connect (sigc::mem_fun (this, >> >> > &Launcher::RecvMouseDown)); >> >> > What is OnMouseDown and where is it instantiated? Does it happen >> >> > outside >> >> > of >> >> > Unity or am I just overlooking the place where it is created? >> >> > I think if I could see a higher level source of input events (or do I >> >> > mean >> >> > lower?) , if would be easier to see what to do with them further down >> >> > the >> >> > line. >> >> >> >> The launcher class has a fairly long inheritance tree: >> >> >> >> InputArea -> View -> Launcher. >> >> >> >> InputArea is found in nux/Nux/InputArea.h/cpp . It handles raw events >> >> (either from X11 or elsewhere) and makes the OnMouseDown etc signals >> >> actually emit () once appropriate events are recieved. >> >> >> >> I have not looked at this particular code in detail, but I would >> >> assume that whatever LauncherIcon::OnMouseDown is connected to >> >> handles the quicklist creation, button clicks and dragging - although >> >> the code that does the dragging isn't checking which button is >> >> actually pressed. >> >> >> >> Regards, >> >> >> >> Sam >> >> >> >> > Also, if it sounds like I'm approaching the whole problem the wrong >> >> > way, >> >> > feel free to point me in a new direction. >> >> > Thanks, >> >> > Josh >> >> > https://bugs.launchpad.net/unity/+bug/688830 >> >> > _______________________________________________ >> >> > Mailing list: https://launchpad.net/~ayatana-dev >> >> > Post to : ayatana-dev@lists.launchpad.net >> >> > Unsubscribe : https://launchpad.net/~ayatana-dev >> >> > More help : https://help.launchpad.net/ListHelp >> >> > >> >> > >> >> >> >> >> >> >> >> -- >> >> Sam Spilsbury >> > >> > >> >> >> >> -- >> Sam Spilsbury > > -- Sam Spilsbury _______________________________________________ Mailing list: https://launchpad.net/~ayatana-dev Post to : ayatana-dev@lists.launchpad.net Unsubscribe : https://launchpad.net/~ayatana-dev More help : https://help.launchpad.net/ListHelp