summaryrefslogtreecommitdiffstats
path: root/src/widgets/desktop-widget.cpp
diff options
context:
space:
mode:
authorAlexander Valavanis <valavanisalex@gmail.com>2019-01-27 11:53:05 +0000
committerAlexander Valavanis <valavanisalex@gmail.com>2019-01-27 11:53:05 +0000
commitcdb5052c77519ed176427244a41873b59733a4f9 (patch)
tree8a37822b205b3297f3824239d0d0b259ac81aad4 /src/widgets/desktop-widget.cpp
parentMerge branch 'master' of gitlab.com:inkscape/inkscape (diff)
downloadinkscape-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.cpp13
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();
}
}