summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yml281
-rw-r--r--.travis.yml19
-rw-r--r--NEWS2
-rw-r--r--applets/clock/clock-location-tile.c6
-rw-r--r--applets/clock/clock.c19
-rw-r--r--applets/clock/clock.ui3
-rw-r--r--applets/notification_area/status-notifier/sn-item-v0.c7
-rw-r--r--applets/wncklet/window-list.c61
-rw-r--r--configure.ac2
-rw-r--r--libmate-panel-applet/mate-panel-applet-gsettings.c18
-rw-r--r--mate-panel/panel-menu-button.c2
-rw-r--r--mate-panel/panel-profile.c18
12 files changed, 359 insertions, 79 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 00000000..ba2e0155
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,281 @@
+name: CI Build
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+ workflow_dispatch:
+
+# cancel already running builds of the same branch or pull request
+concurrency:
+ group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.head_ref || github.sha }}
+ cancel-in-progress: true
+
+env:
+ MATE_PANEL_DEP: 1.28.2
+ CONFIGURE_FLAGS: --enable-compile-warnings=maximum
+ CFLAGS: -g -O2 -Werror=pointer-arith -Werror=implicit-function-declaration
+ JOBS: 2
+ DEBUG: 1
+ # Useful URL: https://github.com/mate-desktop/debian-packages
+ # Useful URL: https://salsa.debian.org/debian-mate-team/mate-panel
+ DEB_LIBRARY_DEPS: |
+ libatk1.0-dev
+ libcairo2-dev
+ libdconf-dev
+ libgirepository1.0-dev
+ libglib2.0-dev
+ libgtk-3-dev
+ libgtk-layer-shell-dev
+ libice-dev
+ libmate-desktop-dev
+ libmate-menu-dev
+ libmateweather-dev
+ libpango1.0-dev
+ libsm-dev
+ libsoup2.4-dev
+ libwnck-3-dev
+ libx11-dev
+ libxrandr-dev
+ # mate-desktop dependencies
+ DEB_LIBRARY_DEPS_MATE_DESKTOP: |
+ libgirepository1.0-dev
+ DEB_BUILD_DEPS: |
+ ccache
+ autoconf-archive
+ autopoint
+ gir1.2-freedesktop
+ git
+ gobject-introspection
+ gtk-doc-tools
+ lsb-release
+ make
+ mate-common
+ meson
+ yelp-tools
+ # mate-desktop dependencies
+ DEB_BUILD_DEPS_MATE_DESKTOP: |
+ iso-codes
+ gobject-introspection
+ # TODO
+ DEB_SCAN_BUILD_DEPS: |
+ clang
+ clang-tools
+ # Useful URL: https://git.archlinux.org/svntogit/community.git/tree/mate-panel
+ ARCH_BUILD_DEPS: |
+ ccache
+ autoconf-archive
+ clang
+ gcc
+ git
+ glib2-devel
+ gobject-introspection
+ gtk-layer-shell
+ itstool
+ libcanberra
+ libmateweather
+ libsm
+ libwnck3
+ make
+ mate-common
+ mate-desktop
+ mate-menus
+ meson
+ which
+ yelp-tools
+ # mate-desktop dependencies
+ ARCH_BUILD_DEPS_MATE_DESKTOP: |
+ iso-codes
+ gobject-introspection
+
+jobs:
+ build:
+ name: Build on ${{matrix.container}} with in-process=${{matrix.in-process}} (using ${{matrix.cc}})
+ runs-on: ubuntu-latest
+ container: ${{matrix.container}}
+
+ strategy:
+ fail-fast: false # don't cancel other jobs in the matrix if one fails
+ matrix:
+ in-process: [all, none]
+ container: ['debian:testing', 'ubuntu:rolling', 'archlinux:latest']
+ cc: ['gcc']
+ cxx: ['g++']
+ include:
+ # test with clang on archlinux:latest
+ - container: 'archlinux:latest'
+ cc: 'clang'
+ cxx: 'clang++'
+ in-process: all
+ - container: 'archlinux:latest'
+ cc: 'clang'
+ cxx: 'clang++'
+ in-process: none
+
+ env:
+ # Speed up build with ccache
+ CC: ccache ${{matrix.cc}}
+ CXX: ccache ${{matrix.cxx}}
+ # root install path for the mate-desktop dependency
+ MATE_DESKTOP_INSTALL_PATH: ${{github.workspace}}/mate-desktop-install
+
+ steps:
+ # We can't *extend* the environment in 'env' directly, so use GITHUB_ENV
+ # output variable to do so.
+ - name: Setup environment
+ run: |
+ echo "PATH=${MATE_DESKTOP_INSTALL_PATH}/bin:${PATH}" >> "$GITHUB_ENV"
+ echo "PKG_CONFIG_PATH=${MATE_DESKTOP_INSTALL_PATH}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV"
+
+ # Debugging
+ - name: Show environment
+ run: env | sort
+ if: ${{ env.DEBUG == '1' }}
+
+ # For Debian and Ubuntu (apt-based with reasonably compatible packages)
+ - name: Install dependencies
+ if: ${{ startsWith(matrix.container, 'debian:') || startsWith(matrix.container, 'ubuntu:') }}
+ run: |
+ apt-get update -qq
+ apt-get install --assume-yes --no-install-recommends \
+ ${DEB_BUILD_DEPS} ${DEB_BUILD_DEPS_MATE_DESKTOP} \
+ ${DEB_LIBRARY_DEPS} ${DEB_LIBRARY_DEPS_MATE_DESKTOP}
+
+ # For ArchLinux
+ - name: Install dependencies
+ if: ${{ startsWith(matrix.container, 'archlinux:') }}
+ # don't upgrade, although told otherwise (see link below), because
+ # apparently in the container it doesn't quit work...
+ # https://wiki.archlinux.org/title/System_maintenance#Partial_upgrades_are_unsupported
+ run: |
+ pacman --noconfirm -Syu
+ pacman --noconfirm -S ${ARCH_BUILD_DEPS} ${ARCH_BUILD_DEPS_MATE_DESKTOP}
+
+ # Checkout the repository
+ - uses: actions/checkout@v3
+ with:
+ path: mate-panel
+ submodules: true
+
+ # Setup ccache cache
+ - name: ccache
+ uses: hendrikmuhs/[email protected]
+ with:
+ key: ${{ github.job }}-${{ matrix.container }}-${{ matrix.cc }}
+
+ # Cache the build of the mate-desktop dependency
+ - name: Cache mate-desktop v${{env.MATE_PANEL_DEP}} dependency
+ uses: actions/cache@v3
+ id: cache-mate-desktop
+ with:
+ path: ${{env.MATE_DESKTOP_INSTALL_PATH}}
+ # We try and be as specific as possible not to use the wrongly cached
+ # build, as this is a *binary*.
+ key: ${{runner.os}}-${{runner.arch}}-${{matrix.container}}-build-mate-desktop-${{env.MATE_PANEL_DEP}}
+
+ # Checkout mate-desktop dep, if not already cached
+ - name: Checkout mate-desktop v${{env.MATE_PANEL_DEP}}
+ uses: actions/checkout@v3
+ if: ${{ steps.cache-mate-desktop.outputs.cache-hit != 'true' }}
+ with:
+ repository: mate-desktop/mate-desktop
+ ref: v${{env.MATE_PANEL_DEP}}
+ path: mate-desktop
+ submodules: true
+
+ # Build and install mate-desktop dep, if not already cached
+ - name: Install mate-desktop v${{env.MATE_PANEL_DEP}}
+ if: ${{ steps.cache-mate-desktop.outputs.cache-hit != 'true' }}
+ run: |
+ cd mate-desktop
+ NOCONFIGURE=1 ./autogen.sh
+ { ./configure --prefix="${MATE_DESKTOP_INSTALL_PATH}" || { cat config.log; exit 1; } ; }
+ make -j ${{ env.JOBS }}
+ make -j ${{ env.JOBS }} install
+
+ # Follows regular mate-panel build and test steps
+
+ - name: Configure
+ run: |
+ cd mate-panel
+ NOCONFIGURE=1 ./autogen.sh
+ { ./configure ${CONFIGURE_FLAGS} --with-in-process-applets=${{matrix.in-process}} || { cat config.log; exit 1; } ; }
+
+ - name: Build
+ run: make -C mate-panel -j ${{ env.JOBS }}
+
+ - name: Run Tests
+ run: make -C mate-panel -j ${{ env.JOBS }} check
+
+ - name: Run distcheck
+ # We only run distcheck on one container, because it takes time and
+ # doesn't seem so useful to repeat everywhere -- it mostly checks the
+ # build system itself, rather than the build.
+ if: ${{ startsWith(matrix.container, 'debian:') }}
+ run: make -C mate-panel -j ${{ env.JOBS }} distcheck
+
+ # Do we need the real build for cppcheck run? I don't think so
+ cppcheck:
+ name: Run cppcheck
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+ with:
+ submodules: true
+
+ # Install code dependencies so that cppcheck has more info
+ - name: Install dependencies
+ run: |
+ sudo apt-get update -qq
+ sudo apt-get install --assume-yes --no-install-recommends \
+ cppcheck ${DEB_LIBRARY_DEPS} ${DEB_LIBRARY_DEPS_MATE_DESKTOP}
+
+ # - define relevant configuration I can think of
+ # - X11-related stuff
+ # - Wayland-related stuff
+ # - in-process for Wayland
+ # - optional features
+ # - _Noreturn: this is to avoid false positive with functions that
+ # don't return, like g_assert(false). Here, we rely on G_NORETURN
+ # (GLib 2.68+) using _Noreturn C11 attribute if __STDC_VERSION__ is
+ # high enough (cppcheck sets it for us in newer versions, but not on
+ # here yet); but the version of cppcheck we run on don't know about
+ # the C11 attribute, so map it to the GCC one it does know.
+ # This is a tad over-specific, but it removes some spurious warnings,
+ # and defining e.g. __GNUC__=12 is simpler, but is a *lot* slower
+ # (more than 3 times slower), and doesn't seem to yield other
+ # benefits for the moment.
+ # - -I flags from pkg-config (grepped from configure.ac)
+ # - ignore non-source directories
+ - name: cppcheck
+ env:
+ checks: warning,style,performance,portability,information,missingInclude
+ defines: >
+ -DHAVE_X11 -DHAVE_RANDR
+ -DHAVE_WAYLAND
+ -DCLOCK_INPROCESS -DFISH_INPROCESS -DNOTIFICATION_AREA_INPROCESS -DWNCKLET_INPROCESS
+ -DHAVE_WINDOW_PREVIEWS
+ -DHAVE_LANGINFO_H -DHAVE_NL_LANGINFO
+ -DGETTEXT_PACKAGE="mate-panel"
+ -D__STDC_VERSION__=201112 -D_Noreturn=__attribute__((__noreturn__))
+ packages: >
+ gdk-pixbuf-2.0
+ gio-unix-2.0
+ gmodule-2.0
+ gtk+-3.0
+ ice
+ libwnck-3.0
+ mate-desktop-2.0
+ sm
+ run: |
+ cppcheck --enable="$checks" \
+ -j $JOBS \
+ $defines \
+ $(pkg-config --cflags-only-I $packages) \
+ -i gtk-layer-shell-build \
+ -i mate-panel/mate-submodules/ \
+ .
diff --git a/.travis.yml b/.travis.yml
index cd82a933..12de5f7c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,7 +20,9 @@ before_install:
- chmod +x docker-build gen-index
install:
- - pip3 install PyGithub
+ - sudo apt-get install -y python3-pip python3-setuptools
+ - sudo pip3 install --upgrade pip
+ - sudo pip3 install PyGithub
- ./docker-build --name ${DISTRO} --config .build.yml --install
script:
@@ -38,9 +40,17 @@ notifications:
on_success: never
on_failure: always
+before_deploy:
+ - yes | gem update --system --force
+ - gem install bundler
+ - gem install faraday-net_http -v '3.3.0' # Avoid faraday version problem
+ - gem install uri
+ - gem install logger
+
deploy:
- provider: pages
- edge: true
+ edge:
+ branch: v2.0.5
token: $GITHUB_TOKEN
keep_history: false
committer_from_gh: true
@@ -51,7 +61,8 @@ deploy:
all_branches: true
condition: ${DISTRO} =~ ^fedora.*$
- provider: script
- edge: true
+ edge:
+ branch: v2.0.5
script: ./docker-build --verbose --config .build.yml --release github
on:
tags: true
@@ -70,6 +81,6 @@ after_success:
env:
# - DISTRO="archlinux:latest"
- - DISTRO="debian:testing"
+# - DISTRO="debian:testing"
- DISTRO="fedora:latest"
# - DISTRO="ubuntu:rolling"
diff --git a/NEWS b/NEWS
index 439d0511..372cd54d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+### mate-panel 1.29.0
+
### mate-panel 1.28.1
* Build: require mate-desktop 1.28.2
diff --git a/applets/clock/clock-location-tile.c b/applets/clock/clock-location-tile.c
index e9260a31..385d0da1 100644
--- a/applets/clock/clock-location-tile.c
+++ b/applets/clock/clock-location-tile.c
@@ -434,7 +434,7 @@ format_time (struct tm *now,
* weekday differs from the weekday at the location
* (the %A expands to the weekday). The %p expands to
* am/pm. */
- format = _("%l:%M <small>%p (%A)</small>");
+ format = _("%_I:%M <small>%p (%A)</small>");
}
else {
/* Translators: This is a strftime format string.
@@ -451,7 +451,7 @@ format_time (struct tm *now,
* It is used to display the time in 12-hours format
* (eg, like in the US: 8:10 am). The %p expands to
* am/pm. */
- format = _("%l:%M <small>%p</small>");
+ format = _("%_I:%M <small>%p</small>");
}
else {
/* Translators: This is a strftime format string.
@@ -497,7 +497,7 @@ convert_time_to_str (time_t now, ClockFormat clock_format)
* It is used to display the time in 12-hours format (eg, like
* in the US: 8:10 am). The %p expands to am/pm.
*/
- format = _("%l:%M %p");
+ format = _("%_I:%M %p");
}
else {
/* Translators: This is a strftime format string.
diff --git a/applets/clock/clock.c b/applets/clock/clock.c
index f97e56af..fee7edf2 100644
--- a/applets/clock/clock.c
+++ b/applets/clock/clock.c
@@ -458,7 +458,7 @@ get_updated_timeformat (ClockData *cd)
/* Translators: This is a strftime format string.
* It is used to display the time in 12-hours format (eg, like
* in the US: 8:10 am). The %p expands to am/pm. */
- time_format = cd->showseconds ? _("%l:%M:%S %p") : _("%l:%M %p");
+ time_format = cd->showseconds ? _("%_I:%M:%S %p") : _("%_I:%M %p");
else
/* Translators: This is a strftime format string.
* It is used to display the time in 24-hours format (eg, like
@@ -1248,6 +1248,7 @@ location_tile_need_clock_format_cb(ClockLocationTile *tile, gpointer data)
static void
create_cities_section (ClockData *cd)
{
+ GtkWidget *cities_box;
GSList *node;
GSList *cities;
GSList *l;
@@ -1261,8 +1262,16 @@ create_cities_section (ClockData *cd)
g_slist_free (cd->location_tiles);
cd->location_tiles = NULL;
- cd->cities_section = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
- gtk_container_set_border_width (GTK_CONTAINER (cd->cities_section), 0);
+ cd->cities_section = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (cd->cities_section),
+ GTK_POLICY_NEVER,
+ GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (cd->cities_section),
+ GTK_SHADOW_NONE);
+ gtk_scrolled_window_set_propagate_natural_height (GTK_SCROLLED_WINDOW (cd->cities_section),
+ TRUE);
+
+ cities_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
cities = cd->locations;
if (g_slist_length (cities) == 0) {
@@ -1284,7 +1293,7 @@ create_cities_section (ClockData *cd)
g_signal_connect (city, "need-clock-format",
G_CALLBACK (location_tile_need_clock_format_cb), cd);
- gtk_box_pack_start (GTK_BOX (cd->cities_section),
+ gtk_box_pack_start (GTK_BOX (cities_box),
GTK_WIDGET (city),
FALSE, FALSE, 0);
@@ -1295,6 +1304,8 @@ create_cities_section (ClockData *cd)
g_slist_free (node);
+ gtk_container_add (GTK_CONTAINER (cd->cities_section), cities_box);
+
gtk_box_pack_end (GTK_BOX (cd->clock_vbox),
cd->cities_section, FALSE, FALSE, 0);
diff --git a/applets/clock/clock.ui b/applets/clock/clock.ui
index fb62507c..b4c4f1b8 100644
--- a/applets/clock/clock.ui
+++ b/applets/clock/clock.ui
@@ -606,8 +606,9 @@
<object class="GtkScrolledWindow" id="scrolledwindow10">
<property name="visible">True</property>
<property name="can-focus">True</property>
+ <property name="expand">True</property>
<property name="hscrollbar-policy">never</property>
- <property name="vscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">automatic</property>
<property name="shadow-type">in</property>
<child>
<object class="GtkTreeView" id="cities_list">
diff --git a/applets/notification_area/status-notifier/sn-item-v0.c b/applets/notification_area/status-notifier/sn-item-v0.c
index 9deab9d3..9e66f361 100644
--- a/applets/notification_area/status-notifier/sn-item-v0.c
+++ b/applets/notification_area/status-notifier/sn-item-v0.c
@@ -287,7 +287,12 @@ update (SnItemV0 *v0)
if (pixbuf && icon_size > 1)
{
/*An icon specified by path and filename may be the wrong size for the tray */
- pixbuf = gdk_pixbuf_scale_simple (pixbuf, icon_size-2, icon_size-2, GDK_INTERP_BILINEAR);
+ GdkPixbuf *scaled_pixbuf;
+
+ scaled_pixbuf = gdk_pixbuf_scale_simple (pixbuf, icon_size-2, icon_size-2, GDK_INTERP_BILINEAR);
+ g_object_unref (pixbuf);
+ pixbuf = scaled_pixbuf;
+
surface = gdk_cairo_surface_create_from_pixbuf (pixbuf, scale, NULL);
}
if (pixbuf)
diff --git a/applets/wncklet/window-list.c b/applets/wncklet/window-list.c
index a87649b1..93785cc1 100644
--- a/applets/wncklet/window-list.c
+++ b/applets/wncklet/window-list.c
@@ -71,8 +71,6 @@ typedef struct {
gboolean needs_hints;
#endif
- GtkIconTheme* icon_theme;
-
/* Properties: */
GtkWidget* properties_dialog;
GtkWidget* wayland_info_label;
@@ -205,11 +203,6 @@ static void response_cb(GtkWidget* widget, int id, TasklistData* tasklist)
}
}
-static void applet_realized(MatePanelApplet* applet, TasklistData* tasklist)
-{
- tasklist->icon_theme = gtk_icon_theme_get_for_screen(gtk_widget_get_screen(tasklist->applet));
-}
-
static void applet_change_orient(MatePanelApplet* applet, MatePanelAppletOrient orient, TasklistData* tasklist)
{
GtkOrientation new_orient;
@@ -781,55 +774,6 @@ static void applet_size_allocate(GtkWidget *widget, GtkAllocation *allocation, T
mate_panel_applet_set_size_hints(MATE_PANEL_APPLET(tasklist->applet), size_hints, len, 0);
}
-#ifdef HAVE_X11
-/* Currently only used on X11, but should work on Wayland as well when needed */
-static GdkPixbuf* icon_loader_func(const char* icon, int size, unsigned int flags, void* data)
-{
- TasklistData* tasklist;
- GdkPixbuf* retval;
- char* icon_no_extension;
- char* p;
-
- tasklist = data;
-
- if (icon == NULL || strcmp(icon, "") == 0)
- return NULL;
-
- if (g_path_is_absolute(icon))
- {
- if (g_file_test(icon, G_FILE_TEST_EXISTS))
- {
- return gdk_pixbuf_new_from_file_at_size(icon, size, size, NULL);
- }
- else
- {
- char* basename;
-
- basename = g_path_get_basename(icon);
- retval = icon_loader_func(basename, size, flags, data);
- g_free(basename);
-
- return retval;
- }
- }
-
- /* This is needed because some .desktop files have an icon name *and*
- * an extension as icon */
- icon_no_extension = g_strdup(icon);
- p = strrchr(icon_no_extension, '.');
-
- if (p && (strcmp(p, ".png") == 0 || strcmp(p, ".xpm") == 0 || strcmp(p, ".svg") == 0))
- {
- *p = 0;
- }
-
- retval = gtk_icon_theme_load_icon(tasklist->icon_theme, icon_no_extension, size, 0, NULL);
- g_free(icon_no_extension);
-
- return retval;
-}
-#endif /* HAVE_X11 */
-
gboolean window_list_applet_fill(MatePanelApplet* applet)
{
TasklistData* tasklist;
@@ -898,8 +842,6 @@ gboolean window_list_applet_fill(MatePanelApplet* applet)
{
tasklist->tasklist = wnck_tasklist_new();
- wnck_tasklist_set_icon_loader(WNCK_TASKLIST(tasklist->tasklist), icon_loader_func, tasklist, NULL);
-
#ifdef HAVE_WINDOW_PREVIEWS
g_signal_connect (tasklist->tasklist, "task-enter-notify",
G_CALLBACK (applet_enter_notify_event),
@@ -935,9 +877,6 @@ gboolean window_list_applet_fill(MatePanelApplet* applet)
gtk_container_add(GTK_CONTAINER(tasklist->applet), tasklist->tasklist);
- g_signal_connect (tasklist->applet, "realize",
- G_CALLBACK (applet_realized),
- tasklist);
g_signal_connect (tasklist->applet, "change-orient",
G_CALLBACK (applet_change_orient),
tasklist);
diff --git a/configure.ac b/configure.ac
index 97db8b60..f0b45e2a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT([mate-panel], [1.28.1], [https://github.com/mate-desktop/mate-panel/issues],
+AC_INIT([mate-panel], [1.29.0], [https://github.com/mate-desktop/mate-panel/issues],
[mate-panel], [https://mate-desktop.org])
AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE([1.9 no-dist-gzip dist-xz tar-ustar -Wno-portability check-news])
diff --git a/libmate-panel-applet/mate-panel-applet-gsettings.c b/libmate-panel-applet/mate-panel-applet-gsettings.c
index 82867639..93d0b4ce 100644
--- a/libmate-panel-applet/mate-panel-applet-gsettings.c
+++ b/libmate-panel-applet/mate-panel-applet-gsettings.c
@@ -90,8 +90,21 @@ add_to_dict (GVariant *dict, const gchar *schema, const gchar *path)
static void
register_dconf_editor_relocatable_schema (const gchar *schema, const gchar *path)
{
- GSettings *dconf_editor_settings;
- dconf_editor_settings = g_settings_new ("ca.desrt.dconf-editor.Settings");
+ GSettingsSchemaSource *source;
+ GSettingsSchema *dconf_editor_schema;
+ GSettings *dconf_editor_settings;
+
+ source = g_settings_schema_source_get_default ();
+
+ if (! source)
+ return;
+
+ dconf_editor_schema = g_settings_schema_source_lookup (source, "ca.desrt.dconf-editor.Settings", FALSE);
+
+ if (! dconf_editor_schema)
+ return;
+
+ dconf_editor_settings = g_settings_new_full (dconf_editor_schema, NULL, NULL);
if (dconf_editor_settings && g_settings_is_writable (dconf_editor_settings, "relocatable-schemas-user-paths")) {
GVariant *relocatable_schemas = g_settings_get_value (dconf_editor_settings, "relocatable-schemas-user-paths");
@@ -108,6 +121,7 @@ register_dconf_editor_relocatable_schema (const gchar *schema, const gchar *path
}
g_object_unref (dconf_editor_settings);
+ g_settings_schema_unref (dconf_editor_schema);
}
GSettings *
diff --git a/mate-panel/panel-menu-button.c b/mate-panel/panel-menu-button.c
index 92925fd8..e65a99d6 100644
--- a/mate-panel/panel-menu-button.c
+++ b/mate-panel/panel-menu-button.c
@@ -694,6 +694,8 @@ panel_menu_button_load (const char *menu_path,
return;
}
+ gtk_widget_set_name (GTK_WIDGET (button), "mate-panel-main-menu-button");
+
button->priv->applet_id = g_strdup (info->id);
mate_panel_applet_add_callback (info, "help", "help-browser", _("_Help"), NULL);
diff --git a/mate-panel/panel-profile.c b/mate-panel/panel-profile.c
index b637563a..ac08fc16 100644
--- a/mate-panel/panel-profile.c
+++ b/mate-panel/panel-profile.c
@@ -862,8 +862,21 @@ remove_from_dict (GVariant *dict, const gchar *path)
static void
unregister_dconf_editor_relocatable_schema (const gchar *path)
{
- GSettings *dconf_editor_settings;
- dconf_editor_settings = g_settings_new ("ca.desrt.dconf-editor.Settings");
+ GSettingsSchemaSource *source;
+ GSettingsSchema *dconf_editor_schema;
+ GSettings *dconf_editor_settings;
+
+ source = g_settings_schema_source_get_default ();
+
+ if (! source)
+ return;
+
+ dconf_editor_schema = g_settings_schema_source_lookup (source, "ca.desrt.dconf-editor.Settings", FALSE);
+
+ if (! dconf_editor_schema)
+ return;
+
+ dconf_editor_settings = g_settings_new_full (dconf_editor_schema, NULL, NULL);
if (dconf_editor_settings && g_settings_is_writable (dconf_editor_settings, "relocatable-schemas-user-paths")) {
GVariant *relocatable_schemas = g_settings_get_value (dconf_editor_settings, "relocatable-schemas-user-paths");
@@ -878,6 +891,7 @@ unregister_dconf_editor_relocatable_schema (const gchar *path)
}
g_object_unref (dconf_editor_settings);
+ g_settings_schema_unref (dconf_editor_schema);
}