[Libreoffice] fixing fdo#41264: no check marks in Line Spacing and ALignment popup menu

Ivan Timofeev timofeev.i.s at gmail.com
Mon Dec 12 11:54:16 PST 2011


Hi all,

the bug: https://bugs.freedesktop.org/show_bug.cgi?id=41264

briefly: in the context menus (except the toolbar's ones) icons are not 
shown for radio menu items and for checked menu items.

Rainer assigned it to me, so... :)

looking at the drawing code (vcl/source/window/menu.cxx):

	// Image:
	if ( !bLayout && !bIsMenuBar && ( ( pData->eType == MENUITEM_IMAGE ) || 
( pData->eType == MENUITEM_STRINGIMAGE ) ) )
	{
	    // Don't render an image for a check thing
	    if ((nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) || !pData->HasCheck() )
	    {
	        [image drawing]
	    }
	}

If an item "HasCheck()" then it _must_ have the 
MENU_FLAG_SHOWCHECKIMAGES bit enabled in nMenuFlags, otherwise icon will 
not be drawn. But nMenuFlags is 0 initially and according to opengrok...

	http://opengrok.libreoffice.org/search?q=MENU_FLAG_SHOWCHECKIMAGES&project=core&defs=!MENU_FLAG_SHOWCHECKIMAGES&refs=&path=&hist=

... MENU_FLAG_SHOWCHECKIMAGES is only set for menubar and toolbar.

[ By the way, what is svtools/source/control/toolbarmenu.cxx ? (the 
drawing code is like in the vcl's menu.cxx ?) ]

so, summing up :) I would like to remove the
	if ((nMenuFlags & MENU_FLAG_SHOWCHECKIMAGES) || !pData->HasCheck() )
line and in general the MENU_FLAG_SHOWCHECKIMAGES flag, as I can't ever 
understand why it has been introduced. Any counterarguments?

Best Regards,
Ivan


More information about the LibreOffice mailing list