fix desktop redraw issues with gtk+-3.21.4
This commit is contained in:
parent
81a01c2870
commit
f91a30fb3a
@ -15,7 +15,7 @@
|
|||||||
Name: mate-settings-daemon
|
Name: mate-settings-daemon
|
||||||
Version: %{branch}.0
|
Version: %{branch}.0
|
||||||
%if 0%{?rel_build}
|
%if 0%{?rel_build}
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
%else
|
%else
|
||||||
Release: 0.2%{?git_rel}%{?dist}
|
Release: 0.2%{?git_rel}%{?dist}
|
||||||
%endif
|
%endif
|
||||||
@ -29,6 +29,9 @@ URL: http://mate-desktop.org
|
|||||||
# Source for snapshot-builds.
|
# Source for snapshot-builds.
|
||||||
%{!?rel_build:Source0: http://git.mate-desktop.org/%{name}/snapshot/%{name}-%{commit}.tar.xz#/%{git_tar}}
|
%{!?rel_build:Source0: http://git.mate-desktop.org/%{name}/snapshot/%{name}-%{commit}.tar.xz#/%{git_tar}}
|
||||||
|
|
||||||
|
Patch1: mate-settings-daemon_0001-GTK-3.21-Fix-caja-startup-background.patch
|
||||||
|
Patch2: mate-settings-daemon_0002-GTK-3.21-Fix-background-changing-startup-delay.patch
|
||||||
|
|
||||||
BuildRequires: dbus-glib-devel
|
BuildRequires: dbus-glib-devel
|
||||||
BuildRequires: dconf-devel
|
BuildRequires: dconf-devel
|
||||||
BuildRequires: desktop-file-utils
|
BuildRequires: desktop-file-utils
|
||||||
@ -66,6 +69,9 @@ under it.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q%{!?rel_build:n %{name}-%{commit}}
|
%setup -q%{!?rel_build:n %{name}-%{commit}}
|
||||||
|
|
||||||
|
%patch1 -p1 -b .0001
|
||||||
|
%patch2 -p1 -b .0002
|
||||||
|
|
||||||
%if 0%{?rel_build}
|
%if 0%{?rel_build}
|
||||||
#NOCONFIGURE=1 ./autogen.sh
|
#NOCONFIGURE=1 ./autogen.sh
|
||||||
%else # 0%{?rel_build}
|
%else # 0%{?rel_build}
|
||||||
@ -142,6 +148,9 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun Jul 24 2016 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1.15.0-2
|
||||||
|
- fix desktop redraw issues with gtk+-3.21.4
|
||||||
|
|
||||||
* Thu Jun 09 2016 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1.15.0-1
|
* Thu Jun 09 2016 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1.15.0-1
|
||||||
- update to 1.15.0 release
|
- update to 1.15.0 release
|
||||||
- switch to gtk+3
|
- switch to gtk+3
|
||||||
|
@ -0,0 +1,51 @@
|
|||||||
|
From 09a27ea066cf2ec09d5312e52714303873c35915 Mon Sep 17 00:00:00 2001
|
||||||
|
From: lukefromdc <lukefromdc@hushmail.com>
|
||||||
|
Date: Sat, 23 Jul 2016 22:12:07 -0400
|
||||||
|
Subject: [PATCH 1/2] GTK 3.21: Fix caja startup background
|
||||||
|
|
||||||
|
Make sure m-s-d knows to draw the background unconditionally when used with transparent version of Caja for GTK 3.21.3 or later
|
||||||
|
---
|
||||||
|
plugins/background/msd-background-manager.c | 9 ++++++---
|
||||||
|
1 file changed, 6 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/background/msd-background-manager.c b/plugins/background/msd-background-manager.c
|
||||||
|
index 586589b..0b02e73 100644
|
||||||
|
--- a/plugins/background/msd-background-manager.c
|
||||||
|
+++ b/plugins/background/msd-background-manager.c
|
||||||
|
@@ -218,9 +218,10 @@ draw_background (MsdBackgroundManager *manager,
|
||||||
|
{
|
||||||
|
MsdBackgroundManagerPrivate *p = manager->priv;
|
||||||
|
|
||||||
|
+#if !GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
if (!p->msd_can_draw || p->draw_in_progress || caja_is_drawing_bg (manager))
|
||||||
|
return;
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
mate_settings_profile_start (NULL);
|
||||||
|
|
||||||
|
GdkDisplay *display = gdk_display_get_default ();
|
||||||
|
@@ -402,7 +403,7 @@ on_bg_handling_changed (GSettings *settings,
|
||||||
|
MsdBackgroundManagerPrivate *p = manager->priv;
|
||||||
|
|
||||||
|
mate_settings_profile_start (NULL);
|
||||||
|
-
|
||||||
|
+#if !GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
if (caja_is_drawing_bg (manager))
|
||||||
|
{
|
||||||
|
if (p->bg != NULL)
|
||||||
|
@@ -410,9 +411,11 @@ on_bg_handling_changed (GSettings *settings,
|
||||||
|
}
|
||||||
|
else if (p->msd_can_draw && p->bg == NULL)
|
||||||
|
{
|
||||||
|
+#endif
|
||||||
|
setup_background (manager);
|
||||||
|
+#if !GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
mate_settings_profile_end (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
@ -0,0 +1,125 @@
|
|||||||
|
From 42a4285ca5148567008933516c2a472c529739eb Mon Sep 17 00:00:00 2001
|
||||||
|
From: lukefromdc <lukefromdc@hushmail.com>
|
||||||
|
Date: Sat, 23 Jul 2016 22:41:53 -0400
|
||||||
|
Subject: [PATCH 2/2] GTK 3.21: Fix background changing, startup delay
|
||||||
|
|
||||||
|
Fix background changing with or without caja running. Remove all references to Caja from GTK 3.21 or later builds, remove resulting unused variable.
|
||||||
|
---
|
||||||
|
plugins/background/msd-background-manager.c | 34 ++++++++++++++++++++++++-----
|
||||||
|
1 file changed, 28 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/plugins/background/msd-background-manager.c b/plugins/background/msd-background-manager.c
|
||||||
|
index 0b02e73..d693312 100644
|
||||||
|
--- a/plugins/background/msd-background-manager.c
|
||||||
|
+++ b/plugins/background/msd-background-manager.c
|
||||||
|
@@ -67,7 +67,9 @@ struct MsdBackgroundManagerPrivate {
|
||||||
|
GList *scr_sizes;
|
||||||
|
|
||||||
|
gboolean msd_can_draw;
|
||||||
|
+#if !GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
gboolean caja_can_draw;
|
||||||
|
+#endif
|
||||||
|
gboolean do_fade;
|
||||||
|
gboolean draw_in_progress;
|
||||||
|
|
||||||
|
@@ -95,6 +97,7 @@ can_fade_bg (MsdBackgroundManager *manager)
|
||||||
|
return g_settings_get_boolean (manager->priv->settings, MATE_BG_KEY_BACKGROUND_FADE);
|
||||||
|
}
|
||||||
|
|
||||||
|
+#if !GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
/* Whether Caja is configured to draw desktop (show-desktop-icons) */
|
||||||
|
static gboolean
|
||||||
|
caja_can_draw_bg (MsdBackgroundManager *manager)
|
||||||
|
@@ -158,7 +161,7 @@ caja_is_drawing_bg (MsdBackgroundManager *manager)
|
||||||
|
|
||||||
|
return running;
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
static void
|
||||||
|
free_fade (MsdBackgroundManager *manager)
|
||||||
|
{
|
||||||
|
@@ -218,7 +221,10 @@ draw_background (MsdBackgroundManager *manager,
|
||||||
|
{
|
||||||
|
MsdBackgroundManagerPrivate *p = manager->priv;
|
||||||
|
|
||||||
|
-#if !GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
+#if GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
+ if (!p->msd_can_draw || p->draw_in_progress)
|
||||||
|
+ return;
|
||||||
|
+#else
|
||||||
|
if (!p->msd_can_draw || p->draw_in_progress || caja_is_drawing_bg (manager))
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
@@ -264,10 +270,13 @@ on_screen_size_changed (GdkScreen *screen,
|
||||||
|
MsdBackgroundManager *manager)
|
||||||
|
{
|
||||||
|
MsdBackgroundManagerPrivate *p = manager->priv;
|
||||||
|
-
|
||||||
|
+#if GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
+ if (!p->msd_can_draw || p->draw_in_progress)
|
||||||
|
+ return;
|
||||||
|
+#else
|
||||||
|
if (!p->msd_can_draw || p->draw_in_progress || caja_is_drawing_bg (manager))
|
||||||
|
return;
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
gint scr_num = gdk_screen_get_number (screen);
|
||||||
|
gchar *old_size = g_list_nth_data (manager->priv->scr_sizes, scr_num);
|
||||||
|
gchar *new_size = g_strdup_printf ("%dx%d", gdk_screen_get_width (screen),
|
||||||
|
@@ -338,14 +347,20 @@ settings_change_event_cb (GSettings *settings,
|
||||||
|
|
||||||
|
/* Complements on_bg_handling_changed() */
|
||||||
|
p->msd_can_draw = msd_can_draw_bg (manager);
|
||||||
|
+#if GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
+ if (p->msd_can_draw && p->bg != NULL)
|
||||||
|
+ {
|
||||||
|
+ /* Defer signal processing to avoid making the dconf backend deadlock */
|
||||||
|
+ g_idle_add ((GSourceFunc) settings_change_event_idle_cb, manager);
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
p->caja_can_draw = caja_can_draw_bg (manager);
|
||||||
|
-
|
||||||
|
if (p->msd_can_draw && p->bg != NULL && !caja_is_drawing_bg (manager))
|
||||||
|
{
|
||||||
|
/* Defer signal processing to avoid making the dconf backend deadlock */
|
||||||
|
g_idle_add ((GSourceFunc) settings_change_event_idle_cb, manager);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
return FALSE; /* let the event propagate further */
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -511,7 +526,9 @@ msd_background_manager_start (MsdBackgroundManager *manager,
|
||||||
|
p->settings = g_settings_new (MATE_BG_SCHEMA);
|
||||||
|
|
||||||
|
p->msd_can_draw = msd_can_draw_bg (manager);
|
||||||
|
+#if !GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
p->caja_can_draw = caja_can_draw_bg (manager);
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
g_signal_connect (p->settings, "changed::" MATE_BG_KEY_DRAW_BACKGROUND,
|
||||||
|
G_CALLBACK (on_bg_handling_changed), manager);
|
||||||
|
@@ -524,14 +541,19 @@ msd_background_manager_start (MsdBackgroundManager *manager,
|
||||||
|
*/
|
||||||
|
if (p->msd_can_draw)
|
||||||
|
{
|
||||||
|
+#if !GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
if (p->caja_can_draw)
|
||||||
|
{
|
||||||
|
+
|
||||||
|
draw_bg_after_session_loads (manager);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
+#endif
|
||||||
|
setup_background (manager);
|
||||||
|
+#if !GTK_CHECK_VERSION(3, 21, 0)
|
||||||
|
}
|
||||||
|
+#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
mate_settings_profile_end (NULL);
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
Loading…
Reference in New Issue
Block a user