diff --git a/docs/changes.txt b/docs/changes.txt
index 1bc9abedb6..989f20c826 100644
--- a/docs/changes.txt
+++ b/docs/changes.txt
@@ -500,6 +500,8 @@ All (GUI):
- wxRTC: added wxRICHTEXT_HANDLER_USE_CSS flag for HTML handler to use CSS
where possible.
- wxRTC: corrected centring and right-justification spacing.
+- wxRTC: fixed style selection reset after editing a style.
+- wxRTC: can now edit line spacing in .1 increments from 1 to 2.
- Added wxBORDER_THEME to XRC.
- wxGraphicsContext is now enabled by default if supported by the platform.
- Fix building with using system libpng 1.4 (Volker Grabsch).
diff --git a/include/wx/richtext/richtextindentspage.h b/include/wx/richtext/richtextindentspage.h
index ad6ae91029..d70b0a7cac 100644
--- a/include/wx/richtext/richtextindentspage.h
+++ b/include/wx/richtext/richtextindentspage.h
@@ -34,7 +34,7 @@ class wxRichTextCtrl;
////@begin control identifiers
#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_STYLE wxRESIZE_BORDER|wxTAB_TRAVERSAL
-#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_TITLE wxT("")
+#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_TITLE wxEmptyString
#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_IDNAME ID_RICHTEXTINDENTSSPACINGPAGE
#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_SIZE wxSize(400, 300)
#define SYMBOL_WXRICHTEXTINDENTSSPACINGPAGE_POSITION wxDefaultPosition
diff --git a/src/richtext/richtextdialogs.pjd b/src/richtext/richtextdialogs.pjd
index cad54964f5..35faf900d6 100644
--- a/src/richtext/richtextdialogs.pjd
+++ b/src/richtext/richtextdialogs.pjd
@@ -2234,14 +2234,6 @@
"wbBoxSizerProxy"
"Vertical"
""
- "Centre"
- "Centre"
- 0
- 5
- 1
- 1
- 1
- 1
0
0
0
@@ -4523,7 +4515,7 @@
""
""
"m_spacingLine"
- "Single|1.5|2"
+ "Single|1.1|1.2|1.3|1.4|1.5|1.6|1.7|1.8|1.9|2"
"Single"
"The line spacing."
""
@@ -7831,6 +7823,14 @@
"wbBoxSizerProxy"
"Vertical"
""
+ "Centre"
+ "Centre"
+ 0
+ 5
+ 1
+ 1
+ 1
+ 1
0
0
0
diff --git a/src/richtext/richtextindentspage.cpp b/src/richtext/richtextindentspage.cpp
index b993ce2cef..0d0eea7d8e 100644
--- a/src/richtext/richtextindentspage.cpp
+++ b/src/richtext/richtextindentspage.cpp
@@ -208,7 +208,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxBoxSizer* itemBoxSizer24 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer22->Add(itemBoxSizer24, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
- m_indentLeft = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
+ m_indentLeft = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeft->SetHelpText(_("The left indent."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_indentLeft->SetToolTip(_("The left indent."));
@@ -220,7 +220,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxBoxSizer* itemBoxSizer27 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer22->Add(itemBoxSizer27, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
- m_indentLeftFirst = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
+ m_indentLeftFirst = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_LEFT_FIRST, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentLeftFirst->SetHelpText(_("The first line indent."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_indentLeftFirst->SetToolTip(_("The first line indent."));
@@ -232,7 +232,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxBoxSizer* itemBoxSizer30 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer22->Add(itemBoxSizer30, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
- m_indentRight = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
+ m_indentRight = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_INDENT_RIGHT, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_indentRight->SetHelpText(_("The right indent."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_indentRight->SetToolTip(_("The right indent."));
@@ -287,7 +287,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxBoxSizer* itemBoxSizer43 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer41->Add(itemBoxSizer43, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
- m_spacingBefore = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
+ m_spacingBefore = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_BEFORE, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
m_spacingBefore->SetHelpText(_("The spacing before the paragraph."));
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_spacingBefore->SetToolTip(_("The spacing before the paragraph."));
@@ -299,7 +299,7 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxBoxSizer* itemBoxSizer46 = new wxBoxSizer(wxHORIZONTAL);
itemFlexGridSizer41->Add(itemBoxSizer46, 1, wxGROW|wxALIGN_CENTER_VERTICAL, 5);
- m_spacingAfter = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER, wxT(""), wxDefaultPosition, wxSize(50, -1), 0 );
+ m_spacingAfter = new wxTextCtrl( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_AFTER, wxEmptyString, wxDefaultPosition, wxSize(50, -1), 0 );
if (wxRichTextIndentsSpacingPage::ShowToolTips())
m_spacingAfter->SetToolTip(_("The spacing after the paragraph."));
itemBoxSizer46->Add(m_spacingAfter, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
@@ -312,7 +312,15 @@ void wxRichTextIndentsSpacingPage::CreateControls()
wxArrayString m_spacingLineStrings;
m_spacingLineStrings.Add(_("Single"));
+ m_spacingLineStrings.Add(_("1.1"));
+ m_spacingLineStrings.Add(_("1.2"));
+ m_spacingLineStrings.Add(_("1.3"));
+ m_spacingLineStrings.Add(_("1.4"));
m_spacingLineStrings.Add(_("1.5"));
+ m_spacingLineStrings.Add(_("1.6"));
+ m_spacingLineStrings.Add(_("1.7"));
+ m_spacingLineStrings.Add(_("1.8"));
+ m_spacingLineStrings.Add(_("1.9"));
m_spacingLineStrings.Add(_("2"));
m_spacingLine = new wxComboBox( itemPanel1, ID_RICHTEXTINDENTSSPACINGPAGE_SPACING_LINE, _("Single"), wxDefaultPosition, wxSize(90, -1), m_spacingLineStrings, wxCB_READONLY );
m_spacingLine->SetStringSelection(_("Single"));
@@ -437,12 +445,8 @@ bool wxRichTextIndentsSpacingPage::TransferDataFromWindow()
int spacingIndex = m_spacingLine->GetSelection();
int lineSpacing = 0;
- if (spacingIndex == 0)
- lineSpacing = 10;
- else if (spacingIndex == 1)
- lineSpacing = 15;
- else if (spacingIndex == 2)
- lineSpacing = 20;
+ if (spacingIndex != -1)
+ lineSpacing = 10 + spacingIndex;
if (lineSpacing == 0)
attr->SetFlags(attr->GetFlags() & (~wxTEXT_ATTR_LINE_SPACING));
@@ -526,12 +530,8 @@ bool wxRichTextIndentsSpacingPage::TransferDataToWindow()
int index = 0;
int lineSpacing = attr->GetLineSpacing();
- if (lineSpacing == 10)
- index = 0;
- else if (lineSpacing == 15)
- index = 1;
- else if (lineSpacing == 20)
- index = 2;
+ if (lineSpacing >= 10 && lineSpacing <= 20)
+ index = lineSpacing - 10;
else
index = -1;
diff --git a/src/richtext/richtextstyles.cpp b/src/richtext/richtextstyles.cpp
index 731634e492..00b24a319a 100644
--- a/src/richtext/richtextstyles.cpp
+++ b/src/richtext/richtextstyles.cpp
@@ -520,6 +520,8 @@ void wxRichTextStyleListBox::UpdateStyles()
{
if (GetStyleSheet())
{
+ int oldSel = GetSelection();
+
SetSelection(wxNOT_FOUND);
m_styleNames.Clear();
@@ -546,9 +548,15 @@ void wxRichTextStyleListBox::UpdateStyles()
Refresh();
- if (GetItemCount() > 0)
+ int newSel = -1;
+ if (oldSel >= 0 && oldSel < (int) GetItemCount())
+ newSel = oldSel;
+ else if (GetItemCount() > 0)
+ newSel = 0;
+
+ if (newSel >= 0)
{
- SetSelection(0);
+ SetSelection(newSel);
SendSelectedEvent();
}
}
@@ -940,6 +948,7 @@ void wxRichTextStyleListCtrl::OnChooseType(wxCommandEvent& event)
return;
wxRichTextStyleListBox::wxRichTextStyleType styleType = StyleIndexToType(event.GetSelection());
+ m_styleListBox->SetSelection(-1);
m_styleListBox->SetStyleType(styleType);
}
}