[gnome-builder/wip/gtk4-port: 1463/1774] libide/gui: look through transient-for for workspace
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/gtk4-port: 1463/1774] libide/gui: look through transient-for for workspace
- Date: Mon, 11 Jul 2022 22:31:46 +0000 (UTC)
commit 852a394ef827f2b8eb184c2b1a6acb8dca0d4f0d
Author: Christian Hergert <chergert redhat com>
Date: Fri Jun 10 17:41:56 2022 -0700
libide/gui: look through transient-for for workspace
src/libide/gui/ide-gui-global.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
---
diff --git a/src/libide/gui/ide-gui-global.c b/src/libide/gui/ide-gui-global.c
index 38e99f563..76298c376 100644
--- a/src/libide/gui/ide-gui-global.c
+++ b/src/libide/gui/ide-gui-global.c
@@ -229,11 +229,21 @@ ide_widget_get_workbench (GtkWidget *widget)
IdeWorkspace *
ide_widget_get_workspace (GtkWidget *widget)
{
+ GtkWindow *transient_for;
GtkRoot *root;
g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
- root = gtk_widget_get_root (widget);
+ if (GTK_IS_ROOT (widget))
+ root = GTK_ROOT (widget);
+ else
+ root = gtk_widget_get_root (widget);
+
+ if (root != NULL &&
+ !IDE_IS_WORKSPACE (root) &&
+ GTK_IS_WINDOW (root) &&
+ (transient_for = gtk_window_get_transient_for (GTK_WINDOW (root))))
+ return ide_widget_get_workspace (GTK_WIDGET (transient_for));
return IDE_IS_WORKSPACE (root) ? IDE_WORKSPACE (root) : NULL;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]