On Fri, 2012-07-06 at 08:54 -0700, Joel Madero wrote:
> haha digging a ditch for myself ;) I think I now am following the
> logic of MouseButtonDown but I'm still not seeing where it's being
> called (and where rMEvt) is coming from. Basically where are the pixel
> ranges defined as different actions (open vs. recent documents).

        rMEvt comes from the VCL - it will have the mouse event co-ordinates
correct; you don't want to change that bit :-)

> https://bugs.freedesktop.org/show_bug.cgi?id=47164 

        For me this works fine:

    if ( mnMenuMode & MENUBUTTON_MENUMODE_TIMED )
    {
        // if the separated dropdown symbol is hit,
        // execute the popup immediately
        if( ! ImplGetSymbolRect().IsInside( rMEvt.GetPosPixel() ) )

        And my 'ImplGetSymbolRect()' method seems to return something sensible;
if you grok for 'SetSymbolRect' you can see what sets this.

            long nDistance = (aInRect.GetHeight() > 10) ? 2 : 1;
            DecorationView aDecoView( pDev );
            if( bMenuBtnSep )
            {
                long nX = aInRect.Left() - 2*nDistance;
                Point aStartPt( nX, aInRect.Top()+nDistance );
                Point aEndPt( nX, aInRect.Bottom()-nDistance );
                aDecoView.DrawSeparator( aStartPt, aEndPt );
            }
            aDecoView.DrawSymbol( aInRect, SYMBOL_SPIN_DOWN, aColor, nStyle );
            aInRect.Left() -= 2*nDistance;
            ImplSetSymbolRect( aInRect );

        Which already seems to nudge the left boundary further left so ... and
the way right-to-left works that should work in that mode too.

        So - I don't really follow the bug; we could of course move the
separator further across and make that drop-down area larger with some
tweaks to the logic there, though that needs some UX input I think.

        It seems (oddly, but ~normal for VCL) that most of the menubutton logic
lives in 'button.cxx' itself as special cases ;-) so best to poke there
really.

        HTH !

                Michael.

-- 
michael.me...@suse.com  <><, Pseudo Engineer, itinerant idiot

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to