Ctrl-w shortcut to close an editor tab in multi-tab mode; bugfix for multi-monitor mode (issue 732)

This commit is contained in:
michael
2012-07-28 12:36:21 -04:00
parent d91a7e77c8
commit ea598952fa
2 changed files with 26 additions and 3 deletions

View File

@@ -171,13 +171,27 @@ bool EditWindow::selectEditorPanel(const std::string &name) {
}
bool EditWindow::keyPressed (GdkEventKey* event) {
bool ctrl = event->state & GDK_CONTROL_MASK;
if(event->keyval == GDK_F11) {
toggleFullscreen();
return true;
} else {
EditorPanel* ep = static_cast<EditorPanel*>(mainNB->get_nth_page (mainNB->get_current_page()));
return ep->handleShortcutKey (event);
}
else {
if(mainNB->get_n_pages ()>0) { //pass the handling for the editor panels, if there are any
if (event->keyval == GDK_w && ctrl){ //remove editor panel
EditorPanel* ep = static_cast<EditorPanel*>(mainNB->get_nth_page (mainNB->get_current_page()));
remEditorPanel (ep);
return true;
}
else if(mainNB->get_n_pages ()>0){
EditorPanel* ep = static_cast<EditorPanel*>(mainNB->get_nth_page (mainNB->get_current_page()));
return ep->handleShortcutKey (event);
}
}
return false;
}
}
void EditWindow::toggleFullscreen () {

View File

@@ -403,6 +403,15 @@ bool RTWindow::keyPressed (GdkEventKey* event) {
mainNB->set_current_page (mainNB->page_num (*epanel));
}
return true;
case GDK_w: //multi-tab mode, close editor panel
if (!isSingleTabMode() &&
mainNB->get_current_page()!=mainNB->page_num(*fpanel) &&
mainNB->get_current_page()!=mainNB->page_num(*bpanel)) {
EditorPanel* ep = static_cast<EditorPanel*>(mainNB->get_nth_page (mainNB->get_current_page()));
remEditorPanel (ep);
return true;
}
}
}