diff -Nru gnome-panel-3.4.1/debian/changelog gnome-panel-3.4.1/debian/changelog --- gnome-panel-3.4.1/debian/changelog 2012-06-26 10:06:51.000000000 +0000 +++ gnome-panel-3.4.1/debian/changelog 2013-08-14 14:31:08.000000000 +0000 @@ -1,3 +1,11 @@ +gnome-panel (1:3.4.1-0ubuntu1.2) precise-proposed; urgency=low + + * Fix gnome-panel creation when using separate x screens. (LP: #1083811) + - Backport 91-fix_panels_in_separate_screens.patch and + 93_use_correct_screen.patch from Saucy. + + -- Alberts Muktupāvels Tue, 30 Jul 2013 00:40:19 +0300 + gnome-panel (1:3.4.1-0ubuntu1.1) precise-proposed; urgency=low * debian/patches/15_avoid_applet_loading_failures.patch: diff -Nru gnome-panel-3.4.1/debian/control gnome-panel-3.4.1/debian/control --- gnome-panel-3.4.1/debian/control 2012-06-26 10:06:58.000000000 +0000 +++ gnome-panel-3.4.1/debian/control 2013-08-14 14:31:23.000000000 +0000 @@ -8,7 +8,7 @@ Priority: optional Maintainer: Ubuntu Desktop Team XSBC-Original-Maintainer: Debian GNOME Maintainers -Uploaders: Debian GNOME Maintainers +Uploaders: Debian GNOME Maintainers , Jeremy Bicha Standards-Version: 3.9.2 Build-Depends: cdbs (>= 0.4.41), debhelper (>= 8), diff -Nru gnome-panel-3.4.1/debian/patches/91-fix_panels_in_separate_screens.patch gnome-panel-3.4.1/debian/patches/91-fix_panels_in_separate_screens.patch --- gnome-panel-3.4.1/debian/patches/91-fix_panels_in_separate_screens.patch 1970-01-01 00:00:00.000000000 +0000 +++ gnome-panel-3.4.1/debian/patches/91-fix_panels_in_separate_screens.patch 2013-08-14 14:28:02.000000000 +0000 @@ -0,0 +1,37 @@ +From 3bee9c86f8c31ba0048ac52fefad2222b9ea53c2 Mon Sep 17 00:00:00 2001 +From: Alberts Muktupavels +Date: Mon, 20 May 2013 14:55:56 +0000 +Subject: Fix panels in separate x screens + +1) Don't set screen to default screen when it exist. +2) Set screen for menu, otherwise menu always appears on first screen. + +https://bugzilla.gnome.org/show_bug.cgi?id=689610 +--- +diff --git a/gnome-panel/panel-toplevel.c b/gnome-panel/panel-toplevel.c +index 6a11fc3..8cf91c7 100644 +--- a/gnome-panel/panel-toplevel.c ++++ b/gnome-panel/panel-toplevel.c +@@ -4455,7 +4455,7 @@ panel_toplevel_settings_bind_set_screen (const GValue *value, + { + GdkScreen *screen = g_value_get_object (value); + +- if (!screen || GDK_IS_SCREEN (screen)) ++ if (!screen || !GDK_IS_SCREEN (screen)) + screen = gdk_screen_get_default (); + + return g_variant_new ("i", gdk_screen_get_number (screen)); +diff --git a/libpanel-applet/panel-applet.c b/libpanel-applet/panel-applet.c +index cee436c..806d427 100644 +--- a/libpanel-applet/panel-applet.c ++++ b/libpanel-applet/panel-applet.c +@@ -1141,6 +1141,8 @@ panel_applet_position_menu (GtkMenu *menu, + applet = PANEL_APPLET (widget); + + screen = gtk_widget_get_screen (widget); ++ ++ gtk_menu_set_screen(menu, screen); + + gtk_widget_get_preferred_size (GTK_WIDGET (menu), &requisition, NULL); + gdk_window_get_origin (gtk_widget_get_window (widget), + diff -Nru gnome-panel-3.4.1/debian/patches/93_use_correct_screen.patch gnome-panel-3.4.1/debian/patches/93_use_correct_screen.patch --- gnome-panel-3.4.1/debian/patches/93_use_correct_screen.patch 1970-01-01 00:00:00.000000000 +0000 +++ gnome-panel-3.4.1/debian/patches/93_use_correct_screen.patch 2013-08-14 14:28:08.000000000 +0000 @@ -0,0 +1,59 @@ +Description: Fix gnome-panel creation under two or more separate x screens +Author: Alberts Muktupāvels +Bug: https://bugzilla.gnome.org/show_bug.cgi?id=704019 +Forwarded: yes + +--- a/gnome-panel/panel-layout.c ++++ b/gnome-panel/panel-layout.c +@@ -210,13 +210,7 @@ + /* If a specific id is specified, try to use it; it might be + * free */ + if (try_id) { +- if (screen_for_toplevels != -1 && +- g_strcmp0 (schema, PANEL_TOPLEVEL_SCHEMA) == 0) +- unique_id = g_strdup_printf ("%s-screen%d", +- try_id, +- screen_for_toplevels); +- else +- unique_id = g_strdup (try_id); ++ unique_id = g_strdup_printf ("%s-%d", try_id, screen_for_toplevels==-1?0:screen_for_toplevels); + + existing = FALSE; + +@@ -247,14 +241,7 @@ + /* Append an index at the end of the id to find a unique + * id, not used yet */ + while (existing) { +- if (screen_for_toplevels != -1 && +- g_strcmp0 (schema, PANEL_TOPLEVEL_SCHEMA) == 0) +- unique_id = g_strdup_printf ("%s-screen%d-%d", +- try_id, +- screen_for_toplevels, +- index); +- else +- unique_id = g_strdup_printf ("%s-%d", try_id, index); ++ unique_id = g_strdup_printf ("%s-%d-%d", try_id, screen_for_toplevels==-1?0:screen_for_toplevels, index); + + existing = FALSE; + +@@ -462,6 +449,11 @@ + keyfile, + group, keyfile_keys[i], + error); ++ ++ if (strcmp(keyfile_keys[i], "toplevel-id") == 0) { ++ value_str = g_strdup_printf ("%s-%d", value_str, set_screen_to==-1?0:set_screen_to); ++ } ++ + if (!value_str) + goto out; + +@@ -556,7 +548,7 @@ + g_str_has_prefix (group, "Object ")) + return panel_layout_append_group_helper ( + keyfile, group, +- -1, ++ screen_for_toplevels, + "Object", + PANEL_LAYOUT_OBJECT_ID_LIST_KEY, + PANEL_OBJECT_SCHEMA, diff -Nru gnome-panel-3.4.1/debian/patches/series gnome-panel-3.4.1/debian/patches/series --- gnome-panel-3.4.1/debian/patches/series 2012-06-26 10:05:20.000000000 +0000 +++ gnome-panel-3.4.1/debian/patches/series 2013-08-14 14:29:15.000000000 +0000 @@ -8,3 +8,5 @@ 41_classic_layout.patch 85_disable_shutdown_on_ltsp.patch 15_avoid_applet_loading_failures.patch +91-fix_panels_in_separate_screens.patch +93_use_correct_screen.patch