vcl/inc/svdata.hxx | 1 + vcl/source/window/menu.cxx | 7 +++++-- vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx | 11 ++++++++--- 3 files changed, 14 insertions(+), 5 deletions(-)
New commits: commit 607af001ccdbfe40b089942b879e5ce3980bde49 Author: Simon Long <[email protected]> Date: Wed Jul 8 15:26:15 2015 +0100 tdf#92244 Gaps at end of menu separator lines read from GTK theme. Reviewed-on: https://gerrit.libreoffice.org/16886 Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> (cherry picked from commit f1faa887c0c934484fb32a8ec5fbbc9e89f38037) Change-Id: I3c42d918680ac989c5cd7cd1022e4a6e7b53aa11 Reviewed-on: https://gerrit.libreoffice.org/16930 Tested-by: Jenkins <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> Tested-by: Caolán McNamara <[email protected]> diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx index a54f6cc..e4ad5ad 100644 --- a/vcl/inc/svdata.hxx +++ b/vcl/inc/svdata.hxx @@ -255,6 +255,7 @@ struct ImplSVNWFData int mnStatusBarLowerRightOffset; // amount in pixel to avoid in the lower righthand corner int mnMenuFormatBorderX; // horizontal inner popup menu border int mnMenuFormatBorderY; // vertical inner popup menu border + int mnMenuSeparatorBorderX; // gap at each side of separator ::Color maMenuBarHighlightTextColor; // override higlight text color // in menubar if not transparent bool mbMenuBarDockingAreaCommonBG:1; // e.g. WinXP default theme diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index 4e2345a..afe44c6 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -1896,9 +1896,12 @@ void Menu::ImplPaint(vcl::RenderContext& rRenderContext, nState |= ControlState::ENABLED; if (bHighlighted) nState |= ControlState::SELECTED; + int nSepPad = ImplGetSVData()->maNWFData.mnMenuSeparatorBorderX; + Point aMpos (aPos); + aMpos.X() += nSepPad; Size aSz(pData->aSz); - aSz.Width() = aOutSz.Width() - 2 * nOuterSpaceX; - Rectangle aItemRect(aPos, aSz); + aSz.Width() = aOutSz.Width() - 2*nOuterSpaceX - 2 * nSepPad; + Rectangle aItemRect(aMpos, aSz); MenupopupValue aVal(nTextPos - GUTTERBORDER, aItemRect); bNativeOk = rRenderContext.DrawNativeControl(CTRL_MENU_POPUP, PART_MENU_SEPARATOR, aItemRect, nState, aVal, OUString()); diff --git a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx index 61a471e..802e499 100644 --- a/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx +++ b/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx @@ -527,16 +527,21 @@ void GtkData::initNWF() NWEnsureGTKMenu( SalX11Screen( 0 ) ); gint horizontal_padding = 1; gint vertical_padding = 1; + gint separator_padding = 1; gtk_widget_style_get( gWidgetData[0].gMenuWidget, "horizontal-padding", &horizontal_padding, - (char *)NULL); + nullptr); gtk_widget_style_get( gWidgetData[0].gMenuWidget, "vertical-padding", &vertical_padding, - (char *)NULL); + nullptr); + gtk_widget_style_get( gWidgetData[0].gMenuItemSeparatorMenuWidget, + "horizontal-padding", &separator_padding, + nullptr); gint xthickness = gWidgetData[0].gMenuWidget->style->xthickness; gint ythickness = gWidgetData[0].gMenuWidget->style->ythickness; pSVData->maNWFData.mnMenuFormatBorderX = xthickness + horizontal_padding; pSVData->maNWFData.mnMenuFormatBorderY = ythickness + vertical_padding; + pSVData->maNWFData.mnMenuSeparatorBorderX = separator_padding; pSVData->maNWFData.mbCheckBoxNeedsErase = true; @@ -4559,7 +4564,7 @@ static void NWEnsureGTKMenu( SalX11Screen nScreen ) gWidgetData[nScreen].gMenuItemMenuWidget = gtk_menu_item_new_with_label( "b" ); gWidgetData[nScreen].gMenuItemCheckMenuWidget = gtk_check_menu_item_new_with_label( "b" ); gWidgetData[nScreen].gMenuItemRadioMenuWidget = gtk_radio_menu_item_new_with_label( NULL, "b" ); - gWidgetData[nScreen].gMenuItemSeparatorMenuWidget = gtk_menu_item_new(); + gWidgetData[nScreen].gMenuItemSeparatorMenuWidget = gtk_separator_menu_item_new(); gWidgetData[nScreen].gImageMenuItem = gtk_image_menu_item_new(); g_object_ref_sink (gWidgetData[nScreen].gMenuWidget);
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
