From 6a2f8dec695108e86f9988f78ca1e37787daf8a3 Mon Sep 17 00:00:00 2001 From: monsta Date: Tue, 12 Jan 2016 13:01:54 +0300 Subject: [PATCH 2/9] window: react on WM change only on X11 --- src/terminal-window.c | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/src/terminal-window.c b/src/terminal-window.c index 7415083..cfbe9d1 100644 --- a/src/terminal-window.c +++ b/src/terminal-window.c @@ -22,7 +22,9 @@ #include #include #include +#ifdef GDK_WINDOWING_X11 #include +#endif #include #include @@ -1677,9 +1679,18 @@ terminal_window_screen_update (TerminalWindow *window, { TerminalApp *app; - terminal_window_window_manager_changed_cb (screen, window); - g_signal_connect (screen, "window-manager-changed", - G_CALLBACK (terminal_window_window_manager_changed_cb), window); +#ifdef GDK_WINDOWING_X11 +#if GTK_CHECK_VERSION (3, 0, 0) + if (screen && GDK_IS_X11_SCREEN (screen)) +#else + if (screen) +#endif + { + terminal_window_window_manager_changed_cb (screen, window); + g_signal_connect (screen, "window-manager-changed", + G_CALLBACK (terminal_window_window_manager_changed_cb), window); + } +#endif if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (screen), "GT::HasSettingsConnection"))) return; @@ -1712,12 +1723,18 @@ terminal_window_screen_changed (GtkWidget *widget, if (previous_screen == screen) return; +#ifdef GDK_WINDOWING_X11 +#if GTK_CHECK_VERSION (3, 0, 0) + if (previous_screen && GDK_IS_X11_SCREEN (previous_screen)) +#else if (previous_screen) +#endif { g_signal_handlers_disconnect_by_func (previous_screen, G_CALLBACK (terminal_window_window_manager_changed_cb), window); } +#endif if (!screen) return; @@ -2266,13 +2283,19 @@ terminal_window_dispose (GObject *object) G_CALLBACK (update_edit_menu), window); +#ifdef GDK_WINDOWING_X11 screen = gtk_widget_get_screen (GTK_WIDGET (object)); +#if GTK_CHECK_VERSION (3, 0, 0) + if (screen && GDK_IS_X11_SCREEN (screen)) +#else if (screen) +#endif { g_signal_handlers_disconnect_by_func (screen, G_CALLBACK (terminal_window_window_manager_changed_cb), window); } +#endif G_OBJECT_CLASS (terminal_window_parent_class)->dispose (object); } -- 2.7.4