[nautilus: 2/5] general: Allow running in separate instance



commit df583c2e4aded65da329a9e14279be40d9c397f2
Author: Ernestas Kulik <ernestask gnome org>
Date:   Fri Mar 16 17:24:11 2018 +0200

    general: Allow running in separate instance
    
    When hacking on Nautilus, it is very inconvenient to have to close any
    running instance before running the built version. This commit enables
    running three different instances by changing the application ID.
    Beside the default “profile” is one crafted for stable flatpak
    releases and one for development. The stable flatpak profile adds an
    identifying mark to the about dialog to aid collecting information in
    bug reports. The development profile is that plus additional styling to
    help visually identify the development instance. It also will be used
    when generating Flatpak bundles with the help of CI.
    
    Generally, the implementation is slightly hacky to allow all the
    different workflows, spanning from regular installations to GNOME
    Builder flatpak builds, as each comes with its own quirks.

 .gitlab-ci.yml                                     |  12 +--
 ....Nautilus.json => org.gnome.NautilusDevel.json} |   5 +-
 data/meson.build                                   |  75 ++++++++++++--
 ...xml.in => org.gnome.Nautilus.appdata.xml.in.in} |   2 +-
 ...desktop.in => org.gnome.Nautilus.desktop.in.in} |   2 +-
 data/org.gnome.Nautilus.search-provider.ini        |   5 -
 data/org.gnome.Nautilus.search-provider.ini.in     |   5 +
 data/org.gnome.Nautilus.service.in                 |   2 +-
 eel/meson.build                                    |   1 +
 libnautilus-extension/meson.build                  |   1 +
 meson.build                                        |  41 +++++++-
 meson_options.txt                                  |  10 ++
 src/meson.build                                    |   6 +-
 src/nautilus-application.c                         |  15 ++-
 src/nautilus-dbus-manager.c                        |   2 +-
 src/nautilus-file-utilities.h                      |   4 +-
 src/nautilus-preferences-window.c                  |   2 +-
 src/nautilus-shell-search-provider.c               |   2 +-
 src/nautilus-window.c                              |  12 ++-
 src/resources/css/Adwaita.css                      | 115 +++++++++++++++++++++
 src/resources/ui/nautilus-window.ui                |   1 -
 21 files changed, 281 insertions(+), 39 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 095b5f8a1..106975349 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,14 +17,14 @@ flatpak:master:
     script:
     # This should be removed once the base image works with git submodules
     - dnf install -y git
-    - flatpak-builder --stop-at=nautilus app build-aux/flatpak/org.gnome.Nautilus.json
-    - flatpak-builder --run app build-aux/flatpak/org.gnome.Nautilus.json meson --prefix=/app 
--libdir=/app/lib _build
-    - flatpak-builder --run app build-aux/flatpak/org.gnome.Nautilus.json ninja -C _build install
-    - flatpak-builder --finish-only --repo=repo app build-aux/flatpak/org.gnome.Nautilus.json
+    - flatpak-builder --stop-at=nautilus app build-aux/flatpak/org.gnome.NautilusDevel.json
+    - flatpak-builder --run app build-aux/flatpak/org.gnome.NautilusDevel.json meson --prefix=/app 
--libdir=/app/lib -Dprofile=development _build
+    - flatpak-builder --run app build-aux/flatpak/org.gnome.NautilusDevel.json ninja -C _build install
+    - flatpak-builder --finish-only --repo=repo app build-aux/flatpak/org.gnome.NautilusDevel.json
     # Make a Flatpak Nautilus bundle for people to test
-    - flatpak build-bundle repo nautilus-dev.flatpak org.gnome.Nautilus
+    - flatpak build-bundle repo nautilus-dev.flatpak org.gnome.NautilusDevel
     # Run automatic tests inside the Flatpak env
-    - flatpak-builder --run app build-aux/flatpak/org.gnome.Nautilus.json ninja -C _build test
+    - flatpak-builder --run app build-aux/flatpak/org.gnome.NautilusDevel.json ninja -C _build test
     artifacts:
         paths:
           - nautilus-dev.flatpak
