Mercurial > hg > octave-nkf
diff libgui/src/m-editor/file-editor.cc @ 15980:6c0fce0632a4
gui: set keyboard focus when switching between dock widgets (bug #36957)
* main-window.cc (handle_command_window_visible, handle_command_history_visible,
handle_current_directory_visible, handle_workspace_visible,
handle_editor_visible, handle_documentation_visible): slots for signal
visibilityChanged, emitted when widgets get visible
* main-window.cc (construct): connect signal visibilityChanged to slots
* main-window.cc (focus_editor): call editor's own function for setting focus
* main-window.h: declaration of new slots
* file-editor.cc (set_focus): new function: setting focus to actual editor tab
* file-editor.cc (add_file_editor_tab): connect signal fetab_set_focus to the
slot set_focus of file_editor_tab
* file-editor.h: new function set_focus and new signal fetab_set_focus
* file-editor-interface.h: new virtual function set_focus
* file-editor-tab.cc (set_focus): new slot for singal fetab_set_focus from
file_editor, setting the focus to edit area
* file-edtortab.h: new slot set_focus
author | Torsten <ttl@justmail.de> |
---|---|
date | Sat, 26 Jan 2013 20:33:46 +0100 |
parents | 927b121ad63f |
children | 131d40cd805b |
line wrap: on
line diff
--- a/libgui/src/m-editor/file-editor.cc +++ b/libgui/src/m-editor/file-editor.cc @@ -64,6 +64,18 @@ settings->sync (); } +// set focus to editor and its current tab +void +file_editor::set_focus () +{ + setFocus (); + activateWindow (); + raise (); + QWidget *fileEditorTab = _tab_widget->currentWidget (); + if (fileEditorTab) + emit fetab_set_focus (fileEditorTab); +} + QMenu * file_editor::debug_menu () { @@ -819,6 +831,8 @@ f, SLOT (uncomment_selected_text (const QWidget*))); connect (this, SIGNAL (fetab_find (const QWidget*)), f, SLOT (find (const QWidget*))); + connect (this, SIGNAL (fetab_set_focus (const QWidget*)), + f, SLOT (set_focus (const QWidget*))); _tab_widget->setCurrentWidget (f); }