drop obsolete patches

This commit is contained in:
Matthias Clasen 2008-11-24 19:19:38 +00:00
parent 63b496997f
commit 8248c163d8
14 changed files with 8 additions and 629 deletions

View File

@ -1,41 +0,0 @@
Index: gtk/gtkfilechooserdefault.c
===================================================================
--- gtk/gtkfilechooserdefault.c (revision 21491)
+++ gtk/gtkfilechooserdefault.c (working copy)
@@ -456,6 +456,7 @@
GtkTreeIter *child_iter,
GtkTreeIter *iter);
static void set_file_system_backend (GtkFileChooserDefault *impl);
+static void unset_file_system_backend (GtkFileChooserDefault *impl);
@@ -923,6 +924,8 @@
GtkFileChooserDefault *impl = GTK_FILE_CHOOSER_DEFAULT (object);
GSList *l;
+ unset_file_system_backend (impl);
+
if (impl->shortcuts_pane_filter_model)
g_object_unref (impl->shortcuts_pane_filter_model);
@@ -5373,6 +5376,19 @@
profile_end ("end", NULL);
}
+static void
+unset_file_system_backend (GtkFileChooserDefault *impl)
+{
+ g_signal_disconnect_by_func (impl->file_system, "volumes-changed",
+ G_CALLBACK (volumes_bookmarks_changed_cb), impl);
+ g_signal_disconnect_by_func (impl->file_system, "bookmarks-changed",
+ G_CALLBACK (volumes_bookmarks_changed_cb), impl);
+
+ g_object_unref (impl->file_system);
+
+ impl->file_system = NULL;
+}
+
/* This function is basically a do_all function.
*
* It sets the visibility on all the widgets based on the current state, and

View File

@ -1,74 +0,0 @@
diff -up gtk+-2.13.7/gtk/gtksettings.c.color-loop gtk+-2.13.7/gtk/gtksettings.c
--- gtk+-2.13.7/gtk/gtksettings.c.color-loop 2008-08-25 09:16:09.000000000 -0400
+++ gtk+-2.13.7/gtk/gtksettings.c 2008-08-25 09:16:21.000000000 -0400
@@ -1892,14 +1892,13 @@ _gtk_settings_handle_event (GdkEventSett
if (property_id == PROP_COLOR_SCHEME)
{
GValue value = { 0, };
-
+
g_value_init (&value, G_TYPE_STRING);
if (!gdk_screen_get_setting (settings->screen, pspec->name, &value))
g_value_set_static_string (&value, "");
merge_color_scheme (settings, &value, GTK_SETTINGS_SOURCE_XSETTING);
g_value_unset (&value);
}
-
g_object_notify (G_OBJECT (settings), pspec->name);
}
}
@@ -2258,6 +2257,7 @@ update_color_hash (ColorSchemeData *da
{
gboolean changed = FALSE;
gint i;
+ GHashTable *old_hash;
if ((str == NULL || *str == '\0') &&
(data->lastentry[source] == NULL || data->lastentry[source][0] == '\0'))
@@ -2291,8 +2291,7 @@ update_color_hash (ColorSchemeData *da
return FALSE;
/* Rebuild the merged hash table. */
- if (data->color_hash)
- g_hash_table_unref (data->color_hash);
+ old_hash = data->color_hash;
data->color_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
(GDestroyNotify) gdk_color_free);
for (i = 0; i <= GTK_SETTINGS_SOURCE_APPLICATION; i++)
@@ -2302,7 +2301,35 @@ update_color_hash (ColorSchemeData *da
data->color_hash);
}
- return TRUE;
+ if (old_hash)
+ {
+ /* now check if the merged hash has changed */
+ changed = FALSE;
+ if (g_hash_table_size (old_hash) != g_hash_table_size (data->color_hash))
+ changed = TRUE;
+ else
+ {
+ GHashTableIter iter;
+ gpointer key, value, new_value;
+
+ g_hash_table_iter_init (&iter, old_hash);
+ while (g_hash_table_iter_next (&iter, &key, &value))
+ {
+ new_value = g_hash_table_lookup (data->color_hash, key);
+ if (!new_value || !gdk_color_equal (value, new_value))
+ {
+ changed = TRUE;
+ break;
+ }
+ }
+ }
+
+ g_hash_table_unref (old_hash);
+ }
+ else
+ changed = TRUE;
+
+ return changed;
}
static void

View File

