From 9f9a0a50f73b3d144325693ed85b34ea19bb0771 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 18 Feb 2009 23:41:40 +0000 Subject: [PATCH] ignore disconnected monitors --- disconnected-monitors.patch | 48 +++++++++++++++++++++++++++++++++++++ gtk2.spec | 8 ++++++- 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 disconnected-monitors.patch diff --git a/disconnected-monitors.patch b/disconnected-monitors.patch new file mode 100644 index 0000000..712e3f9 --- /dev/null +++ b/disconnected-monitors.patch @@ -0,0 +1,48 @@ +diff -up gtk+-2.15.4/gdk/x11/gdkscreen-x11.c.disconnected gtk+-2.15.4/gdk/x11/gdkscreen-x11.c +--- gtk+-2.15.4/gdk/x11/gdkscreen-x11.c.disconnected 2009-02-18 18:38:27.756124432 -0500 ++++ gtk+-2.15.4/gdk/x11/gdkscreen-x11.c 2009-02-18 18:38:51.904412525 -0500 +@@ -695,6 +695,9 @@ init_randr13 (GdkScreen *screen) + /* Non RandR1.2 X driver have output name "default" */ + randr12_compat |= !g_strcmp0(output->name, "default"); + ++ if (output->connection == RR_Disconnected) ++ continue; ++ + if (output->crtc) + { + GdkX11Monitor monitor; +@@ -705,11 +708,11 @@ init_randr13 (GdkScreen *screen) + monitor.geometry.width = crtc->width; + monitor.geometry.height = crtc->height; + +- /* FIXME: fill this out properly - need EDID parser */ + monitor.output = resources->outputs[i]; +- monitor.width_mm = -1; +- monitor.height_mm = -1; +- monitor.output_name = NULL; ++ monitor.width_mm = output->mm_width; ++ monitor.height_mm = output->mm_height; ++ monitor.output_name = g_strdup (output->name); ++ /* FIXME: need EDID parser */ + monitor.manufacturer = NULL; + + g_array_append_val (monitors, monitor); +@@ -995,7 +998,8 @@ _gdk_x11_screen_size_changed (GdkScreen + return; + + _gdk_x11_screen_process_monitors_change (screen); +- g_signal_emit_by_name (screen, "size_changed"); ++ ++ g_signal_emit_by_name (screen, "size-changed"); + } + + void +@@ -1003,7 +1007,7 @@ _gdk_x11_screen_process_monitors_change + { + init_multihead (screen); + +- g_signal_emit_by_name (screen, "monitors_changed"); ++ g_signal_emit_by_name (screen, "monitors-changed"); + } + + void diff --git a/gtk2.spec b/gtk2.spec index 36a57e1..6e48593 100644 --- a/gtk2.spec +++ b/gtk2.spec @@ -16,7 +16,7 @@ Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X Name: gtk2 Version: %{base_version} -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: System Environment/Libraries Source: http://download.gnome.org/sources/gtk+/2.15/gtk+-%{version}.tar.bz2 @@ -30,6 +30,8 @@ Patch0: gtk+-2.13.5-lib64.patch Patch2: workaround.patch # http://bugzilla.redhat.com/show_bug.cgi?id=478400 Patch3: default_printer.patch +# from upstream +Patch4: disconnected-monitors.patch BuildRequires: atk-devel >= %{atk_version} BuildRequires: pango-devel >= %{pango_version} @@ -135,6 +137,7 @@ This package contains developer documentation for the GTK+ widget toolkit. %patch0 -p1 -b .lib64 %patch2 -p1 -b .workaround %patch3 -p0 -b .default-printer +%patch4 -p1 -b .disconnected-monitors %build libtoolize --force --copy @@ -334,6 +337,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Feb 18 2009 Matthias Clasen - 2.15.4-2 +- Ignore disconnected monitors + * Tue Feb 17 2009 Matthias Clasen - 2.15.4-1 - Update to 2.15.4