[oe-commits] Andreas Müller : xfce4-settings: Remember the settings manager window size

git at git.openembedded.org git at git.openembedded.org
Thu Dec 27 16:16:21 UTC 2012


Module: meta-openembedded.git
Branch: master
Commit: 701f87736f3d745d5948b8a0b8aa0e5838a6a0b6
URL:    http://git.openembedded.org/?p=meta-openembedded.git&a=commit;h=701f87736f3d745d5948b8a0b8aa0e5838a6a0b6

Author: Andreas Müller <schnitzeltony at googlemail.com>
Date:   Sun Dec 23 13:02:35 2012 +0000

xfce4-settings: Remember the settings manager window size

Signed-off-by: Andreas Müller <schnitzeltony at googlemail.com>
Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>

---

 ...the-settings-manager-window-size-bug-9384.patch |  155 ++++++++++++++++++++
 .../xfce4-settings/xfce4-settings_4.10.0.bb        |    3 +-
 2 files changed, 157 insertions(+), 1 deletions(-)

diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/0003-Remember-the-settings-manager-window-size-bug-9384.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/0003-Remember-the-settings-manager-window-size-bug-9384.patch
new file mode 100644
index 0000000..8c1d1d9
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/0003-Remember-the-settings-manager-window-size-bug-9384.patch
@@ -0,0 +1,155 @@
+From b3b1986327b9b42ac6f9442443ff103f6565a323 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Guelfucci?= <jeromeg at xfce.org>
+Date: Wed, 19 Dec 2012 09:53:58 +0100
+Subject: [PATCH] Remember the settings manager window size (bug #9384).
+
+Handy with pluggable dialogs, allows the user to get rid of most of the
+scrollbars.
+
+Upstream-Status: applied
+---
+ xfce4-settings-manager/Makefile.am                 |    2 +
+ xfce4-settings-manager/main.c                      |   13 +++++++
+ .../xfce-settings-manager-dialog.c                 |   38 +++++++++++++++-----
+ 3 files changed, 44 insertions(+), 9 deletions(-)
+
+diff --git a/xfce4-settings-manager/Makefile.am b/xfce4-settings-manager/Makefile.am
+index c6bdc2d..99f9b3f 100644
+--- a/xfce4-settings-manager/Makefile.am
++++ b/xfce4-settings-manager/Makefile.am
+@@ -20,6 +20,7 @@ xfce4_settings_manager_CFLAGS = \
+ 	$(LIBXFCE4UTIL_CFLAGS) \
+ 	$(LIBXFCE4UI_CFLAGS) \
+ 	$(GARCON_CFLAGS) \
++	$(XFCONF_CFLAGS) \
+ 	$(EXO_CFLAGS) \
+ 	$(PLATFORM_CFLAGS)
+ 
+@@ -31,6 +32,7 @@ xfce4_settings_manager_LDADD = \
+ 	$(GTK_LIBS) \
+ 	$(LIBXFCE4UTIL_LIBS) \
+ 	$(LIBXFCE4UI_LIBS) \
++	$(XFCONF_LIBS) \
+ 	$(EXO_LIBS) \
+ 	$(GARCON_LIBS)
+ 
+diff --git a/xfce4-settings-manager/main.c b/xfce4-settings-manager/main.c
+index 3a65879..42bec66 100644
+--- a/xfce4-settings-manager/main.c
++++ b/xfce4-settings-manager/main.c
+@@ -28,6 +28,7 @@
+ #include <gtk/gtk.h>
+ #include <libxfce4util/libxfce4util.h>
+ #include <garcon/garcon.h>
++#include <xfconf/xfconf.h>
+ 
+ #include "xfce-settings-manager-dialog.h"
+ 
+@@ -79,6 +80,16 @@ main(int argc,
+         return EXIT_SUCCESS;
+     }
+ 
++    /* initialize xfconf */
++    if (G_UNLIKELY (!xfconf_init (&error)))
++    {
++        /* print error and leave */
++        g_critical ("Failed to connect to Xfconf daemon: %s", error->message);
++        g_error_free (error);
++
++        return EXIT_FAILURE;
++    }
++
+     garcon_set_environment ("XFCE");
+ 
+     dialog = xfce_settings_manager_dialog_new ();
+@@ -95,5 +106,7 @@ main(int argc,
+ 
+     gtk_main();
+ 
++    xfconf_shutdown ();
++
+     return EXIT_SUCCESS;
+ }
+diff --git a/xfce4-settings-manager/xfce-settings-manager-dialog.c b/xfce4-settings-manager/xfce-settings-manager-dialog.c
+index 043b143..39e33ff 100644
+--- a/xfce4-settings-manager/xfce-settings-manager-dialog.c
++++ b/xfce4-settings-manager/xfce-settings-manager-dialog.c
+@@ -35,6 +35,7 @@
+ 
+ #include <libxfce4util/libxfce4util.h>
+ #include <libxfce4ui/libxfce4ui.h>
++#include <xfconf/xfconf.h>
+ #include <garcon/garcon.h>
+ #include <exo/exo.h>
+ 
+@@ -55,6 +56,7 @@ struct _XfceSettingsManagerDialog
+ {
+     XfceTitledDialog __parent__;
+ 
++    XfconfChannel  *channel;
+     GarconMenu     *menu;
+ 
+     GtkListStore   *store;
+@@ -156,17 +158,19 @@ xfce_settings_manager_dialog_class_init (XfceSettingsManagerDialogClass *klass)
+ static void
+ xfce_settings_manager_dialog_init (XfceSettingsManagerDialog *dialog)
+ {
+-    GtkWidget *scroll;
++    GtkWidget *align;
++    GtkWidget *bbox;
+     GtkWidget *dialog_vbox;
+-    GtkWidget *viewport;
+-    gchar     *path;
+-    GtkWidget *hbox;
++    GtkWidget *ebox;
+     GtkWidget *entry;
+-    GtkWidget *align;
+-    GList     *children;
++    GtkWidget *hbox;
+     GtkWidget *header;
+-    GtkWidget *ebox;
+-    GtkWidget *bbox;
++    GtkWidget *scroll;
++    GtkWidget *viewport;
++    GList     *children;
++    gchar     *path;
++
++    dialog->channel = xfconf_channel_get ("xfce4-settings-manager");
+ 
+     dialog->store = gtk_list_store_new (N_COLUMNS,
+                                         G_TYPE_STRING,
+@@ -180,7 +184,9 @@ xfce_settings_manager_dialog_init (XfceSettingsManagerDialog *dialog)
+     dialog->menu = garcon_menu_new_for_path (path != NULL ? path : MENUFILE);
+     g_free (path);
+ 
+-    gtk_window_set_default_size (GTK_WINDOW (dialog), 640, 500);
++    gtk_window_set_default_size (GTK_WINDOW (dialog),
++      xfconf_channel_get_int (dialog->channel, "/last/window-width", 640),
++      xfconf_channel_get_int (dialog->channel, "/last/window-height", 500));
+     xfce_settings_manager_dialog_set_title (dialog, NULL, NULL, NULL);
+ 
+     dialog->button_back = xfce_gtk_button_new_mixed (GTK_STOCK_GO_BACK, _("All _Settings"));
+@@ -334,6 +340,20 @@ xfce_settings_manager_dialog_response (GtkDialog *widget,
+     }
+     else
+     {
++        GdkWindowState state;
++        gint           width, height;
++
++        /* Don't save the state for full-screen windows */
++        state = gdk_window_get_state (GTK_WIDGET (widget)->window);
++
++        if ((state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN)) == 0)
++        {
++            /* Save window size */
++            gtk_window_get_size (GTK_WINDOW (widget), &width, &height);
++            xfconf_channel_set_int (dialog->channel, "/last/window-width", width),
++            xfconf_channel_set_int (dialog->channel, "/last/window-height", height);
++        }
++
+         gtk_widget_destroy (GTK_WIDGET (widget));
+         gtk_main_quit ();
+     }
+-- 
+1.7.4.4
+
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.10.0.bb b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.10.0.bb
index 9b6205b..aa878ae 100644
--- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.10.0.bb
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.10.0.bb
@@ -3,12 +3,13 @@ SECTION = "x11/wm"
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 DEPENDS = "exo garcon gtk+ libxfce4util libxfce4ui xfconf dbus-glib libxi virtual/libx11 xrandr libnotify libxcursor libxklavier"
-PR = "r2"
+PR = "r3"
 
 inherit xfce
 
 SRC_URI += "file://0001-xsettings.xml-remove-trouble-causing-comment.patch \
             file://0002-xsettings.xml-Set-default-themes.patch \
+            file://0003-Remember-the-settings-manager-window-size-bug-9384.patch \
             file://touchscreen/invisible \
             file://touchscreen/wait \
             file://touchscreen/0001-add-cursor-theme-xfce-invisible.patch \





More information about the Openembedded-commits mailing list