diff --git a/.gitignore b/.gitignore index 3fccaa6..26d03eb 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ /marco-1.15.0.tar.xz /marco-1.16.0.tar.xz /marco-1.17.0.tar.xz +/marco-1.17.1.tar.xz diff --git a/marco.spec b/marco.spec index c33cd32..4ab2005 100644 --- a/marco.spec +++ b/marco.spec @@ -13,7 +13,7 @@ %{!?rel_build:%global git_tar %{name}-%{version}-%{git_ver}.tar.xz} Name: marco -Version: %{branch}.0 +Version: %{branch}.1 %if 0%{?rel_build} Release: 1%{?dist} %else @@ -29,6 +29,9 @@ URL: http://mate-desktop.org # Source for snapshot-builds. %{!?rel_build:Source0: http://git.mate-desktop.org/%{name}/snapshot/%{name}-%{commit}.tar.xz#/%{git_tar}} +# https://github.com/mate-desktop/marco/pull/296 +Patch2: marco_0002-Added-functionality-to-ignore-applications-while-sho.patch + BuildRequires: desktop-file-utils BuildRequires: gtk3-devel BuildRequires: libcanberra-devel @@ -82,6 +85,8 @@ Development files for marco %prep %setup -q%{!?rel_build:n %{name}-%{commit}} +%patch2 -p1 -b .0002 + %if 0%{?rel_build} #NOCONFIGURE=1 ./autogen.sh %else # 0%{?rel_build} @@ -129,6 +134,7 @@ fi %doc AUTHORS COPYING README ChangeLog %{_bindir}/marco %{_bindir}/marco-message +%{_bindir}/marco-theme-viewer %{_datadir}/applications/marco.desktop %{_datadir}/themes/ClearlooksRe %{_datadir}/themes/Dopple-Left @@ -161,6 +167,10 @@ fi %changelog +* Wed Jan 18 2017 Wolfgang Ulbrich - 1.17.1-1 +- update to 1.17.1 release +- use https://github.com/mate-desktop/marco/pull/296 + * Sat Dec 03 2016 Wolfgang Ulbrich - 1.17.0-1 - update to 1.17.0 release diff --git a/marco_0002-Added-functionality-to-ignore-applications-while-sho.patch b/marco_0002-Added-functionality-to-ignore-applications-while-sho.patch new file mode 100644 index 0000000..21940eb --- /dev/null +++ b/marco_0002-Added-functionality-to-ignore-applications-while-sho.patch @@ -0,0 +1,173 @@ +From 1fecd0988d22fbbd44d4a8cc2d89abfbe72fd1d1 Mon Sep 17 00:00:00 2001 +From: Illia Danko +Date: Fri, 28 Oct 2016 19:27:37 +0300 +Subject: [PATCH] Added functionality to ignore applications while show-desktop + is triggered + +--- + src/core/prefs.c | 50 ++++++++++++++++++++++++++++++++++++++++++ + src/core/screen.c | 5 +++-- + src/include/prefs.h | 4 +++- + src/org.mate.marco.gschema.xml | 5 +++++ + 4 files changed, 61 insertions(+), 3 deletions(-) + +diff --git a/src/core/prefs.c b/src/core/prefs.c +index 8dd1008..61c957a 100644 +--- a/src/core/prefs.c ++++ b/src/core/prefs.c +@@ -121,6 +121,7 @@ static gboolean show_tab_border = FALSE; + static gboolean center_new_windows = FALSE; + static gboolean force_fullscreen = TRUE; + static gboolean side_by_side_tiling = FALSE; ++static GList *show_desktop_skip_list = NULL; + + static MetaVisualBellType visual_bell_type = META_VISUAL_BELL_FULLSCREEN_FLASH; + static MetaButtonLayout button_layout; +@@ -159,6 +160,7 @@ static void titlebar_handler (MetaPreference, const gchar*, gboolean*); + static void theme_name_handler (MetaPreference, const gchar*, gboolean*); + static void mouse_button_mods_handler (MetaPreference, const gchar*, gboolean*); + static void button_layout_handler (MetaPreference, const gchar*, gboolean*); ++static void show_desktop_skip_list_handler (MetaPreference, const gchar*, gboolean*); + + static gboolean update_binding (MetaKeyPref *binding, + gchar *value); +@@ -467,6 +469,12 @@ static MetaStringPreference preferences_string[] = + NULL, + &cursor_theme, + }, ++ { "show-desktop-skip-list", ++ KEY_GENERAL_SCHEMA, ++ META_PREF_SHOW_DESKTOP_SKIP_LIST, ++ &show_desktop_skip_list_handler, ++ NULL, ++ }, + { NULL, NULL, 0, NULL, NULL }, + }; + +@@ -1085,6 +1093,18 @@ meta_prefs_get_cursor_size (void) + return cursor_size; + } + ++gboolean ++meta_prefs_is_in_skip_list (char *class) ++{ ++ GList *item; ++ ++ for (item = show_desktop_skip_list; item; item = item->next) ++ { ++ if (!g_ascii_strcasecmp (class, item->data)) ++ return TRUE; ++ } ++ return FALSE; ++} + + /****************************************************************************/ + /* Handlers for string preferences. */ +@@ -1172,6 +1192,33 @@ mouse_button_mods_handler (MetaPreference pref, + } + } + ++static void ++show_desktop_skip_list_handler (MetaPreference pref, ++ const gchar *string_value, ++ gboolean *inform_listeners) ++{ ++ gchar **tokens; ++ gchar **tok; ++ GList *item; ++ ++ if (show_desktop_skip_list) ++ { ++ for (item = show_desktop_skip_list; item; item = item->next) ++ g_free (item->data); ++ g_list_free (show_desktop_skip_list); ++ show_desktop_skip_list = NULL; ++ } ++ ++ if (!(tokens = g_strsplit (string_value, ",", -1))) ++ return; ++ for (tok = tokens; tok && *tok; tok++) ++ { ++ gchar *stripped = g_strstrip (g_strdup (*tok)); ++ show_desktop_skip_list = g_list_prepend (show_desktop_skip_list, stripped); ++ } ++ g_strfreev (tokens); ++} ++ + static gboolean + button_layout_equal (const MetaButtonLayout *a, + const MetaButtonLayout *b) +@@ -1576,6 +1623,9 @@ meta_preference_to_string (MetaPreference pref) + + case META_PREF_PLACEMENT_MODE: + return "PLACEMENT_MODE"; ++ ++ case META_PREF_SHOW_DESKTOP_SKIP_LIST: ++ return "SHOW_DESKTOP_SKIP_LIST"; + } + + return "(unknown)"; +diff --git a/src/core/screen.c b/src/core/screen.c +index 34016d5..98ecf4d 100644 +--- a/src/core/screen.c ++++ b/src/core/screen.c +@@ -2447,7 +2447,7 @@ queue_windows_showing (MetaScreen *screen) + { + MetaWindow *w = tmp->data; + +- if (w->screen == screen) ++ if (w->screen == screen && !meta_prefs_is_in_skip_list (w->res_class)) + meta_window_queue (w, META_QUEUE_CALC_SHOWING); + + tmp = tmp->next; +@@ -2501,7 +2501,8 @@ meta_screen_show_desktop (MetaScreen *screen, + MetaWindow *w = windows->data; + + if (w->screen == screen && +- w->type == META_WINDOW_DESKTOP) ++ w->type == META_WINDOW_DESKTOP && ++ !meta_prefs_is_in_skip_list (w->res_class)) + { + meta_window_focus (w, timestamp); + break; +diff --git a/src/include/prefs.h b/src/include/prefs.h +index 0898308..8617864 100644 +--- a/src/include/prefs.h ++++ b/src/include/prefs.h +@@ -66,7 +66,8 @@ typedef enum + META_PREF_CENTER_NEW_WINDOWS, + META_PREF_SIDE_BY_SIDE_TILING, + META_PREF_FORCE_FULLSCREEN, +- META_PREF_PLACEMENT_MODE ++ META_PREF_PLACEMENT_MODE, ++ META_PREF_SHOW_DESKTOP_SKIP_LIST + } MetaPreference; + + typedef void (* MetaPrefsChangedFunc) (MetaPreference pref, +@@ -129,6 +130,7 @@ gboolean meta_prefs_get_compositing_fast_alt_tab (void); + gboolean meta_prefs_get_center_new_windows (void); + gboolean meta_prefs_get_force_fullscreen (void); + gboolean meta_prefs_show_tab_border (void); ++gboolean meta_prefs_is_in_skip_list (char *class); + + /** + * Sets whether the compositor is turned on. +diff --git a/src/org.mate.marco.gschema.xml b/src/org.mate.marco.gschema.xml +index 5ffb062..cfa4feb 100644 +--- a/src/org.mate.marco.gschema.xml ++++ b/src/org.mate.marco.gschema.xml +@@ -186,6 +186,11 @@ + Window placement mode + The window placement mode indicates how new windows are positioned. "automatic" means the system chooses a location automatically based on the space available on the desktop, or by a simple cascade if there is no space; "pointer" means that new windows are placed according to the mouse pointer position; "manual" means that the user must manually place the new window with the mouse or keyboard. + ++ ++ '' ++ List of applications ignored by show-desktop ++ Comma separated class list. Each running GUI application referenced to given windows manager class will be ignored by 'Show Desktop' functionality. ++ + + + +-- +2.7.4 + diff --git a/sources b/sources index 1e370ce..f85c3bf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -45aab08cc469c1415588bbaedbbcac39 marco-1.17.0.tar.xz +SHA512 (marco-1.17.1.tar.xz) = d655e24477b84c58932f07d1a5ff58810c5dad4a0d83e2d28cd718b371742b7f909a6a526ec289a6eeed97da7da9b1b72e7b981c4d990d3372caa4768e8e056c