mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-10-06 01:12:40 +02:00
actions: Add "Save Window Positions" menu
This adds the "Save Window Positions Now" option from Preferences to the Windows menu.
This commit is contained in:
@@ -112,6 +112,12 @@ static const GimpActionEntry windows_actions[] =
|
||||
|
||||
{ "windows-tab-position", NULL, NC_("windows-action",
|
||||
"_Tabs Position") },
|
||||
|
||||
{ "windows-save-positions", NULL,
|
||||
NC_("windows-action", "Save _Window Positions"), NULL, { NULL },
|
||||
NC_("windows-action", "Save the current session layout"),
|
||||
windows_save_positions_cmd_callback,
|
||||
NULL },
|
||||
};
|
||||
|
||||
static const GimpToggleActionEntry windows_toggle_actions[] =
|
||||
@@ -248,6 +254,8 @@ windows_actions_update (GimpActionGroup *group,
|
||||
|
||||
#define SET_ACTIVE(action,condition) \
|
||||
gimp_action_group_set_action_active (group, action, (condition) != 0)
|
||||
#define SET_SENSITIVE(action,condition) \
|
||||
gimp_action_group_set_action_sensitive (group, action, (condition) != 0, NULL)
|
||||
|
||||
SET_ACTIVE ("windows-use-single-window-mode", config->single_window_mode);
|
||||
SET_ACTIVE ("windows-hide-docks", config->hide_docks);
|
||||
@@ -278,7 +286,12 @@ windows_actions_update (GimpActionGroup *group,
|
||||
gimp_action_group_set_action_sensitive (group, "windows-show-tabs", config->single_window_mode,
|
||||
_("Single-window mode disabled"));
|
||||
|
||||
#ifdef GDK_WINDOWING_WAYLAND
|
||||
SET_SENSITIVE ("windows-save-positions", FALSE);
|
||||
#endif
|
||||
|
||||
#undef SET_ACTIVE
|
||||
#undef SET_SENSITIVE
|
||||
}
|
||||
|
||||
gchar *
|
||||
|
@@ -42,6 +42,8 @@
|
||||
|
||||
#include "dialogs/dialogs.h"
|
||||
|
||||
#include "gui/session.h"
|
||||
|
||||
#include "actions.h"
|
||||
#include "dialogs-actions.h"
|
||||
#include "windows-commands.h"
|
||||
@@ -222,3 +224,15 @@ windows_open_recent_cmd_callback (GimpAction *action,
|
||||
|
||||
g_object_unref (info);
|
||||
}
|
||||
|
||||
void
|
||||
windows_save_positions_cmd_callback (GimpAction *action,
|
||||
GVariant *value,
|
||||
gpointer data)
|
||||
{
|
||||
Gimp *gimp;
|
||||
|
||||
return_if_no_gimp (gimp, data);
|
||||
|
||||
session_save (gimp, TRUE);
|
||||
}
|
||||
|
@@ -48,6 +48,9 @@ void windows_show_dock_cmd_callback (GimpAction *action,
|
||||
void windows_open_recent_cmd_callback (GimpAction *action,
|
||||
GVariant *value,
|
||||
gpointer data);
|
||||
void windows_save_positions_cmd_callback (GimpAction *action,
|
||||
GVariant *value,
|
||||
gpointer data);
|
||||
|
||||
|
||||
#endif /* __WINDOWS_COMMANDS_H__ */
|
||||
|
@@ -885,6 +885,7 @@
|
||||
<item><attribute name="action">app.windows-tabs-position-left</attribute></item>
|
||||
<item><attribute name="action">app.windows-tabs-position-right</attribute></item>
|
||||
</submenu>
|
||||
<item><attribute name="action">app.windows-save-positions</attribute></item>
|
||||
<item><attribute name="action">app.windows-use-single-window-mode</attribute></item>
|
||||
</section>
|
||||
</submenu>
|
||||
|
Reference in New Issue
Block a user