[Glade-devel] [patch, glade3] glade_utils_hide_window
- From: pborelli katamail com (paolo borelli)
- Subject: [Glade-devel] [patch, glade3] glade_utils_hide_window
- Date: 18 Mar 2003 16:10:29 +0100
--=-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]