diff --git a/build-aux/flatpak/org.gnome.Nautilus.json b/build-aux/flatpak/org.gnome.NautilusDevel.json
similarity index 96%
rename from build-aux/flatpak/org.gnome.Nautilus.json
rename to build-aux/flatpak/org.gnome.NautilusDevel.json
index 8f186773e..a53f619e6 100644
--- a/build-aux/flatpak/org.gnome.Nautilus.json
+++ b/build-aux/flatpak/org.gnome.NautilusDevel.json
@@ -1,5 +1,5 @@
 {
-    "app-id": "org.gnome.Nautilus",
+    "app-id": "org.gnome.NautilusDevel",
     "runtime": "org.gnome.Platform",
     "runtime-version": "3.28",
     "sdk": "org.gnome.Sdk",
@@ -82,7 +82,8 @@
             "builddir": true,
             "name": "nautilus",
             "config-opts": [
-                "--libdir=/app/lib"
+                "--libdir=/app/lib",
+                "-Dprofile=development"
             ],
             "sources": [
                 {
diff --git a/data/meson.build b/data/meson.build
index 11192d5f7..ab9b853a9 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -1,7 +1,36 @@
-install_subdir(
-  join_paths('icons', 'hicolor'),
-  install_dir: join_paths(datadir, 'icons')
+########## EVIL EVIL EVIL
+# See https://github.com/mesonbuild/meson/issues/1487
+# and https://github.com/mesonbuild/meson/pull/3223
+#
+# This is primarily for the “build profiles” feature,
+# to be able to have icons even if we change the application ID.
+#
+# https://gitlab.gnome.org/GNOME/nautilus/merge_requests/144
+##########
+foreach icon_size: ['16x16', '22x22', '24x24', '32x32', '48x48', '512x512']
+  configure_file(
+    command: [
+      'cp', '@INPUT@', '@OUTPUT@'
+    ],
+    input: files(
+      join_paths('icons', 'hicolor', icon_size, 'apps', 'org.gnome.Nautilus.png')
+    ),
+    install_dir: join_paths(datadir, 'icons', 'hicolor', icon_size, 'apps'),
+    output: '@0@.png'.format(application_id)
+  )
+endforeach
+
+configure_file(
+  command: [
+    'cp', '@INPUT@', '@OUTPUT@'
+  ],
+  input: files(
+    join_paths('icons', 'hicolor', 'symbolic', 'apps', 'org.gnome.Nautilus-symbolic.svg')
+  ),
+  install_dir: join_paths(datadir, 'icons', 'hicolor', 'symbolic', 'apps'),
+  output: '@0 -symbolic svg'.format(application_id)
 )
+##########
 
 po_dir = join_paths(meson.source_root(), 'po')
 
@@ -14,10 +43,18 @@ line_up_parameters = executable(
   ]
 )
 
+desktop_conf = configuration_data()
+
+desktop_conf.set('icon', application_id)
+
 desktop = i18n.merge_file(
   'desktop',
-  input: 'org.gnome.Nautilus.desktop.in',
-  output: 'org.gnome.Nautilus.desktop',
+  input: configure_file(
+    input: files('org.gnome.Nautilus.desktop.in.in'),
+    output: 'org.gnome.Nautilus.desktop.in',
+    configuration: desktop_conf
+  ),
+  output: '@0@.desktop'.format(application_id),
   install: true,
   install_dir: desktopdir,
   po_dir: po_dir,
@@ -34,21 +71,30 @@ desktop_autorun_software = i18n.merge_file(
   type: 'desktop'
 )
 
+appdata_conf = configuration_data()
+
+appdata_conf.set('appid', application_id)
+
 appdata = i18n.merge_file(
   'appdata',
-  input: 'org.gnome.Nautilus.appdata.xml.in',
-  output: 'org.gnome.Nautilus.appdata.xml',
+  input: configure_file(
+    input: files('org.gnome.Nautilus.appdata.xml.in.in'),
+    output: 'org.gnome.Nautilus.appdata.xml.in',
+    configuration: appdata_conf
+  ),
+  output: '@0  appdata xml'.format(application_id),
   install: true,
   install_dir: join_paths(datadir, 'metainfo'),
   po_dir: po_dir
 )
 
 service_conf = configuration_data()
+service_conf.set('appid', application_id)
 service_conf.set('bindir', join_paths(prefix, bindir))
 
 configure_file(
   input: 'org.gnome.Nautilus.service.in',
-  output: 'org.gnome.Nautilus.service',
+  output: '@0@.service'.format(application_id),
   configuration: service_conf,
   install_dir: servicedir
 )
@@ -60,9 +106,16 @@ configure_file(
   install_dir: servicedir
 )
 
-install_data(
-  'org.gnome.Nautilus.search-provider.ini',
-  install_dir: join_paths(datadir, 'gnome-shell', 'search-providers')
+search_provider_conf = configuration_data()
+
+search_provider_conf.set('appid', application_id)
+search_provider_conf.set('profile', profile)
+
+configure_file(
+  configuration: search_provider_conf,
+  input: files('org.gnome.Nautilus.search-provider.ini.in'),
+  install_dir: join_paths(datadir, 'gnome-shell', 'search-providers'),
+  output: '@0  search-provider ini'.format(application_id)
 )
 
 install_data(
diff --git a/data/org.gnome.Nautilus.appdata.xml.in b/data/org.gnome.Nautilus.appdata.xml.in.in
similarity index 97%
rename from data/org.gnome.Nautilus.appdata.xml.in
rename to data/org.gnome.Nautilus.appdata.xml.in.in
index 9ec61d52a..30648b3e6 100644
--- a/data/org.gnome.Nautilus.appdata.xml.in
+++ b/data/org.gnome.Nautilus.appdata.xml.in.in
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <component type="desktop">
-  <id>org.gnome.Nautilus.desktop</id>
+  <id>@appid@.desktop</id>
   <metadata_license>CC0-1.0</metadata_license>
   <project_license>GPL-2.0+</project_license>
   <name>Nautilus</name>
diff --git a/data/org.gnome.Nautilus.desktop.in b/data/org.gnome.Nautilus.desktop.in.in
similarity index 97%
rename from data/org.gnome.Nautilus.desktop.in
rename to data/org.gnome.Nautilus.desktop.in.in
index b7be676f7..32bcab5c5 100644
--- a/data/org.gnome.Nautilus.desktop.in
+++ b/data/org.gnome.Nautilus.desktop.in.in
@@ -5,7 +5,7 @@ Comment=Access and organize files
 Keywords=folder;manager;explore;disk;filesystem;
 Exec=nautilus --new-window %U
 # Translators: Do NOT translate or transliterate this text (this is an icon file name)!
-Icon=org.gnome.Nautilus
+Icon=@icon@
 Terminal=false
 Type=Application
 DBusActivatable=true
diff --git a/data/org.gnome.Nautilus.search-provider.ini.in b/data/org.gnome.Nautilus.search-provider.ini.in
new file mode 100644
index 000000000..0ef7f7910
--- /dev/null
+++ b/data/org.gnome.Nautilus.search-provider.ini.in
@@ -0,0 +1,5 @@
+[Shell Search Provider]
+DesktopId=@appid@.desktop
+BusName=@appid@
+ObjectPath=/org/gnome/Nautilus@profile@/SearchProvider
+Version=2
diff --git a/data/org.gnome.Nautilus.service.in b/data/org.gnome.Nautilus.service.in
index 48fe6fce2..55505ef73 100644
--- a/data/org.gnome.Nautilus.service.in
+++ b/data/org.gnome.Nautilus.service.in
@@ -1,3 +1,3 @@
 [D-BUS Service]
-Name=org.gnome.Nautilus
+Name=@appid@
 Exec=@bindir@/nautilus --gapplication-service
diff --git a/eel/meson.build b/eel/meson.build
index 70419c670..2f577a981 100644
--- a/eel/meson.build
+++ b/eel/meson.build
@@ -27,6 +27,7 @@ libeel_2_sources = [
 ]
 
 libeel_2_deps = [
+  config_h,
   gail,
   glib,
   gtk,
diff --git a/libnautilus-extension/meson.build b/libnautilus-extension/meson.build
index 113c779ad..d62b05c62 100644
--- a/libnautilus-extension/meson.build
+++ b/libnautilus-extension/meson.build
@@ -54,6 +54,7 @@ libnautilus_extension_sources = [
 ]
 
 libnautilus_extension_deps = [
+  config_h,
   glib,
   gtk
 ]
diff --git a/meson.build b/meson.build
index d505f66ce..8f39e36d7 100644
--- a/meson.build
+++ b/meson.build
@@ -92,12 +92,31 @@ xml = dependency('libxml-2.0', version: '>= 2.7.8')
 # Configuration
 conf = configuration_data()
 
-conf.set_quoted('VERSION', meson.project_version())
+if get_option('profile') == 'development'
+  version = '@0@-@VCS_TAG@'.format(meson.project_version())
+  conf.set_quoted('NAME_SUFFIX', ' (Development Snapshot)')
+  profile = 'Devel'
+else
+  if get_option('profile') == 'stable-flatpak'
+    version = '@0@-flatpak'.format(meson.project_version())
+    profile = 'Stable'
+  else
+    version = meson.project_version()
+    profile = ''
+  endif
+  conf.set_quoted('NAME_SUFFIX', '')
+endif
+
+application_id = 'org.gnome.Nautilus@0@'.format(profile)
+
+conf.set_quoted('VERSION', version)
 conf.set_quoted('PACKAGE_VERSION', meson.project_version())
 conf.set_quoted('GETTEXT_PACKAGE', 'nautilus')
 conf.set_quoted('LOCALEDIR', join_paths(prefix, get_option('localedir')))
 conf.set_quoted('NAUTILUS_DATADIR', join_paths(datadir, 'nautilus'))
 conf.set_quoted('NAUTILUS_EXTENSIONDIR', join_paths(prefix, extensiondir))
+conf.set_quoted('APPLICATION_ID', application_id)
+conf.set_quoted('PROFILE', profile)
 
 if get_option('packagekit')
   conf.set10('ENABLE_PACKAGEKIT', true)
@@ -109,7 +128,25 @@ if get_option('selinux')
   conf.set10('HAVE_SELINUX', true)
 endif
 
-configure_file(output: 'config.h', configuration: conf)
+if get_option('profile') == 'development'
+  config_h = declare_dependency(
+    sources: vcs_tag(
+      command: ['git', 'rev-parse', '--short', 'HEAD'],
+      fallback: 'devel',
+      input: configure_file(
+        output: 'config.h.in',
+        configuration: conf
+      ),
+      output: 'config.h'
+    )
+  )
+else
+  configure_file(
+    output: 'config.h',
+    configuration: conf
+  )
+  config_h = dependency('', required: false)
+endif
 #
 
 nautilus_include_dirs = include_directories(
diff --git a/meson_options.txt b/meson_options.txt
index 7b6cc6946..9d514eb76 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -4,3 +4,13 @@ option('extensions', type: 'boolean', value: true)
 option('packagekit', type: 'boolean', value: true)
 option('selinux', type: 'boolean', value: false)
 option('tests', type: 'combo', choices: ['none', 'headless', 'all'], value: 'headless')
+option(
+  'profile',
+  type: 'combo',
+  choices: [
+    'default',
+    'stable-flatpak',
+    'development'
+  ],
+  value: 'default'
+)
diff --git a/src/meson.build b/src/meson.build
index 8601de459..0979128c8 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -266,6 +266,7 @@ libnautilus_sources = [
 ]
 
 nautilus_deps = [
+  config_h,
   eel_2,
   gio_unix,
   gmodule,
@@ -323,6 +324,9 @@ executable(
   'nautilus-autorun-software',
   nautilus_autorun_software_sources,
   include_directories: nautilus_include_dirs,
-  dependencies: gtk,
+  dependencies: [
+    config_h,
+    gtk
+  ],
   install: true
 )
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index 241c809dc..202ba1322 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -245,6 +245,7 @@ nautilus_application_create_window (NautilusApplication *self,
     g_autoptr (GVariant) default_size = NULL;
     gint default_width = 0;
     gint default_height = 0;
+    const gchar *application_id;
 
     g_return_val_if_fail (NAUTILUS_IS_APPLICATION (self), NULL);
     nautilus_profile_start (NULL);
@@ -270,6 +271,16 @@ nautilus_application_create_window (NautilusApplication *self,
                                  MAX (NAUTILUS_WINDOW_MIN_WIDTH, default_width),
                                  MAX (NAUTILUS_WINDOW_MIN_HEIGHT, default_height));
 
+    application_id = g_application_get_application_id (G_APPLICATION (self));
+    if (g_strcmp0 (application_id, "org.gnome.NautilusDevel") == 0)
+    {
+        GtkStyleContext *style_context;
+
+        style_context = gtk_widget_get_style_context (GTK_WIDGET (window));
+
+        gtk_style_context_add_class (style_context, "devel");
+    }
+
     DEBUG ("Creating a new navigation window");
     nautilus_profile_end (NULL);
 
@@ -1253,7 +1264,7 @@ nautilus_application_startup_common (NautilusApplication *self)
      */
     G_APPLICATION_CLASS (nautilus_application_parent_class)->startup (G_APPLICATION (self));
 
-    gtk_window_set_default_icon_name ("org.gnome.Nautilus");
+    gtk_window_set_default_icon_name (APPLICATION_ID);
 
     setup_theme_extensions ();
 
@@ -1535,7 +1546,7 @@ NautilusApplication *
 nautilus_application_new (void)
 {
     return g_object_new (NAUTILUS_TYPE_APPLICATION,
-                         "application-id", "org.gnome.Nautilus",
+                         "application-id", APPLICATION_ID,
                          "flags", G_APPLICATION_HANDLES_COMMAND_LINE | G_APPLICATION_HANDLES_OPEN,
                          "inactivity-timeout", 12000,
                          NULL);
diff --git a/src/nautilus-dbus-manager.c b/src/nautilus-dbus-manager.c
index ae09247e7..3611a2358 100644
--- a/src/nautilus-dbus-manager.c
+++ b/src/nautilus-dbus-manager.c
@@ -171,7 +171,7 @@ nautilus_dbus_manager_register (NautilusDBusManager  *self,
                                 GError              **error)
 {
     return g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (self->file_operations),
-                                             connection, "/org/gnome/Nautilus", error);
+                                             connection, "/org/gnome/Nautilus" PROFILE, error);
 }
 
 void
diff --git a/src/nautilus-file-utilities.h b/src/nautilus-file-utilities.h
index a5a523830..4b2124b3b 100644
--- a/src/nautilus-file-utilities.h
+++ b/src/nautilus-file-utilities.h
@@ -26,7 +26,9 @@
 #include <gio/gio.h>
 #include <gtk/gtk.h>
 
-#define NAUTILUS_DESKTOP_ID "org.gnome.Nautilus.desktop"
+#include <config.h>
+
+#define NAUTILUS_DESKTOP_ID APPLICATION_ID ".desktop"
 
 /* These functions all return something something that needs to be
  * freed with g_free, is not NULL, and is guaranteed to exist.
diff --git a/src/nautilus-preferences-window.c b/src/nautilus-preferences-window.c
index 7a1c05219..48861cfb4 100644
--- a/src/nautilus-preferences-window.c
+++ b/src/nautilus-preferences-window.c
@@ -508,7 +508,7 @@ static void nautilus_preferences_window_setup(GtkBuilder *builder,
     window = GTK_WIDGET (gtk_builder_get_object (builder, "preferences_window"));
     preferences_window = window;
 
-    gtk_window_set_icon_name (GTK_WINDOW (preferences_window), "org.gnome.Nautilus");
+    gtk_window_set_icon_name (GTK_WINDOW (preferences_window), APPLICATION_ID);
 
     g_object_add_weak_pointer (G_OBJECT (window), (gpointer *) &preferences_window);
 
diff --git a/src/nautilus-shell-search-provider.c b/src/nautilus-shell-search-provider.c
index cdadc08d3..56e26e431 100644
--- a/src/nautilus-shell-search-provider.c
+++ b/src/nautilus-shell-search-provider.c
@@ -779,7 +779,7 @@ nautilus_shell_search_provider_register (NautilusShellSearchProvider  *self,
 {
     return g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (self->skeleton),
                                              connection,
-                                             "/org/gnome/Nautilus/SearchProvider", error);
+                                             "/org/gnome/Nautilus" PROFILE "/SearchProvider", error);
 }
 
 void
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 862695bac..dee129eb3 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -2987,6 +2987,7 @@ NautilusWindow *
 nautilus_window_new (GdkScreen *screen)
 {
     return g_object_new (NAUTILUS_TYPE_WINDOW,
+                         "icon-name", APPLICATION_ID,
                          "screen", screen,
                          NULL);
 }
@@ -3071,9 +3072,16 @@ nautilus_window_show_about_dialog (NautilusWindow *window)
         "Sun Microsystems",
         NULL
     };
+    g_autofree gchar *program_name = NULL;
+
+    /* “Files” is the generic application name and the suffix is
+     * an arbitrary and deliberately unlocalized string only shown
+     * in development builds.
+     */
+    program_name = g_strconcat (_("Files"), NAME_SUFFIX, NULL);
 
     gtk_show_about_dialog (window ? GTK_WINDOW (window) : NULL,
-                           "program-name", _("Files"),
+                           "program-name", program_name,
                            "version", VERSION,
                            "comments", _("Access and organize your files."),
                            "copyright", "Copyright © 1999–2018 The Files Authors",
@@ -3086,7 +3094,7 @@ nautilus_window_show_about_dialog (NautilusWindow *window)
                             * box to give credit to the translator(s).
                             */
                            "translator-credits", _("translator-credits"),
-                           "logo-icon-name", "org.gnome.Nautilus",
+                           "logo-icon-name", APPLICATION_ID,
                            NULL);
 }
 
diff --git a/src/resources/css/Adwaita.css b/src/resources/css/Adwaita.css
index 098d0914a..59ab22b02 100644
--- a/src/resources/css/Adwaita.css
+++ b/src/resources/css/Adwaita.css
@@ -4,6 +4,121 @@
     background: @theme_base_color;
 }
 
+.nautilus-window.devel headerbar {
+    background: #cbd2d9 -gtk-icontheme("system-run-symbolic") 70% 0/64px 64px no-repeat, linear-gradient(to 
top, #a5b1bd, #c5cdd5 2px, #cbd2d9 3px);
+    box-shadow: inset 0 1px #f1f3f5;
+    border-color: #909fae;
+    color: rgba(46, 52, 54, 0.2);
+}
+.nautilus-window.devel headerbar > * {
+    color: #2e3436;
+}
+.nautilus-window.devel headerbar > *:backdrop {
+    color: #8b8e8f;
+}
+.nautilus-window.devel headerbar:backdrop {
+    background-image: -gtk-icontheme("system-run-symbolic"), image(#cbd2d9);
+    box-shadow: inset 0 1px #f1f3f5;
+    color: rgba(139, 142, 143, 0.1);
+}
+.nautilus-window.devel headerbar button {
+    color: #2e3436;
+    outline-color: rgba(46, 52, 54, 0.3);
+    border-color: #909fae;
+    border-bottom-color: #738698;
+    background-image: linear-gradient(to bottom, #cbd2d9, #bfc8d0 60%, #aeb9c3);
+    text-shadow: 0 1px rgba(255, 255, 255, 0.76923);
+    -gtk-icon-shadow: 0 1px rgba(255, 255, 255, 0.76923);
+    box-shadow: inset 0 1px rgba(255, 255, 255, 0.6);
+}
+.nautilus-window.devel headerbar button.flat,
+.nautilus-window.devel headerbar button.titlebutton {
+    border-color: transparent;
+    background-color: transparent;
+    background-image: none;
+    box-shadow: inset 0 1px rgba(255, 255, 255, 0);
+    text-shadow: none;
+    -gtk-icon-shadow: none;
+}
+.nautilus-window.devel headerbar button.titlebutton {
+    text-shadow: 0 1px rgba(255, 255, 255, 0.76923);
+    -gtk-icon-shadow: 0 1px rgba(255, 255, 255, 0.76923);
+}
+.nautilus-window.devel headerbar button:hover {
+    color: #2e3436;
+    outline-color: rgba(46, 52, 54, 0.3);
+    border-color: #909fae;
+    border-bottom-color: #738698;
+    text-shadow: 0 1px rgba(255, 255, 255, 0.76923);
+    -gtk-icon-shadow: 0 1px rgba(255, 255, 255, 0.76923);
+    box-shadow: inset 0 1px rgba(255, 255, 255, 0.6);
+    background-image: linear-gradient(to bottom, #dde1e6, #cbd2d9 60%, #bfc8d0);
+}
+.nautilus-window.devel headerbar button:active,
+.nautilus-window.devel headerbar button:checked {
+    color: #2e3436;
+    outline-color: rgba(46, 52, 54, 0.3);
+    border-color: #909fae;
+    background-image: image(#b9c3cc);
+    box-shadow: inset 0 1px rgba(255, 255, 255, 0);
+    text-shadow: none;
+    -gtk-icon-shadow: none;
+}
+.nautilus-window.devel headerbar button:disabled {
+    border-color: #909fae;
+    background-image: image(#d3d9df);
+    text-shadow: none;
+    -gtk-icon-shadow: none;
+    box-shadow: inset 0 1px rgba(255, 255, 255, 0);
+}
+.nautilus-window.devel headerbar button:disabled label,
+.nautilus-window.devel headerbar button:disabled {
+    color: #8b8e8f;
+}
+.nautilus-window.devel headerbar button:backdrop {
+    border-color: #cbd2d9;
+    background-image: image(#cbd2d9);
+    text-shadow: none;
+    -gtk-icon-shadow: none;
+    box-shadow: inset 0 1px rgba(255, 255, 255, 0);
+    border-color: #909fae;
+}
+.nautilus-window.devel headerbar button:backdrop label,
+.nautilus-window.devel headerbar button:backdrop {
+    color: #8b8e8f;
+}
+.nautilus-window.devel headerbar button:backdrop:active {
+    border-color: #bbc5ce;
+    background-image: image(#bbc5ce);
+    box-shadow: inset 0 1px rgba(255, 255, 255, 0);
+    border-color: #909fae;
+}
+.nautilus-window.devel headerbar button:backdrop:active label,
+.nautilus-window.devel headerbar button:backdrop:active {
+        color: #8b8e8f;
+}
+.nautilus-window.devel headerbar button:backdrop:disabled {
+    border-color: #d3d9df;
+    background-image: image(#d3d9df);
+    text-shadow: none;
+    -gtk-icon-shadow: none;
+    box-shadow: inset 0 1px rgba(255, 255, 255, 0);
+    border-color: #909fae;
+}
+.nautilus-window.devel headerbar button:backdrop:disabled label,
+.nautilus-window.devel headerbar button:backdrop:disabled {
+    color: #999fa4;
+}
+.nautilus-window.devel headerbar button.flat:backdrop,
+.nautilus-window.devel headerbar button.titlebutton:backdrop {
+    border-color: transparent;
+    background-color: transparent;
+    background-image: none;
+    box-shadow: inset 0 1px rgba(255, 255, 255, 0);
+    text-shadow: none;
+    -gtk-icon-shadow: none;
+}
+
 .nautilus-canvas-item {
     border-radius: 5px;
 }
diff --git a/src/resources/ui/nautilus-window.ui b/src/resources/ui/nautilus-window.ui
index ba988b325..52efc2ecc 100644
--- a/src/resources/ui/nautilus-window.ui
+++ b/src/resources/ui/nautilus-window.ui
@@ -3,7 +3,6 @@
   <template class="NautilusWindow" parent="GtkApplicationWindow">
     <property name="show-menubar">False</property>
     <property name="title" translatable="yes">_Files</property>
-    <property name="icon-name">org.gnome.Nautilus</property>
     <child type="titlebar">
       <object class="NautilusToolbar" id="toolbar">
         <!-- We override the title widget so the GtkHeaderBar stop managing the


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]