summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Kareh <[email protected]>2026-07-09 12:58:25 -0400
committerLuke from DC <[email protected]>2026-07-27 23:15:29 +0000
commitd4564b24febe9006593d768e23f2b74ac1753ef8 (patch)
tree0caf03ed1f089e55f31145fcdce9991c2a0992fd
parent29c889238c3f5d7c24c37e23167a47acbdbfe660 (diff)
downloadmate-panel-d4564b24febe9006593d768e23f2b74ac1753ef8.tar.bz2
mate-panel-d4564b24febe9006593d768e23f2b74ac1753ef8.tar.xz
panel: When creating an object, explicitly specify how it's packed
Instead of saying whether it's packed to the end, we pass the real pack method. This will enable us to add centered objects. Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/8804c8b37
-rw-r--r--mate-panel/drawer.c6
-rw-r--r--mate-panel/launcher.c2
-rw-r--r--mate-panel/panel-action-button.c3
-rw-r--r--mate-panel/panel-applet-frame.c3
-rw-r--r--mate-panel/panel-layout.c1
-rw-r--r--mate-panel/panel-menu-bar.c3
-rw-r--r--mate-panel/panel-menu-button.c3
-rw-r--r--mate-panel/panel-profile.c20
-rw-r--r--mate-panel/panel-profile.h17
-rw-r--r--mate-panel/panel-separator.c3
10 files changed, 35 insertions, 26 deletions
diff --git a/mate-panel/drawer.c b/mate-panel/drawer.c
index 03d6bd5f..de18f809 100644
--- a/mate-panel/drawer.c
+++ b/mate-panel/drawer.c
@@ -622,7 +622,8 @@ panel_drawer_create (PanelToplevel *toplevel,
{
char *id;
- id = panel_profile_prepare_object (PANEL_OBJECT_DRAWER, toplevel, position, FALSE);
+ id = panel_profile_prepare_object (PANEL_OBJECT_DRAWER, toplevel, position,
+ PANEL_OBJECT_PACK_START);
panel_drawer_prepare (id, custom_icon, use_custom_icon, tooltip, NULL);
@@ -641,7 +642,8 @@ panel_drawer_create_with_id (const char *toplevel_id,
char *id;
char *attached_toplevel_id = NULL;
- id = panel_profile_prepare_object_with_id (PANEL_OBJECT_DRAWER, toplevel_id, position, FALSE);
+ id = panel_profile_prepare_object_with_id (PANEL_OBJECT_DRAWER, toplevel_id, position,
+ PANEL_OBJECT_PACK_START);
panel_drawer_prepare (id, custom_icon, use_custom_icon, tooltip, &attached_toplevel_id);
diff --git a/mate-panel/launcher.c b/mate-panel/launcher.c
index 0385ccea..b42e7036 100644
--- a/mate-panel/launcher.c
+++ b/mate-panel/launcher.c
@@ -1094,7 +1094,7 @@ panel_launcher_create_with_id (const char *toplevel_id,
id = panel_profile_prepare_object_with_id (PANEL_OBJECT_LAUNCHER,
toplevel_id,
position,
- FALSE);
+ PANEL_OBJECT_PACK_START);
path = g_strdup_printf ("%s%s/", PANEL_OBJECT_PATH, id);
settings = g_settings_new_with_path (PANEL_OBJECT_SCHEMA, path);
diff --git a/mate-panel/panel-action-button.c b/mate-panel/panel-action-button.c
index 137399f5..56d775c0 100644
--- a/mate-panel/panel-action-button.c
+++ b/mate-panel/panel-action-button.c
@@ -943,7 +943,8 @@ panel_action_button_create (PanelToplevel *toplevel,
char *id;
char *path;
- id = panel_profile_prepare_object (PANEL_OBJECT_ACTION, toplevel, position, FALSE);
+ id = panel_profile_prepare_object (PANEL_OBJECT_ACTION, toplevel, position,
+ PANEL_OBJECT_PACK_START);
path = g_strdup_printf (PANEL_OBJECT_PATH "%s/", id);
settings = g_settings_new_with_path (PANEL_OBJECT_SCHEMA, path);
diff --git a/mate-panel/panel-applet-frame.c b/mate-panel/panel-applet-frame.c
index f0b5bfa9..03ad98b0 100644
--- a/mate-panel/panel-applet-frame.c
+++ b/mate-panel/panel-applet-frame.c
@@ -1073,7 +1073,8 @@ mate_panel_applet_frame_create (PanelToplevel *toplevel,
g_return_if_fail (iid != NULL);
- id = panel_profile_prepare_object (PANEL_OBJECT_APPLET, toplevel, position, FALSE);
+ id = panel_profile_prepare_object (PANEL_OBJECT_APPLET, toplevel, position,
+ PANEL_OBJECT_PACK_START);
path = g_strdup_printf (PANEL_OBJECT_PATH "%s/", id);
settings = g_settings_new_with_path (PANEL_OBJECT_SCHEMA, path);
diff --git a/mate-panel/panel-layout.c b/mate-panel/panel-layout.c
index d3bda7de..0846a7e7 100644
--- a/mate-panel/panel-layout.c
+++ b/mate-panel/panel-layout.c
@@ -80,6 +80,7 @@ static PanelLayoutKeyDefinition panel_layout_toplevel_keys[] = {
static PanelLayoutKeyDefinition panel_layout_object_keys[] = {
{ PANEL_OBJECT_TYPE_KEY, G_TYPE_STRING },
{ PANEL_OBJECT_TOPLEVEL_ID_KEY, G_TYPE_STRING },
+ { PANEL_OBJECT_PACK_TYPE_KEY, G_TYPE_STRING },
{ PANEL_OBJECT_POSITION_KEY, G_TYPE_INT },
{ PANEL_OBJECT_PANEL_RIGHT_STICK_KEY, G_TYPE_BOOLEAN },
{ PANEL_OBJECT_LOCKED_KEY, G_TYPE_BOOLEAN },
diff --git a/mate-panel/panel-menu-bar.c b/mate-panel/panel-menu-bar.c
index f8bbcc2e..02859825 100644
--- a/mate-panel/panel-menu-bar.c
+++ b/mate-panel/panel-menu-bar.c
@@ -386,7 +386,8 @@ void panel_menu_bar_create(PanelToplevel* toplevel, int position)
{
char* id;
- id = panel_profile_prepare_object(PANEL_OBJECT_MENU_BAR, toplevel, position, FALSE);
+ id = panel_profile_prepare_object(PANEL_OBJECT_MENU_BAR, toplevel, position,
+ PANEL_OBJECT_PACK_START);
panel_profile_add_to_list(PANEL_GSETTINGS_OBJECTS, id);
g_free(id);
}
diff --git a/mate-panel/panel-menu-button.c b/mate-panel/panel-menu-button.c
index e65a99d6..22931c69 100644
--- a/mate-panel/panel-menu-button.c
+++ b/mate-panel/panel-menu-button.c
@@ -969,7 +969,8 @@ panel_menu_button_create (PanelToplevel *toplevel,
const char *scheme;
char *id;
- id = panel_profile_prepare_object (PANEL_OBJECT_MENU, toplevel, position, FALSE);
+ id = panel_profile_prepare_object (PANEL_OBJECT_MENU, toplevel, position,
+ PANEL_OBJECT_PACK_START);
path = g_strdup_printf (PANEL_OBJECT_PATH "%s/", id);
settings = g_settings_new_with_path (PANEL_OBJECT_SCHEMA, path);
diff --git a/mate-panel/panel-profile.c b/mate-panel/panel-profile.c
index 08174fe3..8d9de350 100644
--- a/mate-panel/panel-profile.c
+++ b/mate-panel/panel-profile.c
@@ -1248,10 +1248,10 @@ panel_profile_destroy_toplevel (const char *id)
}
char *
-panel_profile_prepare_object_with_id (PanelObjectType object_type,
- const char *toplevel_id,
- int position,
- gboolean right_stick)
+panel_profile_prepare_object_with_id (PanelObjectType object_type,
+ const char *toplevel_id,
+ int position,
+ PanelObjectPackType pack_type)
{
PanelGSettingsKeyType key_type;
char *id;
@@ -1268,7 +1268,7 @@ panel_profile_prepare_object_with_id (PanelObjectType object_type,
g_settings_set_enum (settings, PANEL_OBJECT_TYPE_KEY, object_type);
g_settings_set_string (settings, PANEL_OBJECT_TOPLEVEL_ID_KEY, toplevel_id);
g_settings_set_int (settings, PANEL_OBJECT_POSITION_KEY, position);
- g_settings_set_boolean (settings, PANEL_OBJECT_PANEL_RIGHT_STICK_KEY, right_stick);
+ g_settings_set_enum (settings, PANEL_OBJECT_PACK_TYPE_KEY, pack_type);
/* Force writing the settings in order to reserve the object ID *now*,
* so that a later call to panel_profile_find_new_id() won't find the same
@@ -1282,15 +1282,15 @@ panel_profile_prepare_object_with_id (PanelObjectType object_type,
}
char *
-panel_profile_prepare_object (PanelObjectType object_type,
- PanelToplevel *toplevel,
- int position,
- gboolean right_stick)
+panel_profile_prepare_object (PanelObjectType object_type,
+ PanelToplevel *toplevel,
+ int position,
+ PanelObjectPackType pack_type)
{
return panel_profile_prepare_object_with_id (object_type,
panel_profile_get_toplevel_id (toplevel),
position,
- right_stick);
+ pack_type);
}
void
diff --git a/mate-panel/panel-profile.h b/mate-panel/panel-profile.h
index 36d4f217..9f480a15 100644
--- a/mate-panel/panel-profile.h
+++ b/mate-panel/panel-profile.h
@@ -32,6 +32,7 @@
#include "panel-toplevel.h"
#include "panel-enums.h"
+#include "panel-enums-gsettings.h"
#include "panel-types.h"
#include "applet.h"
@@ -58,14 +59,14 @@ gboolean panel_profile_id_lists_are_writable (void);
void panel_profile_create_toplevel (GdkScreen *screen);
PanelToplevel *panel_profile_load_toplevel (const char *toplevel_id);
void panel_profile_delete_toplevel (PanelToplevel *toplevel);
-char *panel_profile_prepare_object (PanelObjectType object_type,
- PanelToplevel *toplevel,
- int position,
- gboolean right_stick);
-char *panel_profile_prepare_object_with_id (PanelObjectType object_type,
- const char *toplevel_id,
- int position,
- gboolean right_stick);
+char *panel_profile_prepare_object (PanelObjectType object_type,
+ PanelToplevel *toplevel,
+ int position,
+ PanelObjectPackType pack_type);
+char *panel_profile_prepare_object_with_id (PanelObjectType object_type,
+ const char *toplevel_id,
+ int position,
+ PanelObjectPackType pack_type);
void panel_profile_delete_object (AppletInfo *applet_info);
gboolean panel_profile_key_is_writable (PanelToplevel *toplevel,
diff --git a/mate-panel/panel-separator.c b/mate-panel/panel-separator.c
index 864d3107..8b9829d9 100644
--- a/mate-panel/panel-separator.c
+++ b/mate-panel/panel-separator.c
@@ -263,7 +263,8 @@ panel_separator_create (PanelToplevel *toplevel,
char *id;
id = panel_profile_prepare_object (PANEL_OBJECT_SEPARATOR,
- toplevel, position, FALSE);
+ toplevel,
+ position, PANEL_OBJECT_PACK_START);
panel_profile_add_to_list (PANEL_GSETTINGS_OBJECTS, id);
g_free (id);
}