diff -Nru gedit-3.18.3/debian/changelog gedit-3.18.3/debian/changelog --- gedit-3.18.3/debian/changelog 2016-02-19 16:03:30.000000000 +0000 +++ gedit-3.18.3/debian/changelog 2016-03-03 23:35:11.000000000 +0000 @@ -1,3 +1,10 @@ +gedit (3.18.3-0ubuntu4) xenial; urgency=medium + + * debian/patches/unity_no_csd.patch: + - Update to correctly handle XDG_CURRENT_DESKTOP + + -- Robert Ancell Fri, 04 Mar 2016 12:29:44 +1300 + gedit (3.18.3-0ubuntu3) xenial; urgency=medium * debian/patches/unity_no_csd.patch: diff -Nru gedit-3.18.3/debian/patches/unity_no_csd.patch gedit-3.18.3/debian/patches/unity_no_csd.patch --- gedit-3.18.3/debian/patches/unity_no_csd.patch 2016-02-19 16:03:30.000000000 +0000 +++ gedit-3.18.3/debian/patches/unity_no_csd.patch 2016-03-03 23:35:11.000000000 +0000 @@ -5,22 +5,52 @@ =================================================================== --- gedit-3.18.3.orig/gedit/gedit-window.c +++ gedit-3.18.3/gedit/gedit-window.c -@@ -480,6 +480,10 @@ gedit_window_class_init (GeditWindowClas +@@ -409,6 +409,29 @@ gedit_window_tab_removed (GeditWindow *w + peas_engine_garbage_collect (PEAS_ENGINE (gedit_plugins_engine_get_default ())); + } + ++static gboolean ++in_desktop (const gchar *name) ++{ ++ const gchar *desktop_name_list; ++ gchar **names; ++ gboolean in_list = FALSE; ++ gint i; ++ ++ desktop_name_list = g_getenv ("XDG_CURRENT_DESKTOP"); ++ if (!desktop_name_list) ++ return FALSE; ++ ++ names = g_strsplit (desktop_name_list, ":", -1); ++ for (i = 0; names[i] && !in_list; i++) ++ if (strcmp (names[i], name) == 0) { ++ in_list = TRUE; ++ break; ++ } ++ g_strfreev (names); ++ ++ return in_list; ++} ++ + static void + gedit_window_class_init (GeditWindowClass *klass) + { +@@ -480,6 +503,10 @@ gedit_window_class_init (GeditWindowClas 0); /* Bind class to template */ -+ if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0) -+ gtk_widget_class_set_template_from_resource (widget_class, -+ "/org/gnome/gedit/ui/gedit-window-unity.ui"); ++ if (in_desktop ("Unity")) ++ gtk_widget_class_set_template_from_resource (widget_class, ++ "/org/gnome/gedit/ui/gedit-window-unity.ui"); + else gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/gedit/ui/gedit-window.ui"); gtk_widget_class_bind_template_child_private (widget_class, GeditWindow, titlebar_paned); -@@ -1099,10 +1103,12 @@ set_title (GeditWindow *window) +@@ -1099,10 +1126,12 @@ set_title (GeditWindow *window) gedit_app_set_window_title (GEDIT_APP (g_application_get_default ()), window, "gedit"); -+ if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") != 0) { ++ if (!in_desktop ("Unity")) { gtk_header_bar_set_title (GTK_HEADER_BAR (window->priv->headerbar), "gedit"); gtk_header_bar_set_subtitle (GTK_HEADER_BAR (window->priv->headerbar), @@ -29,11 +59,11 @@ gtk_header_bar_set_title (GTK_HEADER_BAR (window->priv->fullscreen_headerbar), "gedit"); gtk_header_bar_set_subtitle (GTK_HEADER_BAR (window->priv->fullscreen_headerbar), -@@ -1203,10 +1209,12 @@ set_title (GeditWindow *window) +@@ -1203,10 +1232,12 @@ set_title (GeditWindow *window) window, main_title); -+ if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") != 0) { ++ if (!in_desktop ("Unity")) { gtk_header_bar_set_title (GTK_HEADER_BAR (window->priv->headerbar), title); gtk_header_bar_set_subtitle (GTK_HEADER_BAR (window->priv->headerbar), @@ -42,25 +72,25 @@ gtk_header_bar_set_title (GTK_HEADER_BAR (window->priv->fullscreen_headerbar), title); gtk_header_bar_set_subtitle (GTK_HEADER_BAR (window->priv->fullscreen_headerbar), -@@ -3560,6 +3568,13 @@ _gedit_window_fullscreen (GeditWindow *w +@@ -3560,6 +3591,13 @@ _gedit_window_fullscreen (GeditWindow *w return; sync_fullscreen_actions (window, TRUE); + /* Under unity since the headerbar is not a decoration it's not handled + in an automatic way, we need to manual hide/show it so the behaviour + is the correct one */ -+ if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0) { ++ if (in_desktop ("Unity")) { + gtk_widget_hide (window->priv->headerbar); + gtk_widget_hide (window->priv->side_headerbar); + } /* Go to fullscreen mode and hide bars */ gtk_window_fullscreen (GTK_WINDOW (&window->window)); -@@ -3574,6 +3589,11 @@ _gedit_window_unfullscreen (GeditWindow +@@ -3574,6 +3612,11 @@ _gedit_window_unfullscreen (GeditWindow return; sync_fullscreen_actions (window, FALSE); -+ if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0) { ++ if (in_desktop ("Unity")) { + gtk_widget_show (window->priv->headerbar); + if (gtk_widget_get_visible (window->priv->side_panel)) + gtk_widget_show (window->priv->side_headerbar);