[Glade-devel] [patch, glade3] glade_utils_hide_window



--=-DMvZxdF5rGpyAAkoca/j
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Hi!

The attached patch introduces glade_utils_hide_window(), a function
which wraps gtk_widget_hide so that when a window is closed and then
reshown it reappears in the same place where it was before;
implemantation is taken from glade-2 utils.c.
Then the patches use this function for the palette, widget tree, editor
and clipboard.

ciao
        paolo



--=-DMvZxdF5rGpyAAkoca/j
Content-Disposition: attachment; filename=util-hide-window.patch
Content-Type: text/x-patch; name=util-hide-window.patch; charset=UTF-8
Content-Transfer-Encoding: 7bit

diff -pur gnome2/glade3/ChangeLog glade3/ChangeLog
--- gnome2/glade3/ChangeLog     2003-03-15 15:36:41.000000000 +0100
+++ glade3/ChangeLog    2003-03-18 15:58:42.000000000 +0100
@@ -1,3 +1,8 @@
+2003-03-18 Paolo Borelli <pborelli katamail com>
+
+       * src/glade-utils.[ch]: intrduce glade_utils_hide_window()
+       * src/glade-project-window.c: use it for the palette, editor etc.
+
 2003-03-15 Paolo Borelli <pborelli katamail com>
 
        * src/glade-project.c: don't warn on save file selector "cancel"
diff -pur gnome2/glade3/src/glade-project-window.c glade3/src/glade-project-window.c
--- gnome2/glade3/src/glade-project-window.c    2003-03-14 20:44:28.000000000 +0100
+++ glade3/src/glade-project-window.c   2003-03-18 15:56:21.000000000 +0100
@@ -39,6 +39,7 @@
 #include "glade-project-window.h"
 #include "glade-command.h"
 #include "glade-debug.h"
+#include "glade-utils.h"
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtkstock.h>
 
@@ -298,7 +299,7 @@ gpw_hide_palette_on_delete (GtkWidget *p
 {
        GtkWidget *palette_item;
 
-       gtk_widget_hide (GTK_WIDGET (palette));
+       glade_util_hide_window (GTK_WIDGET (palette));
 
        palette_item = gtk_item_factory_get_item (item_factory, "<main>/View/Palette");
        gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (palette_item), FALSE);
@@ -357,7 +358,7 @@ gpw_hide_palette (GladeProjectWindow *gp
 
        g_return_if_fail (gpw != NULL);
 
-       gtk_widget_hide (GTK_WIDGET (gpw->palette_window));
+       glade_util_hide_window (GTK_WIDGET (gpw->palette_window));
 
        palette_item = gtk_item_factory_get_item (gpw->item_factory,
                                                  "<main>/View/Palette");
@@ -370,7 +371,7 @@ gpw_hide_editor_on_delete (GtkWidget *ed
 {
        GtkWidget *editor_item;
 
-       gtk_widget_hide (GTK_WIDGET (editor));
+       glade_util_hide_window (GTK_WIDGET (editor));
 
        editor_item = gtk_item_factory_get_item (item_factory, "<main>/View/Property Editor");
        gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (editor_item), FALSE);
@@ -431,7 +432,7 @@ gpw_hide_editor (GladeProjectWindow *gpw
 
        g_return_if_fail (gpw != NULL);
 
-       gtk_widget_hide (GTK_WIDGET (gpw->editor_window));
+       glade_util_hide_window (GTK_WIDGET (gpw->editor_window));
 
        editor_item = gtk_item_factory_get_item (gpw->item_factory,
                                                 "<main>/View/Property Editor");
@@ -444,7 +445,7 @@ gpw_hide_widget_tree_on_delete (GtkWidge
 {
        GtkWidget *widget_tree_item;
 
-       gtk_widget_hide (widget_tree);
+       glade_util_hide_window (widget_tree);
 
        widget_tree_item = gtk_item_factory_get_item (item_factory,
                                                      "<main>/View/Widget Tree");
@@ -502,7 +503,7 @@ gpw_hide_widget_tree (GladeProjectWindow
 
        g_return_if_fail (gpw != NULL);
 
-       gtk_widget_hide (GTK_WIDGET (gpw->widget_tree));
+       glade_util_hide_window (GTK_WIDGET (gpw->widget_tree));
 
        widget_tree_item = gtk_item_factory_get_item (gpw->item_factory,
                                                      "<main>/View/Widget Tree");
@@ -529,7 +530,7 @@ gpw_hide_clipboard_view_on_delete (GtkWi
 {
        GtkWidget *clipboard_item;
 
-       gtk_widget_hide (clipboard_view);
+       glade_util_hide_window (clipboard_view);
 
        clipboard_item = gtk_item_factory_get_item (item_factory,
                                                    "<main>/View/Clipboard");
@@ -586,7 +587,7 @@ gpw_hide_clipboard_view (GladeProjectWin
 
        g_return_if_fail (gpw != NULL);
 
-       gtk_widget_hide (GTK_WIDGET (gpw->clipboard->view));
+       glade_util_hide_window (GTK_WIDGET (gpw->clipboard->view));
 
        clipboard_item = gtk_item_factory_get_item (gpw->item_factory,
                                                    "<main>/View/Clipboard");
diff -pur gnome2/glade3/src/glade-utils.c glade3/src/glade-utils.c
--- gnome2/glade3/src/glade-utils.c     2003-03-11 21:20:17.000000000 +0100
+++ glade3/src/glade-utils.c    2003-03-18 15:56:21.000000000 +0100
@@ -92,3 +92,27 @@ glade_util_ui_warn (const gchar *warning
        gtk_dialog_run (GTK_DIALOG (dialog));
        gtk_widget_destroy (dialog);
 }
+
+/*
+ * This allows the window to appear in the same place when it's shown again.
+ */
+gboolean
+glade_util_hide_window (GtkWidget *widget)
+{
+       gint x, y;
+       gboolean set_position = FALSE;
+
+       /* remember position of window */
+       if (widget->window) {
+               gdk_window_get_root_origin (widget->window, &x, &y);
+               set_position = TRUE;
+       }
+
+       gtk_widget_hide (widget);
+
+       if (set_position)
+               gtk_widget_set_uposition (widget, x, y);
+
+       return TRUE;
+}
+
diff -pur gnome2/glade3/src/glade-utils.h glade3/src/glade-utils.h
--- gnome2/glade3/src/glade-utils.h     2003-03-11 21:20:17.000000000 +0100
+++ glade3/src/glade-utils.h    2003-03-18 15:56:21.000000000 +0100
@@ -14,6 +14,7 @@ G_BEGIN_DECLS
 void     glade_util_widget_set_tooltip (GtkWidget *widget, const gchar *str);
 GType    glade_util_get_type_from_name (const gchar *name);
 void     glade_util_ui_warn            (const gchar *warning);
+gboolean glade_util_hide_window        (GtkWidget *widget);
 
 G_END_DECLS
 

--=-DMvZxdF5rGpyAAkoca/j--





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]