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. 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 >
_______________________________________________ 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