Rework wxMotif font/color inheritance so it works
like in the other ports. Avoid setting foreground/background color for windows and let the toolkit use the natural color. As an intermediate step font is still explicitly set. Handle the cases where m_foregroundColour, m_backgroundColour ir m_font are not initialized. Set default (overridable) X resources to emulate the old look. Unify wxMOTIF_NEW_FONT_HANDLING with wxMOTIF_USE_RENDER_TABLE. Minor unrelated (sizing) fixes to wxCheckListBox, wxStaticText, wxTextCtrl. Tagged with MOTIF_BEFORE_COLOUR_FONT_INHERITANCE before the changes. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45312 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -179,8 +179,16 @@ wxWindowDC::wxWindowDC( wxWindow *window )
|
||||
gcvalues.graphics_exposures = False;
|
||||
gcvalues.subwindow_mode = IncludeInferiors;
|
||||
gcvalues.line_width = 1;
|
||||
#if !wxMOTIF_NEW_FONT_HANDLING
|
||||
WXFontStructPtr pFontStruct = m_font.GetFontStruct(m_userScaleY*m_logicalScaleY, m_display);
|
||||
gcvalues.font = ((XFontStruct*)pFontStruct)->fid;
|
||||
#endif
|
||||
m_gc = (WXGC) XCreateGC (display, RootWindow (display, DefaultScreen (display)),
|
||||
GCForeground | GCBackground | GCGraphicsExposures | GCLineWidth | GCSubwindowMode,
|
||||
GCForeground | GCBackground | GCGraphicsExposures | GCLineWidth | GCSubwindowMode
|
||||
#if !wxMOTIF_NEW_FONT_HANDLING
|
||||
| GCFont
|
||||
#endif
|
||||
,
|
||||
&gcvalues);
|
||||
|
||||
if (m_window->GetBackingPixmap())
|
||||
@@ -1685,7 +1693,7 @@ void wxWindowDC::SetPen( const wxPen &pen )
|
||||
if (m_window && m_window->GetBackingPixmap())
|
||||
XSetStipple ((Display*) m_display,(GC) m_gcBacking, myStipple);
|
||||
}
|
||||
else if (m_currentStipple.Ok()
|
||||
else if (m_currentStyle == wxSTIPPLE && m_currentStipple.Ok()
|
||||
&& ((!m_currentStipple.IsSameAs(oldStipple)) || !GET_OPTIMIZATION))
|
||||
{
|
||||
XSetStipple ((Display*) m_display, (GC) m_gc, (Pixmap) m_currentStipple.GetDrawable());
|
||||
|
||||
Reference in New Issue
Block a user