diff options
| author | Alexander Valavanis <valavanisalex@gmail.com> | 2019-01-27 11:53:05 +0000 |
|---|---|---|
| committer | Alexander Valavanis <valavanisalex@gmail.com> | 2019-01-27 11:53:05 +0000 |
| commit | cdb5052c77519ed176427244a41873b59733a4f9 (patch) | |
| tree | 8a37822b205b3297f3824239d0d0b259ac81aad4 /src/widgets/desktop-widget.cpp | |
| parent | Merge branch 'master' of gitlab.com:inkscape/inkscape (diff) | |
| download | inkscape-cdb5052c77519ed176427244a41873b59733a4f9.tar.gz inkscape-cdb5052c77519ed176427244a41873b59733a4f9.zip | |
Toolbars: Fix alt+x focus switching
Diffstat (limited to 'src/widgets/desktop-widget.cpp')
| -rw-r--r-- | src/widgets/desktop-widget.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index 9db8b2af4..aa29294f5 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -1515,10 +1515,17 @@ void SPDesktopWidget::layoutWidgets() void SPDesktopWidget::setToolboxFocusTo (const gchar* label) { - gpointer hb = sp_search_by_data_recursive(aux_toolbox, (gpointer) label); - if (hb && GTK_IS_WIDGET(hb)) + // First try looking for a named widget + auto hb = sp_search_by_name_recursive(Glib::wrap(aux_toolbox), label); + + // Fallback to looking for a named data member (deprecated) + if (!hb) { + hb = Glib::wrap(GTK_WIDGET(sp_search_by_data_recursive(aux_toolbox, (gpointer) label))); + } + + if (hb) { - gtk_widget_grab_focus(GTK_WIDGET(hb)); + hb->grab_focus(); } } |
