summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/builds.yml16
-rwxr-xr-x.github/workflows/marco.sh187
-rw-r--r--.github/workflows/release.yml12
-rw-r--r--capplets/about-me/mate-about-me-password.c2
-rw-r--r--capplets/default-applications/mate-default-applications-properties.ui1
-rw-r--r--capplets/keyboard/mate-keyboard-properties-dialog.ui1
-rw-r--r--capplets/windows/mate-window-properties.c73
-rw-r--r--capplets/windows/window-properties.ui239
-rw-r--r--configure.ac17
-rw-r--r--font-viewer/font-view.c4
-rw-r--r--meson.build2
11 files changed, 521 insertions, 33 deletions
diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml
index 4387c97c..4f512ecb 100644
--- a/.github/workflows/builds.yml
+++ b/.github/workflows/builds.yml
@@ -16,6 +16,7 @@ concurrency:
env:
MATE_DESKTOP_VERSION: 1.28.2
+ MARCO_VERSION: 1.29.0
CACHE_PATH: /tmp/.cache
jobs:
@@ -69,7 +70,7 @@ jobs:
pacman --noconfirm -Sy git || true
echo "::endgroup::"
- name: Repository checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
submodules: "true"
- name: Install dependency packages
@@ -81,7 +82,7 @@ jobs:
# INFO: M-C-C depends mate-desktop 1.27.1+, so we should install it from source.
- name: Cache mate-desktop binary packages
- uses: actions/cache@v3
+ uses: actions/cache@v5
id: cache-mate-desktop
with:
path: ${{ env.CACHE_PATH }}
@@ -90,5 +91,16 @@ jobs:
run: .github/workflows/mate-desktop.sh ${{env.MATE_DESKTOP_VERSION}} ${{ env.CACHE_PATH }}
# INFO: M-C-C depends mate-desktop 1.27.1+, install finished.
+ # INFO: M-C-C depends on marco 1.29.0+, so we should install it from source.
+ - name: Cache marco binary packages
+ uses: actions/cache@v5
+ id: cache-marco
+ with:
+ path: ${{ env.CACHE_PATH }}
+ key: ${{ env.DISTRO }}-build-marco-${{env.MARCO_VERSION}}
+ - name: Built and install marco from source
+ run: .github/workflows/marco.sh ${{env.MARCO_VERSION}} ${{ env.CACHE_PATH }}
+ # INFO: M-C-C depends on marco 1.29.0+, install finished.
+
- name: Build the source code
run: .github/workflows/builds.sh
diff --git a/.github/workflows/marco.sh b/.github/workflows/marco.sh
new file mode 100755
index 00000000..4d7917ea
--- /dev/null
+++ b/.github/workflows/marco.sh
@@ -0,0 +1,187 @@
+#!/usr/bin/bash
+
+set -e
+set -o pipefail
+
+NAME="marco"
+TEMP_DIR=$(mktemp -d)
+OS=$(cat /etc/os-release | grep ^ID | head -n 1 | awk -F= '{ print $2}')
+TAG=$1
+CACHE_DIR=$2
+
+# Use grouped output messages
+infobegin() {
+ echo "::group::${1}"
+}
+infoend() {
+ echo "::endgroup::"
+}
+
+# Required packages to build marco
+arch_requires=(
+ autoconf-archive
+ gcc
+ git
+ glib2
+ gtk3
+ intltool
+ libcanberra
+ libgtop
+ libxpresent
+ libxres
+ make
+ mate-common
+ mate-desktop
+ which
+ yelp-tools
+ zenity
+)
+
+debian_requires=(
+ autoconf-archive
+ autopoint
+ gcc
+ git
+ intltool
+ libcanberra-gtk3-dev
+ libglib2.0-dev
+ libgtk-3-dev
+ libgtop2-dev
+ libice-dev
+ libmate-desktop-dev
+ libpango1.0-dev
+ libsm-dev
+ libstartup-notification0-dev
+ libx11-dev
+ libxcomposite-dev
+ libxcursor-dev
+ libxdamage-dev
+ libxext-dev
+ libxfixes-dev
+ libxinerama-dev
+ libxpresent-dev
+ libxrandr-dev
+ libxrender-dev
+ libxres-dev
+ libxt-dev
+ make
+ mate-common
+ x11proto-present-dev
+ yelp-tools
+ zenity
+)
+
+fedora_requires=(
+ desktop-file-utils
+ gcc
+ gtk3-devel
+ libSM-devel
+ libXdamage-devel
+ libXpresent-devel
+ libXres-devel
+ libcanberra-devel
+ libgtop2-devel
+ libsoup-devel
+ make
+ mate-common
+ mate-desktop-devel
+ redhat-rpm-config
+ startup-notification-devel
+ yelp-tools
+ zenity
+)
+
+ubuntu_requires=(
+ autoconf-archive
+ autopoint
+ gcc
+ git
+ intltool
+ libcanberra-gtk3-dev
+ libglib2.0-dev
+ libgtk-3-dev
+ libgtop2-dev
+ libice-dev
+ libmate-desktop-dev
+ libpango1.0-dev
+ libsm-dev
+ libstartup-notification0-dev
+ libx11-dev
+ libxcomposite-dev
+ libxcursor-dev
+ libxdamage-dev
+ libxext-dev
+ libxfixes-dev
+ libxinerama-dev
+ libxpresent-dev
+ libxrandr-dev
+ libxrender-dev
+ libxres-dev
+ libxt-dev
+ make
+ mate-common
+ x11proto-present-dev
+ yelp-tools
+ zenity
+)
+
+requires=$(eval echo '${'"${OS}_requires[@]}")
+
+infobegin "Install Depends for marco"
+case ${OS} in
+arch)
+ pacman --noconfirm -Syu
+ pacman --noconfirm -S ${requires[@]}
+ ;;
+debian | ubuntu)
+ apt-get update -qq
+ env DEBIAN_FRONTEND=noninteractive \
+ apt-get install --assume-yes --no-install-recommends ${requires[@]}
+ ;;
+fedora)
+ dnf update -y
+ dnf install -y ${requires[@]}
+ ;;
+esac
+infoend
+
+# Use cached packages first
+if [ -f $CACHE_DIR/${NAME}-${TAG}.tar.xz ]; then
+ echo "Found cache package, reuse it"
+ tar -C / -Jxf $CACHE_DIR/${NAME}-${TAG}.tar.xz
+else
+ git clone --recurse-submodules https://github.com/mate-desktop/${NAME}
+
+ # Foldable output information
+ infobegin "Configure"
+ cd ${NAME}
+ git checkout v${TAG}
+ if [[ ${OS} == "debian" || ${OS} == "ubuntu" ]]; then
+ ./autogen.sh --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu --libexecdir=/usr/lib/x86_64-linux-gnu || {
+ cat config.log
+ exit 1
+ }
+ else
+ ./autogen.sh --prefix=/usr || {
+ cat config.log
+ exit 1
+ }
+ fi
+ infoend
+
+ infobegin "Build"
+ make -j ${JOBS}
+ infoend
+
+ infobegin "Install"
+ make install
+ infoend
+
+ # Cache this package version
+ infobegin "Cache"
+ [ -d ${CACHE_DIR} ] || mkdir -p ${CACHE_DIR}
+ make install DESTDIR=${TEMP_DIR}
+ cd $TEMP_DIR
+ tar -J -cf $CACHE_DIR/${NAME}-${TAG}.tar.xz *
+ infoend
+fi
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 2134f9ac..e2c37e42 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -6,6 +6,7 @@ on:
env:
MATE_DESKTOP_VERSION: 1.28.2
+ MARCO_VERSION: 1.29.0
CACHE_PATH: /tmp/.cache
jobs:
@@ -14,21 +15,24 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Repository checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v6
with:
submodules: "true"
- name: Install dependency packages
run: sudo .github/workflows/ubuntu.sh
- - name: Install higher version Mate component packages
+ - name: Install higher version mate-desktop component packages
run: sudo .github/workflows/mate-desktop.sh ${{env.MATE_DESKTOP_VERSION}} ${{ env.CACHE_PATH }}
+ - name: Install higher version marco component packages
+ run: sudo .github/workflows/marco.sh ${{env.MARCO_VERSION}} ${{ env.CACHE_PATH }}
+
- name: Build the source code
- run: .github/workflows/builds.sh
+ run: .github/workflows/builds.sh autotools
- name: Install GH CLI
- uses: dev-hanz-ops/[email protected]
+ uses: dev-hanz-ops/[email protected]
with:
gh-cli-version: 2.39.1
diff --git a/capplets/about-me/mate-about-me-password.c b/capplets/about-me/mate-about-me-password.c
index 2b4f0441..6d739f6f 100644
--- a/capplets/about-me/mate-about-me-password.c
+++ b/capplets/about-me/mate-about-me-password.c
@@ -474,7 +474,7 @@ io_watch_stdout (GIOChannel *source, GIOCondition condition, PasswordDialog *pdi
/* Which response did we get? */
passdlg_set_busy (pdialog, FALSE);
- if (g_strrstr (str->str, "New password: ") != NULL) {
+ if ((g_strrstr (str->str, "New password: ") != NULL) || (g_strrstr (str->str, "Enter new password: ") != NULL)) {
/* Authentication successful */
authenticated_user (pdialog, FALSE);
diff --git a/capplets/default-applications/mate-default-applications-properties.ui b/capplets/default-applications/mate-default-applications-properties.ui
index 20c094fe..29b922be 100644
--- a/capplets/default-applications/mate-default-applications-properties.ui
+++ b/capplets/default-applications/mate-default-applications-properties.ui
@@ -28,6 +28,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
+ <property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area">
<property name="visible">True</property>
diff --git a/capplets/keyboard/mate-keyboard-properties-dialog.ui b/capplets/keyboard/mate-keyboard-properties-dialog.ui
index d59710ec..35e41216 100644
--- a/capplets/keyboard/mate-keyboard-properties-dialog.ui
+++ b/capplets/keyboard/mate-keyboard-properties-dialog.ui
@@ -140,7 +140,6 @@
<property name="label" translatable="yes">_Close</property>
<property name="visible">True</property>
<property name="can-focus">True</property>
- <property name="has-focus">True</property>
<property name="can-default">True</property>
<property name="has-default">True</property>
<property name="receives-default">False</property>
diff --git a/capplets/windows/mate-window-properties.c b/capplets/windows/mate-window-properties.c
index ccccb03c..45bf0062 100644
--- a/capplets/windows/mate-window-properties.c
+++ b/capplets/windows/mate-window-properties.c
@@ -50,6 +50,10 @@
#define MARCO_SHOW_TAB_BORDER_KEY "show-tab-border"
#define MARCO_BUTTON_LAYOUT_KEY "button-layout"
#define MARCO_DOUBLE_CLICK_TITLEBAR_KEY "action-double-click-titlebar"
+#define MARCO_MIDDLE_CLICK_TITLEBAR_KEY "action-middle-click-titlebar"
+#define MARCO_RIGHT_CLICK_TITLEBAR_KEY "action-right-click-titlebar"
+#define MARCO_SCROLL_UP_TITLEBAR_KEY "action-scroll-up-titlebar"
+#define MARCO_SCROLL_DOWN_TITLEBAR_KEY "action-scroll-down-titlebar"
#define MARCO_FOCUS_KEY "focus-mode"
#define MARCO_AUTORAISE_KEY "auto-raise"
#define MARCO_AUTORAISE_DELAY_KEY "auto-raise-delay"
@@ -77,14 +81,20 @@ static const char *button_layout [MARCO_BUTTON_LAYOUT_COUNT] = {
/* keep following enums in sync with marco */
enum
{
- ACTION_TITLEBAR_TOGGLE_SHADE,
+ ACTION_TITLEBAR_CLOSE,
+ ACTION_TITLEBAR_MINIMIZE,
ACTION_TITLEBAR_TOGGLE_MAXIMIZE,
ACTION_TITLEBAR_TOGGLE_MAXIMIZE_HORIZONTALLY,
ACTION_TITLEBAR_TOGGLE_MAXIMIZE_VERTICALLY,
- ACTION_TITLEBAR_MINIMIZE,
- ACTION_TITLEBAR_NONE,
+ ACTION_TITLEBAR_TOGGLE_SHADE,
+ ACTION_TITLEBAR_SHADE,
+ ACTION_TITLEBAR_UNSHADE,
+ ACTION_TITLEBAR_RAISE,
ACTION_TITLEBAR_LOWER,
- ACTION_TITLEBAR_MENU
+ ACTION_TITLEBAR_TOGGLE_STICK,
+ ACTION_TITLEBAR_TOGGLE_ABOVE,
+ ACTION_TITLEBAR_MENU,
+ ACTION_TITLEBAR_NONE
};
enum
@@ -108,6 +118,10 @@ static GtkWidget *dialog_win;
static GtkWidget *show_tab_border_checkbutton;
static GtkWidget *compositing_fast_alt_tab_checkbutton;
static GtkWidget *double_click_titlebar_optionmenu;
+static GtkWidget *middle_click_titlebar_optionmenu;
+static GtkWidget *right_click_titlebar_optionmenu;
+static GtkWidget *scroll_up_titlebar_optionmenu;
+static GtkWidget *scroll_down_titlebar_optionmenu;
static GtkWidget *focus_mode_checkbutton;
static GtkWidget *focus_mode_mouse_checkbutton;
static GtkWidget *autoraise_checkbutton;
@@ -208,6 +222,38 @@ double_click_titlebar_changed_callback (GtkWidget *optionmenu,
gtk_combo_box_get_active (GTK_COMBO_BOX (optionmenu)));
}
+static void
+middle_click_titlebar_changed_callback (GtkWidget *optionmenu,
+ void *data)
+{
+ g_settings_set_enum (marco_settings, MARCO_MIDDLE_CLICK_TITLEBAR_KEY,
+ gtk_combo_box_get_active (GTK_COMBO_BOX (optionmenu)));
+}
+
+static void
+right_click_titlebar_changed_callback (GtkWidget *optionmenu,
+ void *data)
+{
+ g_settings_set_enum (marco_settings, MARCO_RIGHT_CLICK_TITLEBAR_KEY,
+ gtk_combo_box_get_active (GTK_COMBO_BOX (optionmenu)));
+}
+
+static void
+scroll_up_titlebar_changed_callback (GtkWidget *optionmenu,
+ void *data)
+{
+ g_settings_set_enum (marco_settings, MARCO_SCROLL_UP_TITLEBAR_KEY,
+ gtk_combo_box_get_active (GTK_COMBO_BOX (optionmenu)));
+}
+
+static void
+scroll_down_titlebar_changed_callback (GtkWidget *optionmenu,
+ void *data)
+{
+ g_settings_set_enum (marco_settings, MARCO_SCROLL_DOWN_TITLEBAR_KEY,
+ gtk_combo_box_get_active (GTK_COMBO_BOX (optionmenu)));
+}
+
static gchar *custom_titlebar_button_layout = NULL;
static void
@@ -373,6 +419,10 @@ main (int argc, char **argv)
gtk_builder_add_callback_symbols (builder,
"on_dialog_win_response", G_CALLBACK (response_cb),
"on_double_click_titlebar_optionmenu_changed", G_CALLBACK (double_click_titlebar_changed_callback),
+ "on_middle_click_titlebar_optionmenu_changed", G_CALLBACK (middle_click_titlebar_changed_callback),
+ "on_right_click_titlebar_optionmenu_changed", G_CALLBACK (right_click_titlebar_changed_callback),
+ "on_scroll_up_titlebar_optionmenu_changed", G_CALLBACK (scroll_up_titlebar_changed_callback),
+ "on_scroll_down_titlebar_optionmenu_changed", G_CALLBACK (scroll_down_titlebar_changed_callback),
"on_autoraise_delay_spinbutton_value_changed", G_CALLBACK (autoraise_delay_spinbutton_value_callback),
"on_titlebar_layout_optionmenu_changed", G_CALLBACK (titlebar_layout_changed_callback),
"on_focus_mode_checkbutton_toggled", G_CALLBACK (mouse_focus_toggled_callback),
@@ -398,6 +448,10 @@ main (int argc, char **argv)
show_tab_border_checkbutton = GET_WIDGET ("show_tab_border_checkbutton");
compositing_fast_alt_tab_checkbutton = GET_WIDGET ("compositing_fast_alt_tab_checkbutton");
double_click_titlebar_optionmenu = GET_WIDGET ("double_click_titlebar_optionmenu");
+ middle_click_titlebar_optionmenu = GET_WIDGET ("middle_click_titlebar_optionmenu");
+ right_click_titlebar_optionmenu = GET_WIDGET ("right_click_titlebar_optionmenu");
+ scroll_up_titlebar_optionmenu = GET_WIDGET ("scroll_up_titlebar_optionmenu");
+ scroll_down_titlebar_optionmenu = GET_WIDGET ("scroll_down_titlebar_optionmenu");
focus_mode_checkbutton = GET_WIDGET ("focus_mode_checkbutton");
focus_mode_mouse_checkbutton = GET_WIDGET ("focus_mode_mouse_checkbutton");
autoraise_delay_hbox = GET_WIDGET ("autoraise_delay_hbox");
@@ -427,14 +481,19 @@ main (int argc, char **argv)
gtk_combo_box_set_active (GTK_COMBO_BOX (double_click_titlebar_optionmenu),
g_settings_get_enum (marco_settings, MARCO_DOUBLE_CLICK_TITLEBAR_KEY));
+ gtk_combo_box_set_active (GTK_COMBO_BOX (middle_click_titlebar_optionmenu),
+ g_settings_get_enum (marco_settings, MARCO_MIDDLE_CLICK_TITLEBAR_KEY));
+ gtk_combo_box_set_active (GTK_COMBO_BOX (right_click_titlebar_optionmenu),
+ g_settings_get_enum (marco_settings, MARCO_RIGHT_CLICK_TITLEBAR_KEY));
+ gtk_combo_box_set_active (GTK_COMBO_BOX (scroll_up_titlebar_optionmenu),
+ g_settings_get_enum (marco_settings, MARCO_SCROLL_UP_TITLEBAR_KEY));
+ gtk_combo_box_set_active (GTK_COMBO_BOX (scroll_down_titlebar_optionmenu),
+ g_settings_get_enum (marco_settings, MARCO_SCROLL_DOWN_TITLEBAR_KEY));
set_titlebar_button_layout ();
set_alt_click_value ();
- gtk_combo_box_set_active (GTK_COMBO_BOX (double_click_titlebar_optionmenu),
- g_settings_get_enum (marco_settings, MARCO_DOUBLE_CLICK_TITLEBAR_KEY));
-
/* Behaviour */
g_settings_bind (marco_settings,
MARCO_SHOW_TAB_BORDER_KEY,
diff --git a/capplets/windows/window-properties.ui b/capplets/windows/window-properties.ui
index 140ab21b..aa531869 100644
--- a/capplets/windows/window-properties.ui
+++ b/capplets/windows/window-properties.ui
@@ -51,12 +51,15 @@ Author: Robert Buj
<property name="modal">True</property>
<property name="icon-name">preferences-system-windows</property>
<property name="type-hint">normal</property>
+ <property name="border-width">5</property>
<signal name="response" handler="on_dialog_win_response" swapped="no"/>
<child internal-child="vbox">
<object class="GtkBox" id="main_vbox">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="orientation">vertical</property>
+ <property name="border-width">2</property>
+ <property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox">
<property name="visible">True</property>
@@ -106,7 +109,7 @@ Author: Robert Buj
<object class="GtkNotebook" id="nb">
<property name="visible">True</property>
<property name="can-focus">True</property>
- <property name="border-width">6</property>
+ <property name="border-width">5</property>
<child>
<object class="GtkBox" id="behaviour_vbox">
<property name="visible">True</property>
@@ -276,11 +279,19 @@ Author: Robert Buj
<property name="visible">True</property>
<property name="can-focus">False</property>
<items>
- <item translatable="yes">Roll up</item>
- <item translatable="yes">Maximize</item>
- <item translatable="yes">Maximize Horizontally</item>
- <item translatable="yes">Maximize Vertically</item>
+ <item translatable="yes">Close</item>
<item translatable="yes">Minimize</item>
+ <item translatable="yes">Toggle Maximize</item>
+ <item translatable="yes">Toggle Maximize Horizontally</item>
+ <item translatable="yes">Toggle Maximize Vertically</item>
+ <item translatable="yes">Toggle Shade</item>
+ <item translatable="yes">Shade</item>
+ <item translatable="yes">Unshade</item>
+ <item translatable="yes">Raise</item>
+ <item translatable="yes">Lower</item>
+ <item translatable="yes">Toggle Stick</item>
+ <item translatable="yes">Toggle Above</item>
+ <item translatable="yes">Menu</item>
<item translatable="yes">None</item>
</items>
<signal name="changed" handler="on_double_click_titlebar_optionmenu_changed" swapped="no"/>
@@ -295,7 +306,223 @@ Author: Robert Buj
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">8</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="middle_click_titlebar_action_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="middle_click_titlebar_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_Middle-click titlebar action:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">middle_click_titlebar_optionmenu</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="middle_click_titlebar_optionmenu">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <items>
+ <item translatable="yes">Close</item>
+ <item translatable="yes">Minimize</item>
+ <item translatable="yes">Toggle Maximize</item>
+ <item translatable="yes">Toggle Maximize Horizontally</item>
+ <item translatable="yes">Toggle Maximize Vertically</item>
+ <item translatable="yes">Toggle Shade</item>
+ <item translatable="yes">Shade</item>
+ <item translatable="yes">Unshade</item>
+ <item translatable="yes">Raise</item>
+ <item translatable="yes">Lower</item>
+ <item translatable="yes">Toggle Stick</item>
+ <item translatable="yes">Toggle Above</item>
+ <item translatable="yes">Menu</item>
+ <item translatable="yes">None</item>
+ </items>
+ <signal name="changed" handler="on_middle_click_titlebar_optionmenu_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="right_click_titlebar_action_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="right_click_titlebar_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_Right-click titlebar action:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">right_click_titlebar_optionmenu</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="right_click_titlebar_optionmenu">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <items>
+ <item translatable="yes">Close</item>
+ <item translatable="yes">Minimize</item>
+ <item translatable="yes">Toggle Maximize</item>
+ <item translatable="yes">Toggle Maximize Horizontally</item>
+ <item translatable="yes">Toggle Maximize Vertically</item>
+ <item translatable="yes">Toggle Shade</item>
+ <item translatable="yes">Shade</item>
+ <item translatable="yes">Unshade</item>
+ <item translatable="yes">Raise</item>
+ <item translatable="yes">Lower</item>
+ <item translatable="yes">Toggle Stick</item>
+ <item translatable="yes">Toggle Above</item>
+ <item translatable="yes">Menu</item>
+ <item translatable="yes">None</item>
+ </items>
+ <signal name="changed" handler="on_right_click_titlebar_optionmenu_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="scroll_up_titlebar_action_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="scroll_up_titlebar_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">_Scroll up titlebar action:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">scroll_up_titlebar_optionmenu</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="scroll_up_titlebar_optionmenu">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <items>
+ <item translatable="yes">Close</item>
+ <item translatable="yes">Minimize</item>
+ <item translatable="yes">Toggle Maximize</item>
+ <item translatable="yes">Toggle Maximize Horizontally</item>
+ <item translatable="yes">Toggle Maximize Vertically</item>
+ <item translatable="yes">Toggle Shade</item>
+ <item translatable="yes">Shade</item>
+ <item translatable="yes">Unshade</item>
+ <item translatable="yes">Raise</item>
+ <item translatable="yes">Lower</item>
+ <item translatable="yes">Toggle Stick</item>
+ <item translatable="yes">Toggle Above</item>
+ <item translatable="yes">Menu</item>
+ <item translatable="yes">None</item>
+ </items>
+ <signal name="changed" handler="on_scroll_up_titlebar_optionmenu_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox" id="scroll_down_titlebar_action_hbox">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="scroll_down_titlebar_label">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="label" translatable="yes">Scroll _down titlebar action:</property>
+ <property name="use-underline">True</property>
+ <property name="mnemonic-widget">scroll_down_titlebar_optionmenu</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="scroll_down_titlebar_optionmenu">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <items>
+ <item translatable="yes">Close</item>
+ <item translatable="yes">Minimize</item>
+ <item translatable="yes">Toggle Maximize</item>
+ <item translatable="yes">Toggle Maximize Horizontally</item>
+ <item translatable="yes">Toggle Maximize Vertically</item>
+ <item translatable="yes">Toggle Shade</item>
+ <item translatable="yes">Shade</item>
+ <item translatable="yes">Unshade</item>
+ <item translatable="yes">Raise</item>
+ <item translatable="yes">Lower</item>
+ <item translatable="yes">Toggle Stick</item>
+ <item translatable="yes">Toggle Above</item>
+ <item translatable="yes">Menu</item>
+ <item translatable="yes">None</item>
+ </items>
+ <signal name="changed" handler="on_scroll_down_titlebar_optionmenu_changed" swapped="no"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
</packing>
</child>
</object>
diff --git a/configure.ac b/configure.ac
index c0e1cd0d..22630de7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,7 +69,7 @@ AC_SUBST(SCREENSAVER_LIBS)
GLIB_REQUIRED=2.64.0
SYSTEMD_REQUIRED=248
GTK_REQUIRED=3.22.0
-MARCO_REQUIRED=1.17.0
+MARCO_REQUIRED=1.29.0
MATEKBD_REQUIRED=1.17.0
MATE_DESKTOP_REQUIRED=1.27.1
APPINDICATOR_REQUIRED=0.0.13
@@ -179,16 +179,11 @@ AS_IF([test "x$enable_appindicator" = xyes],
have_systemd=no
AC_ARG_ENABLE(systemd, AS_HELP_STRING([--disable-systemd], [disable systemd support]),enable_systemd="$enableval",enable_systemd=auto)
-if test "x$enable_systemd" != "xno"; then
- PKG_CHECK_MODULES(SYSTEMD, [libsystemd], [have_systemd=yes],
- [PKG_CHECK_MODULES(SYSTEMD, [libsystemd >= $SYSTEMD_REQUIRED],
- [have_systemd=yes])])
- if test "x$have_systemd" = xno && test "x$enable_systemd" = xyes; then
- AC_MSG_ERROR([*** systemd support requested but libraries not found])
- elif test "x$have_systemd" = xyes; then
- AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is available])
- fi
-fi
+AS_CASE(["$enable_systemd"],
+ [yes], [PKG_CHECK_MODULES(SYSTEMD, [libsystemd >= $SYSTEMD_REQUIRED], [have_systemd=yes])],
+ [auto], [PKG_CHECK_MODULES(SYSTEMD, [libsystemd >= $SYSTEMD_REQUIRED], [have_systemd=yes], [have_systemd=no])],
+ [have_systemd=no])
+AS_IF([test "x$have_systemd" = xyes], [AC_DEFINE(HAVE_SYSTEMD, 1, [Define if systemd is available])])
AM_CONDITIONAL(HAVE_SYSTEMD, [test "$have_systemd" = "yes"])
diff --git a/font-viewer/font-view.c b/font-viewer/font-view.c
index 406b051b..dcbcb658 100644
--- a/font-viewer/font-view.c
+++ b/font-viewer/font-view.c
@@ -658,6 +658,8 @@ font_view_application_do_open (FontViewApplication *self,
gtk_widget_show_all (self->swin_preview);
gtk_notebook_set_current_page (GTK_NOTEBOOK (self->notebook), 1);
+
+ gtk_window_present (GTK_WINDOW (self->main_window));
}
static gboolean
@@ -933,6 +935,8 @@ font_view_application_activate (GApplication *application)
G_APPLICATION_CLASS (font_view_application_parent_class)->activate (application);
font_view_application_do_overview (self);
+
+ gtk_window_present (GTK_WINDOW (self->main_window));
}
static void
diff --git a/meson.build b/meson.build
index fc28a15d..e8db74cd 100644
--- a/meson.build
+++ b/meson.build
@@ -68,7 +68,7 @@ gtk_dep = dependency('gtk+-3.0', version: '>= 3.22.0')
gio_dep = dependency('gio-2.0')
glib_dep = dependency('glib-2.0', version: '>= 2.64.0')
mate_desktop_dep = dependency('mate-desktop-2.0', version: '>= 1.27.1')
-marco_dep = dependency('libmarco-private', version: '>= 1.17.0')
+marco_dep = dependency('libmarco-private', version: '>= 1.29.0')
menu_dep = dependency('libmate-menu', version: '>= 1.21.0')
libxml_dep = dependency('libxml-2.0')
pango_dep = dependency('pango')