@ -1,16 +0,0 @@
diff -up gtk+-2.14.3/gtk/gtkfilechooserdefault.c.fix-file-chooser-button gtk+-2.14.3/gtk/gtkfilechooserdefault.c
--- gtk+-2.14.3/gtk/gtkfilechooserdefault.c.fix-file-chooser-button 2008-10-08 01:57:49.000000000 -0400
+++ gtk+-2.14.3/gtk/gtkfilechooserdefault.c 2008-10-08 01:58:21.000000000 -0400
@@ -6906,10 +6906,10 @@ update_current_folder_get_info_cb (GCanc
g_object_unref (impl->current_folder);
impl->current_folder = g_object_ref (data->file);
-
- impl->reload_state = RELOAD_HAS_FOLDER;
}
+ impl->reload_state = RELOAD_HAS_FOLDER;
+
/* Update the widgets that may trigger a folder change themselves. */
if (!impl->changing_folder)

View File

@ -1,12 +0,0 @@
diff -up gtk+-2.13.7/gdk/x11/gdkwindow-x11.c.flash-swarm gtk+-2.13.7/gdk/x11/gdkwindow-x11.c
--- gtk+-2.13.7/gdk/x11/gdkwindow-x11.c.flash-swarm 2008-08-25 18:14:28.000000000 -0400
+++ gtk+-2.13.7/gdk/x11/gdkwindow-x11.c 2008-08-25 18:14:57.000000000 -0400
@@ -1830,7 +1830,7 @@ gdk_window_x11_reparent (GdkWindow *wind
parent_private->children = g_list_prepend (parent_private->children, window);
_gdk_window_init_position (GDK_WINDOW (window_private));
- return TRUE;
+ return FALSE;
}
static void

View File

@ -1,46 +0,0 @@
diff -up gtk+-2.14.2/modules/other/gail/gailcell.c.gail-leaks gtk+-2.14.2/modules/other/gail/gailcell.c
--- gtk+-2.14.2/modules/other/gail/gailcell.c.gail-leaks 2008-09-19 00:55:50.000000000 -0400
+++ gtk+-2.14.2/modules/other/gail/gailcell.c 2008-09-19 00:56:24.000000000 -0400
@@ -118,6 +118,7 @@ gail_cell_destroyed (GtkWidget *wi
* GtkWidget. We set the pointer location to NULL;
*/
cell->widget = NULL;
+ g_signal_handlers_disconnect_by_func (widget, gail_cell_destroyed, cell);
}
static void
diff -up gtk+-2.14.2/modules/other/gail/gailtreeview.c.gail-leaks gtk+-2.14.2/modules/other/gail/gailtreeview.c
--- gtk+-2.14.2/modules/other/gail/gailtreeview.c.gail-leaks 2008-09-19 00:55:02.000000000 -0400
+++ gtk+-2.14.2/modules/other/gail/gailtreeview.c 2008-09-19 00:55:39.000000000 -0400
@@ -3667,12 +3667,12 @@ static gboolean
garbage_collect_cell_data (gpointer data)
{
GailTreeView *tree_view;
- GList *temp_list;
+ GList *temp_list, *list;
GailTreeViewCellInfo *cell_info;
g_assert (GAIL_IS_TREE_VIEW (data));
tree_view = (GailTreeView *)data;
- temp_list = g_list_copy (tree_view->cell_data);
+ list = g_list_copy (tree_view->cell_data);
tree_view->garbage_collection_pending = FALSE;
if (tree_view->idle_garbage_collect_id != 0)
@@ -3682,6 +3682,7 @@ garbage_collect_cell_data (gpointer data
}
/* Must loop through them all */
+ temp_list = list;
while (temp_list != NULL)
{
cell_info = temp_list->data;
@@ -3696,7 +3697,7 @@ garbage_collect_cell_data (gpointer data
}
temp_list = temp_list->next;
}
- g_list_free (temp_list);
+ g_list_free (list);
return tree_view->garbage_collection_pending;
}

View File

@ -1,16 +0,0 @@
diff -up gtk+-2.14.3/modules/other/gail/gail.c.gail-make-resident gtk+-2.14.3/modules/other/gail/gail.c
--- gtk+-2.14.3/modules/other/gail/gail.c.gail-make-resident 2008-09-19 00:44:18.000000000 -0400
+++ gtk+-2.14.3/modules/other/gail/gail.c 2008-10-03 22:59:58.000000000 -0400
@@ -980,3 +980,12 @@ gtk_module_init (gint *argc, char** argv
return 0;
}
+
+const char *
+g_module_check_init (GModule *module)
+{
+ g_module_make_resident (module);
+
+ return NULL;
+}
+

