Kaydet (Commit) f1faa887 authored tarafından spl's avatar spl Kaydeden (comit) Caolán McNamara

Gaps at end of menu separator lines read from GTK theme.

Change-Id: I3c42d918680ac989c5cd7cd1022e4a6e7b53aa11
Reviewed-on: https://gerrit.libreoffice.org/16886Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 969b327c
...@@ -255,6 +255,7 @@ struct ImplSVNWFData ...@@ -255,6 +255,7 @@ struct ImplSVNWFData
int mnStatusBarLowerRightOffset; // amount in pixel to avoid in the lower righthand corner int mnStatusBarLowerRightOffset; // amount in pixel to avoid in the lower righthand corner
int mnMenuFormatBorderX; // horizontal inner popup menu border int mnMenuFormatBorderX; // horizontal inner popup menu border
int mnMenuFormatBorderY; // vertical 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 ::Color maMenuBarHighlightTextColor; // override higlight text color
// in menubar if not transparent // in menubar if not transparent
bool mbMenuBarDockingAreaCommonBG:1; // e.g. WinXP default theme bool mbMenuBarDockingAreaCommonBG:1; // e.g. WinXP default theme
......
...@@ -1896,9 +1896,12 @@ void Menu::ImplPaint(vcl::RenderContext& rRenderContext, ...@@ -1896,9 +1896,12 @@ void Menu::ImplPaint(vcl::RenderContext& rRenderContext,
nState |= ControlState::ENABLED; nState |= ControlState::ENABLED;
if (bHighlighted) if (bHighlighted)
nState |= ControlState::SELECTED; nState |= ControlState::SELECTED;
int nSepPad = ImplGetSVData()->maNWFData.mnMenuSeparatorBorderX;
Point aMpos (aPos);
aMpos.X() += nSepPad;
Size aSz(pData->aSz); Size aSz(pData->aSz);
aSz.Width() = aOutSz.Width() - 2 * nOuterSpaceX; aSz.Width() = aOutSz.Width() - 2*nOuterSpaceX - 2 * nSepPad;
Rectangle aItemRect(aPos, aSz); Rectangle aItemRect(aMpos, aSz);
MenupopupValue aVal(nTextPos - GUTTERBORDER, aItemRect); MenupopupValue aVal(nTextPos - GUTTERBORDER, aItemRect);
bNativeOk = rRenderContext.DrawNativeControl(CTRL_MENU_POPUP, PART_MENU_SEPARATOR, bNativeOk = rRenderContext.DrawNativeControl(CTRL_MENU_POPUP, PART_MENU_SEPARATOR,
aItemRect, nState, aVal, OUString()); aItemRect, nState, aVal, OUString());
......
...@@ -525,16 +525,21 @@ void GtkData::initNWF() ...@@ -525,16 +525,21 @@ void GtkData::initNWF()
NWEnsureGTKMenu( SalX11Screen( 0 ) ); NWEnsureGTKMenu( SalX11Screen( 0 ) );
gint horizontal_padding = 1; gint horizontal_padding = 1;
gint vertical_padding = 1; gint vertical_padding = 1;
gint separator_padding = 1;
gtk_widget_style_get( gWidgetData[0].gMenuWidget, gtk_widget_style_get( gWidgetData[0].gMenuWidget,
"horizontal-padding", &horizontal_padding, "horizontal-padding", &horizontal_padding,
nullptr); nullptr);
gtk_widget_style_get( gWidgetData[0].gMenuWidget, gtk_widget_style_get( gWidgetData[0].gMenuWidget,
"vertical-padding", &vertical_padding, "vertical-padding", &vertical_padding,
nullptr); nullptr);
gtk_widget_style_get( gWidgetData[0].gMenuItemSeparatorMenuWidget,
"horizontal-padding", &separator_padding,
nullptr);
gint xthickness = gWidgetData[0].gMenuWidget->style->xthickness; gint xthickness = gWidgetData[0].gMenuWidget->style->xthickness;
gint ythickness = gWidgetData[0].gMenuWidget->style->ythickness; gint ythickness = gWidgetData[0].gMenuWidget->style->ythickness;
pSVData->maNWFData.mnMenuFormatBorderX = xthickness + horizontal_padding; pSVData->maNWFData.mnMenuFormatBorderX = xthickness + horizontal_padding;
pSVData->maNWFData.mnMenuFormatBorderY = ythickness + vertical_padding; pSVData->maNWFData.mnMenuFormatBorderY = ythickness + vertical_padding;
pSVData->maNWFData.mnMenuSeparatorBorderX = separator_padding;
pSVData->maNWFData.mbCheckBoxNeedsErase = true; pSVData->maNWFData.mbCheckBoxNeedsErase = true;
...@@ -4527,7 +4532,7 @@ static void NWEnsureGTKMenu( SalX11Screen nScreen ) ...@@ -4527,7 +4532,7 @@ static void NWEnsureGTKMenu( SalX11Screen nScreen )
gWidgetData[nScreen].gMenuItemMenuWidget = gtk_menu_item_new_with_label( "b" ); gWidgetData[nScreen].gMenuItemMenuWidget = gtk_menu_item_new_with_label( "b" );
gWidgetData[nScreen].gMenuItemCheckMenuWidget = gtk_check_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].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(); gWidgetData[nScreen].gImageMenuItem = gtk_image_menu_item_new();
g_object_ref_sink (gWidgetData[nScreen].gMenuWidget); g_object_ref_sink (gWidgetData[nScreen].gMenuWidget);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment