summaryrefslogtreecommitdiffstats
path: root/src/widgets/desktop-widget.cpp
diff options
context:
space:
mode:
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();
}
}