View File

@ -1,21 +0,0 @@
diff -up gtk+-2.14.0/modules/other/gail/gailtreeview.c.greeter-crash gtk+-2.14.0/modules/other/gail/gailtreeview.c
--- gtk+-2.14.0/modules/other/gail/gailtreeview.c.greeter-crash 2008-09-05 00:24:19.000000000 -0400
+++ gtk+-2.14.0/modules/other/gail/gailtreeview.c 2008-09-05 00:24:27.000000000 -0400
@@ -2959,17 +2959,6 @@ model_row_deleted (GtkTreeModel *tree_mo
g_signal_emit_by_name (atk_obj, "row_deleted", row,
gailview->n_children_deleted + 1);
gailview->n_children_deleted = 0;
-
- /* Generate children-changed signals */
- n_cols = get_n_actual_columns (tree_view);
- for (col = 0; col < n_cols; col++)
- {
- /*
- * Pass NULL as the child object, 4th argument.
- */
- g_signal_emit_by_name (atk_obj, "children_changed::remove",
- ((row * n_cols) + col), NULL, NULL);
- }
}
/*

View File

@ -1,105 +0,0 @@
Index: gdk/x11/gdkscreen-x11.c
===================================================================
--- gdk/x11/gdkscreen-x11.c (revision 21333)
+++ gdk/x11/gdkscreen-x11.c (working copy)
@@ -664,81 +664,6 @@
}
static gboolean
-init_randr12 (GdkScreen *screen)
-{
-#ifdef HAVE_RANDR
- GdkDisplay *display = gdk_screen_get_display (screen);
- GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display);
- GdkScreenX11 *screen_x11 = GDK_SCREEN_X11 (screen);
- Display *dpy = GDK_SCREEN_XDISPLAY (screen);
- XRRScreenResources *resources;
- int i;
- GArray *monitors;
- gboolean randr12_compat = FALSE;
-
- if (!display_x11->have_randr12)
- return FALSE;
-
- resources = XRRGetScreenResources (screen_x11->xdisplay,
- screen_x11->xroot_window);
- if (!resources)
- return FALSE;
-
- monitors = g_array_sized_new (FALSE, TRUE, sizeof (GdkX11Monitor),
- resources->noutput);
-
- for (i = 0; i < resources->noutput; ++i)
- {
- XRROutputInfo *output =
- XRRGetOutputInfo (dpy, resources, resources->outputs[i]);
-
- /* Non RandR1.2 X driver have output name "default" */
- randr12_compat |= !g_strcmp0(output->name, "default");
-
- if (output->crtc)
- {
- GdkX11Monitor monitor;
- XRRCrtcInfo *crtc = XRRGetCrtcInfo (dpy, resources, output->crtc);
-
- monitor.geometry.x = crtc->x;
- monitor.geometry.y = crtc->y;
- 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.manufacturer = NULL;
-
- g_array_append_val (monitors, monitor);
-
- XRRFreeCrtcInfo (crtc);
- }
-
- XRRFreeOutputInfo (output);
- }
-
- XRRFreeScreenResources (resources);
-
- /* non RandR 1.2 X driver doesn't return any usable multihead data */
- if (randr12_compat)
- {
- g_array_free (monitors, TRUE);
- return FALSE;
- }
-
- screen_x11->n_monitors = monitors->len;
- screen_x11->monitors = (GdkX11Monitor *)g_array_free (monitors, FALSE);
-
- return TRUE;
-#endif
-
- return FALSE;
-}
-
-static gboolean
init_solaris_xinerama (GdkScreen *screen)
{
#ifdef HAVE_SOLARIS_XINERAMA
@@ -861,14 +786,14 @@
* 3. Solaris Xinerama
* 4. XFree86/Xorg Xinerama
*
- * We use them in that order.
+ * However, there are performance issues with calling
+ * XRRGetScreenResources() every time an application starts,
+ * so in the RandR case we simply rely on the information being
+ * exported through Xinerama as well.
*/
if (init_fake_xinerama (screen))
return;
- if (init_randr12 (screen))
- return;
-
if (XQueryExtension (GDK_SCREEN_XDISPLAY (screen), "XINERAMA",
&opcode, &firstevent, &firsterror))
{

View File

@ -1,19 +0,0 @@
Index: gtk/gtkfilesystem.c
===================================================================
--- gtk/gtkfilesystem.c (revision 21702)
+++ gtk/gtkfilesystem.c (revision 21703)
@@ -1738,6 +1738,14 @@ _gtk_file_info_render_icon (GFileInfo *i
if (icon)
pixbuf = get_pixbuf_from_gicon (icon, widget, icon_size, NULL);
+
+ if (!pixbuf)
+ {
+ /* Use general fallback for all files without icon */
+ icon = g_themed_icon_new ("text-x-generic");
+ pixbuf = get_pixbuf_from_gicon (icon, widget, icon_size, NULL);
+ g_object_unref (icon);
+ }
}
return pixbuf;

View File

@ -16,7 +16,7 @@
Summary: The GIMP ToolKit (GTK+), a library for creating GUIs for X
Name: gtk2
Version: %{base_version}
Release: 2%{?dist}
Release: 3%{?dist}
License: LGPLv2+
Group: System Environment/Libraries
Source: http://download.gnome.org/sources/gtk+/2.14/gtk+-%{version}.tar.bz2
@ -30,10 +30,6 @@ Patch1: gtk+-2.11.1-set-invisible-char-to-bullet.patch
# a workaround for some brokenness in the flash plugin
# see http://bugzilla.gnome.org/show_bug.cgi?id=463773
Patch2: workaround.patch
# from upstream
Patch3: randr-fix.patch
# from upstream
Patch4: gtk+-2.14.4-fallback-file-icon.patch
BuildRequires: atk-devel >= %{atk_version}
BuildRequires: pango-devel >= %{pango_version}
@ -90,7 +86,7 @@ projects ranging from small one-off tools to complete application
suites.
%package devel
Summary: Development tools for GTK+ applications
Summary: Development files for GTK+
Group: Development/Libraries
Requires: gtk2 = %{version}-%{release}
Requires: pango-devel >= %{pango_version}
@ -111,8 +107,9 @@ Provides: gail-devel = %{version}-%{release}
Obsoletes: gail-devel < 2.13.0-1
%description devel
The gtk+-devel package contains the header files and developer
docs for the GTK+ widget toolkit.
This package contains the libraries, header files and developer
documentation that are needed for writing applications with the
GTK+ widget toolkit.
%prep
%setup -q -n gtk+-%{version}
@ -120,8 +117,6 @@ docs for the GTK+ widget toolkit.
%patch0 -p1 -b .lib64
%patch1 -p1 -b .set-invisible-char-to-bullet
%patch2 -p1 -b .workaround
%patch3 -p1 -b .randr-fix
%patch4 -p0 -b .fallback-file-icon
%build
libtoolize --force --copy
@ -301,8 +296,10 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/gtk-2.0
%changelog
* Mon Nov 24 2008 Matthias Clasen <mclasen@redhat.com> - 2.14.5-2
* Mon Nov 24 2008 Matthias Clasen <mclasen@redhat.com> - 2.14.5-3
- Update to 2.14.5
- Drop obsolete patches
- Update descriptions
* Sun Nov 23 2008 Matthias Clasen <mclasen@redhat.com> - 2.14.4-4
- Reduce rpmlint warnings produced by the ia64 multilib hack

View File

@ -1,17 +0,0 @@
diff -up gtk+-2.14.2/gdk-pixbuf/gdk-pixbuf-io.c.info-leak gtk+-2.14.2/gdk-pixbuf/gdk-pixbuf-io.c
--- gtk+-2.14.2/gdk-pixbuf/gdk-pixbuf-io.c.info-leak 2008-09-18 14:34:02.000000000 -0400
+++ gtk+-2.14.2/gdk-pixbuf/gdk-pixbuf-io.c 2008-09-18 14:34:46.000000000 -0400
@@ -688,9 +688,10 @@ gdk_pixbuf_load_module_unlocked (GdkPixb
if (fill_vtable) {
image_module->module = (void *) 1;
(* fill_vtable) (image_module);
- image_module->info = g_new0 (GdkPixbufFormat, 1);
- (* fill_info) (image_module->info);
-
+ if (image_module->info == NULL) {
+ image_module->info = g_new0 (GdkPixbufFormat, 1);
+ (* fill_info) (image_module->info);
+ }
return TRUE;
}
else

View File

@ -1,213 +0,0 @@
Index: gdk-pixbuf/gdk-pixbuf-loader.c
===================================================================
--- gdk-pixbuf/gdk-pixbuf-loader.c (revision 21294)
+++ gdk-pixbuf/gdk-pixbuf-loader.c (working copy)
@@ -356,9 +356,8 @@
if (priv->image_module == NULL)
return 0;
- if (priv->image_module->module == NULL)
- if (!_gdk_pixbuf_load_module (priv->image_module, error))
- return 0;
+ if (!_gdk_pixbuf_load_module (priv->image_module, error))
+ return 0;
if (priv->image_module->module == NULL)
return 0;
Index: gdk-pixbuf/gdk-pixbuf-io.c
===================================================================
--- gdk-pixbuf/gdk-pixbuf-io.c (revision 21294)
+++ gdk-pixbuf/gdk-pixbuf-io.c (working copy)
@@ -292,6 +292,11 @@
#endif /* USE_GMODULE */
+
+static gboolean
+gdk_pixbuf_load_module_unlocked (GdkPixbufModule *image_module,
+ GError **error);
+
static void
gdk_pixbuf_io_init (void)
{
@@ -318,7 +323,7 @@
#define load_one_builtin_module(format) \
builtin_module = g_new0 (GdkPixbufModule, 1); \
builtin_module->module_name = #format; \
- if (_gdk_pixbuf_load_module (builtin_module, NULL)) \
+ if (gdk_pixbuf_load_module_unlocked (builtin_module, NULL)) \
file_formats = g_slist_prepend (file_formats, builtin_module);\
else \
g_free (builtin_module)
@@ -541,51 +546,7 @@
#endif
}
-#ifdef USE_GMODULE
-/* actually load the image handler - gdk_pixbuf_get_module only get a */
-/* reference to the module to load, it doesn't actually load it */
-/* perhaps these actions should be combined in one function */
-static gboolean
-_gdk_pixbuf_load_module_unlocked (GdkPixbufModule *image_module,
- GError **error)
-{
- char *path;
- GModule *module;
- gpointer sym;
-
- g_return_val_if_fail (image_module->module == NULL, FALSE);
-
- path = image_module->module_path;
- module = g_module_open (path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL);
-
- if (!module) {
- g_set_error (error,
- GDK_PIXBUF_ERROR,
- GDK_PIXBUF_ERROR_FAILED,
- _("Unable to load image-loading module: %s: %s"),
- path, g_module_error ());
- return FALSE;
- }
-
- image_module->module = module;
-
- if (g_module_symbol (module, "fill_vtable", &sym)) {
- GdkPixbufModuleFillVtableFunc func = (GdkPixbufModuleFillVtableFunc) sym;
- (* func) (image_module);
- return TRUE;
- } else {
- g_set_error (error,
- GDK_PIXBUF_ERROR,
- GDK_PIXBUF_ERROR_FAILED,
- _("Image-loading module %s does not export the proper interface; perhaps it's from a different GTK version?"),
- path);
- return FALSE;
- }
-}
-
-#endif /* !USE_GMODULE */
-
#define module(type) \
extern void _gdk_pixbuf__##type##_fill_info (GdkPixbufFormat *info); \
extern void _gdk_pixbuf__##type##_fill_vtable (GdkPixbufModule *module)
@@ -617,29 +578,19 @@
#undef module
-gboolean
-_gdk_pixbuf_load_module (GdkPixbufModule *image_module,
- GError **error)
+/* actually load the image handler - gdk_pixbuf_get_module only get a */
+/* reference to the module to load, it doesn't actually load it */
+/* perhaps these actions should be combined in one function */
+static gboolean
+gdk_pixbuf_load_module_unlocked (GdkPixbufModule *image_module,
+ GError **error)
{
- gboolean ret;
- gboolean locked = FALSE;
GdkPixbufModuleFillInfoFunc fill_info = NULL;
GdkPixbufModuleFillVtableFunc fill_vtable = NULL;
+
+ if (image_module->module != NULL)
+ return TRUE;
- /* be extra careful, maybe the module initializes
- * the thread system
- */
- if (g_threads_got_initialized) {
- G_LOCK (init_lock);
- locked = TRUE;
- }
-
- if (image_module->module != NULL) {
- if (locked)
- G_UNLOCK (init_lock);
- return TRUE;
- }
-
#define try_module(format,id) \
if (fill_info == NULL && \
strcmp (image_module->module_name, #format) == 0) { \
@@ -715,22 +666,70 @@
image_module->info = g_new0 (GdkPixbufFormat, 1);
(* fill_info) (image_module->info);
- ret = TRUE;
+ return TRUE;
}
- else {
+ else
#ifdef USE_GMODULE
- ret = _gdk_pixbuf_load_module_unlocked (image_module, error);
+ {
+ char *path;
+ GModule *module;
+ gpointer sym;
+
+ path = image_module->module_path;
+ module = g_module_open (path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL);
+
+ if (!module) {
+ g_set_error (error,
+ GDK_PIXBUF_ERROR,
+ GDK_PIXBUF_ERROR_FAILED,
+ _("Unable to load image-loading module: %s: %s"),
+ path, g_module_error ());
+ return FALSE;
+ }
+
+ image_module->module = module;
+
+ if (g_module_symbol (module, "fill_vtable", &sym)) {
+ fill_vtable = (GdkPixbufModuleFillVtableFunc) sym;
+ (* fill_vtable) (image_module);
+ return TRUE;
+ } else {
+ g_set_error (error,
+ GDK_PIXBUF_ERROR,
+ GDK_PIXBUF_ERROR_FAILED,
+ _("Image-loading module %s does not export the proper interface; perhaps it's from a different GTK version?"),
+ path);
+ return FALSE;
+ }
+ }
#else
- g_set_error (error,
- GDK_PIXBUF_ERROR,
- GDK_PIXBUF_ERROR_UNKNOWN_TYPE,
- _("Image type '%s' is not supported",
- image_module->module_name);
+ g_set_error (error,
+ GDK_PIXBUF_ERROR,
+ GDK_PIXBUF_ERROR_UNKNOWN_TYPE,
+ _("Image type '%s' is not supported",
+ image_module->module_name);
+ return FALSE;
+#endif /* !USE_GMODULE */
+}
- ret = FALSE;
-#endif
+
+gboolean
+_gdk_pixbuf_load_module (GdkPixbufModule *image_module,
+ GError **error)
+{
+ gboolean ret;
+ gboolean locked = FALSE;
+
+ /* be extra careful, maybe the module initializes
+ * the thread system
+ */
+ if (g_threads_got_initialized) {
+ G_LOCK (init_lock);
+ locked = TRUE;
}
+ ret = gdk_pixbuf_load_module_unlocked (image_module, error);
+
if (locked)
G_UNLOCK (init_lock);

View File

@ -1,26 +0,0 @@
diff -up gtk+-2.14.4/gdk/x11/gdkscreen-x11.c.randr-fix gtk+-2.14.4/gdk/x11/gdkscreen-x11.c
--- gtk+-2.14.4/gdk/x11/gdkscreen-x11.c.randr-fix 2008-10-22 00:57:46.000000000 -0400
+++ gtk+-2.14.4/gdk/x11/gdkscreen-x11.c 2008-10-22 00:59:18.000000000 -0400
@@ -894,6 +894,11 @@ void
_gdk_x11_screen_size_changed (GdkScreen *screen,
XEvent *event)
{
+ gint width, height;
+
+ width = gdk_screen_get_width (screen);
+ height = gdk_screen_get_height (screen);
+
#ifdef HAVE_RANDR
if (!XRRUpdateConfiguration (event))
return;
@@ -909,6 +914,10 @@ _gdk_x11_screen_size_changed (GdkScreen
else
return;
#endif
+
+ if (gdk_screen_get_width (screen) == width &&
+ gdk_screen_get_height (screen) == height)
+ return;
_gdk_x11_screen_process_monitors_change (screen);
g_signal_emit_by_name (screen, "size_changed");

View File

@ -1,12 +0,0 @@
diff -up gtk+-2.13.7/gdk/x11/gdkscreen-x11.c.screen-size-change gtk+-2.13.7/gdk/x11/gdkscreen-x11.c
--- gtk+-2.13.7/gdk/x11/gdkscreen-x11.c.screen-size-change 2008-08-26 22:19:26.000000000 -0400
+++ gtk+-2.13.7/gdk/x11/gdkscreen-x11.c 2008-08-26 22:19:42.000000000 -0400
@@ -985,7 +985,7 @@ _gdk_x11_screen_size_changed (GdkScreen
return;
#endif
- init_multihead (screen);
+ _gdk_x11_screen_process_monitors_change (screen);
g_signal_emit_by_name (screen, "size_changed");
}