shell: Export our main window XID in an environment variable
This allows external tools to know that they are being called from gnome-control-center and look like attached modal dialogs as per design. https://bugzilla.gnome.org/show_bug.cgi?id=691854
This commit is contained in:
parent
0dec96490c
commit
ac359b1d62
1 changed files with 23 additions and 0 deletions
|
@ -28,6 +28,7 @@
|
|||
#include <gio/gdesktopappinfo.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <gdk/gdkkeysyms.h>
|
||||
#include <gdk/gdkx.h>
|
||||
#include <string.h>
|
||||
#include <libgd/gd-styled-text-renderer.h>
|
||||
|
||||
|
@ -1316,6 +1317,27 @@ monitors_changed_cb (GdkScreen *screen,
|
|||
update_small_screen_settings (self);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_window_set_cb (GObject *object,
|
||||
GParamSpec *pspec,
|
||||
GnomeControlCenter *self)
|
||||
{
|
||||
GdkWindow *window;
|
||||
gchar *str;
|
||||
|
||||
if (!GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
|
||||
return;
|
||||
|
||||
window = gtk_widget_get_window (GTK_WIDGET (self->priv->window));
|
||||
|
||||
if (!window)
|
||||
return;
|
||||
|
||||
str = g_strdup_printf ("%u", (guint) GDK_WINDOW_XID (window));
|
||||
g_setenv ("GNOME_CONTROL_CENTER_XID", str, TRUE);
|
||||
g_free (str);
|
||||
}
|
||||
|
||||
static void
|
||||
gnome_control_center_init (GnomeControlCenter *self)
|
||||
{
|
||||
|
@ -1358,6 +1380,7 @@ gnome_control_center_init (GnomeControlCenter *self)
|
|||
g_signal_connect_swapped (priv->window, "delete-event", G_CALLBACK (g_object_unref), self);
|
||||
g_signal_connect_after (priv->window, "key_press_event",
|
||||
G_CALLBACK (window_key_press_event), self);
|
||||
g_signal_connect (priv->window, "notify::window", G_CALLBACK (gdk_window_set_cb), self);
|
||||
|
||||
priv->notebook = W (priv->builder, "notebook");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue