Caret or Grid Cursor disappears when interacting with Ribbon Page
I have one main frame derived from wxMDIParentFrame
and corresponding child frames derived from wxMDIChildFrame.
The main frame has ribbon Bar which is included as follows:
auto clientWindow = GetClientWindow();
bSizer1->Add(m_ribbonBar, 0, wxEXPAND);
bSizer1->Add(clientWindow, 1, wxEXPAND);
The child frames contain controls, such as one has wxRichTextCtrl
and another has wxGrid
.
For example the Rich Text Control is added to the child frame as follows:
m_OutputWindow = new wxRichTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize,
wxTE_AUTO_URL|wxTE_PROCESS_ENTER|wxTE_PROCESS_TAB|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS );
auto bSizer1 = new wxBoxSizer(wxHORIZONTAL);
bSizer1->Add( m_OutputWindow, 7, wxEXPAND | wxALL, 5 );
SetSizer( bSizer1 );
Layout();
As shown in the image (for the rich text ctrl), the problem I am having is the caret at the wxRichTextCtrl or the grid cursor on wxGrid dissapears.
This happens when:
1) The user changes ribbon pages,
2) The user clicks on a control (such as wxButton or wxComboBox) that is on a ribbon panel. The problem does not happen with controls "native" to the RibbonBar,
3) The user clicks on an empty area (no controls at all) on the RibbonBar.
The downside is when this happens the user loses whereabouts of the caret's or the grid cursor's location.
When either of the 3 cases happens, the child frame is still active and my assumption is that the controls ( i.e. wxRichTextCtrl or wxGrid) on the child frame become inactive. Even if the user clicks on the child frame again (not directly on the control) the caret or the grid cursor is not shown. The user has to click on another child frame and then to the target frame to be
able to show the caret or grid cursor again.
How can I keep the caret or grid cursor visible when above-mentioned cases happen?
I am using wxWidgets 3.1.0 on Windows 10. Compiler is VS 2015.
c++ wxwidgets
add a comment |
I have one main frame derived from wxMDIParentFrame
and corresponding child frames derived from wxMDIChildFrame.
The main frame has ribbon Bar which is included as follows:
auto clientWindow = GetClientWindow();
bSizer1->Add(m_ribbonBar, 0, wxEXPAND);
bSizer1->Add(clientWindow, 1, wxEXPAND);
The child frames contain controls, such as one has wxRichTextCtrl
and another has wxGrid
.
For example the Rich Text Control is added to the child frame as follows:
m_OutputWindow = new wxRichTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize,
wxTE_AUTO_URL|wxTE_PROCESS_ENTER|wxTE_PROCESS_TAB|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS );
auto bSizer1 = new wxBoxSizer(wxHORIZONTAL);
bSizer1->Add( m_OutputWindow, 7, wxEXPAND | wxALL, 5 );
SetSizer( bSizer1 );
Layout();
As shown in the image (for the rich text ctrl), the problem I am having is the caret at the wxRichTextCtrl or the grid cursor on wxGrid dissapears.
This happens when:
1) The user changes ribbon pages,
2) The user clicks on a control (such as wxButton or wxComboBox) that is on a ribbon panel. The problem does not happen with controls "native" to the RibbonBar,
3) The user clicks on an empty area (no controls at all) on the RibbonBar.
The downside is when this happens the user loses whereabouts of the caret's or the grid cursor's location.
When either of the 3 cases happens, the child frame is still active and my assumption is that the controls ( i.e. wxRichTextCtrl or wxGrid) on the child frame become inactive. Even if the user clicks on the child frame again (not directly on the control) the caret or the grid cursor is not shown. The user has to click on another child frame and then to the target frame to be
able to show the caret or grid cursor again.
How can I keep the caret or grid cursor visible when above-mentioned cases happen?
I am using wxWidgets 3.1.0 on Windows 10. Compiler is VS 2015.
c++ wxwidgets
I don't understand your windows hierarchy nor your sizers. A client window whose layout is controlled by a sizer?. Please post more code. and, if you can, a screenshot of the whole picture.
– Ripi2
Nov 14 '18 at 16:05
I edited the question and added more info.
– macroland
Nov 18 '18 at 7:16
add a comment |
I have one main frame derived from wxMDIParentFrame
and corresponding child frames derived from wxMDIChildFrame.
The main frame has ribbon Bar which is included as follows:
auto clientWindow = GetClientWindow();
bSizer1->Add(m_ribbonBar, 0, wxEXPAND);
bSizer1->Add(clientWindow, 1, wxEXPAND);
The child frames contain controls, such as one has wxRichTextCtrl
and another has wxGrid
.
For example the Rich Text Control is added to the child frame as follows:
m_OutputWindow = new wxRichTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize,
wxTE_AUTO_URL|wxTE_PROCESS_ENTER|wxTE_PROCESS_TAB|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS );
auto bSizer1 = new wxBoxSizer(wxHORIZONTAL);
bSizer1->Add( m_OutputWindow, 7, wxEXPAND | wxALL, 5 );
SetSizer( bSizer1 );
Layout();
As shown in the image (for the rich text ctrl), the problem I am having is the caret at the wxRichTextCtrl or the grid cursor on wxGrid dissapears.
This happens when:
1) The user changes ribbon pages,
2) The user clicks on a control (such as wxButton or wxComboBox) that is on a ribbon panel. The problem does not happen with controls "native" to the RibbonBar,
3) The user clicks on an empty area (no controls at all) on the RibbonBar.
The downside is when this happens the user loses whereabouts of the caret's or the grid cursor's location.
When either of the 3 cases happens, the child frame is still active and my assumption is that the controls ( i.e. wxRichTextCtrl or wxGrid) on the child frame become inactive. Even if the user clicks on the child frame again (not directly on the control) the caret or the grid cursor is not shown. The user has to click on another child frame and then to the target frame to be
able to show the caret or grid cursor again.
How can I keep the caret or grid cursor visible when above-mentioned cases happen?
I am using wxWidgets 3.1.0 on Windows 10. Compiler is VS 2015.
c++ wxwidgets
I have one main frame derived from wxMDIParentFrame
and corresponding child frames derived from wxMDIChildFrame.
The main frame has ribbon Bar which is included as follows:
auto clientWindow = GetClientWindow();
bSizer1->Add(m_ribbonBar, 0, wxEXPAND);
bSizer1->Add(clientWindow, 1, wxEXPAND);
The child frames contain controls, such as one has wxRichTextCtrl
and another has wxGrid
.
For example the Rich Text Control is added to the child frame as follows:
m_OutputWindow = new wxRichTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize,
wxTE_AUTO_URL|wxTE_PROCESS_ENTER|wxTE_PROCESS_TAB|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS );
auto bSizer1 = new wxBoxSizer(wxHORIZONTAL);
bSizer1->Add( m_OutputWindow, 7, wxEXPAND | wxALL, 5 );
SetSizer( bSizer1 );
Layout();
As shown in the image (for the rich text ctrl), the problem I am having is the caret at the wxRichTextCtrl or the grid cursor on wxGrid dissapears.
This happens when:
1) The user changes ribbon pages,
2) The user clicks on a control (such as wxButton or wxComboBox) that is on a ribbon panel. The problem does not happen with controls "native" to the RibbonBar,
3) The user clicks on an empty area (no controls at all) on the RibbonBar.
The downside is when this happens the user loses whereabouts of the caret's or the grid cursor's location.
When either of the 3 cases happens, the child frame is still active and my assumption is that the controls ( i.e. wxRichTextCtrl or wxGrid) on the child frame become inactive. Even if the user clicks on the child frame again (not directly on the control) the caret or the grid cursor is not shown. The user has to click on another child frame and then to the target frame to be
able to show the caret or grid cursor again.
How can I keep the caret or grid cursor visible when above-mentioned cases happen?
I am using wxWidgets 3.1.0 on Windows 10. Compiler is VS 2015.
c++ wxwidgets
c++ wxwidgets
edited Nov 15 '18 at 4:12
macroland
asked Nov 14 '18 at 5:09
macrolandmacroland
605519
605519
I don't understand your windows hierarchy nor your sizers. A client window whose layout is controlled by a sizer?. Please post more code. and, if you can, a screenshot of the whole picture.
– Ripi2
Nov 14 '18 at 16:05
I edited the question and added more info.
– macroland
Nov 18 '18 at 7:16
add a comment |
I don't understand your windows hierarchy nor your sizers. A client window whose layout is controlled by a sizer?. Please post more code. and, if you can, a screenshot of the whole picture.
– Ripi2
Nov 14 '18 at 16:05
I edited the question and added more info.
– macroland
Nov 18 '18 at 7:16
I don't understand your windows hierarchy nor your sizers. A client window whose layout is controlled by a sizer?. Please post more code. and, if you can, a screenshot of the whole picture.
– Ripi2
Nov 14 '18 at 16:05
I don't understand your windows hierarchy nor your sizers. A client window whose layout is controlled by a sizer?. Please post more code. and, if you can, a screenshot of the whole picture.
– Ripi2
Nov 14 '18 at 16:05
I edited the question and added more info.
– macroland
Nov 18 '18 at 7:16
I edited the question and added more info.
– macroland
Nov 18 '18 at 7:16
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293526%2fcaret-or-grid-cursor-disappears-when-interacting-with-ribbon-page%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53293526%2fcaret-or-grid-cursor-disappears-when-interacting-with-ribbon-page%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I don't understand your windows hierarchy nor your sizers. A client window whose layout is controlled by a sizer?. Please post more code. and, if you can, a screenshot of the whole picture.
– Ripi2
Nov 14 '18 at 16:05
I edited the question and added more info.
– macroland
Nov 18 '18 at 7:16