[gimp] Add GtkWidget::window_state_event() implementation to GimpImageWindow
- From: Michael Natterer <mitch src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] Add GtkWidget::window_state_event() implementation to GimpImageWindow
- Date: Tue, 29 Sep 2009 18:35:53 +0000 (UTC)
commit fb046b097da957b3389b12a3be5da7c8706ddb8b
Author: Michael Natterer <mitch gimp org>
Date: Wed Sep 23 13:40:52 2009 +0200
Add GtkWidget::window_state_event() implementation to GimpImageWindow
Keep an own window_state member around and update it accordingly.
Chain up in GimpDisplayShell's window_state_event() impl.
app/display/gimpdisplayshell.c | 2 +
app/display/gimpimagewindow.c | 52 +++++++++++++++++++++++++++-------------
app/display/gimpimagewindow.h | 2 +
3 files changed, 39 insertions(+), 17 deletions(-)
---
diff --git a/app/display/gimpdisplayshell.c b/app/display/gimpdisplayshell.c
index aacc944..5261ce2 100644
--- a/app/display/gimpdisplayshell.c
+++ b/app/display/gimpdisplayshell.c
@@ -643,6 +643,8 @@ gimp_display_shell_window_state_event (GtkWidget *widget,
GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (widget);
Gimp *gimp = shell->display->gimp;
+ GTK_WIDGET_CLASS (parent_class)->window_state_event (widget, event);
+
shell->window_state = event->new_window_state;
if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
diff --git a/app/display/gimpimagewindow.c b/app/display/gimpimagewindow.c
index 18749e0..62a99ea 100644
--- a/app/display/gimpimagewindow.c
+++ b/app/display/gimpimagewindow.c
@@ -30,6 +30,7 @@
#include "gimpdisplayshell.h"
#include "gimpimagewindow.h"
+#include "gimp-log.h"
#include "gimp-intl.h"
@@ -42,20 +43,23 @@ enum
/* local function prototypes */
-static GObject * gimp_image_window_constructor (GType type,
- guint n_params,
+static GObject * gimp_image_window_constructor (GType type,
+ guint n_params,
GObjectConstructParam *params);
-static void gimp_image_window_finalize (GObject *object);
-static void gimp_image_window_set_property (GObject *object,
- guint property_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gimp_image_window_get_property (GObject *object,
- guint property_id,
- GValue *value,
- GParamSpec *pspec);
+static void gimp_image_window_finalize (GObject *object);
+static void gimp_image_window_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec);
+static void gimp_image_window_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec);
-static void gimp_image_window_destroy (GtkObject *object);
+static void gimp_image_window_destroy (GtkObject *object);
+
+static gboolean gimp_image_window_window_state (GtkWidget *widget,
+ GdkEventWindowState *event);
G_DEFINE_TYPE (GimpImageWindow, gimp_image_window, GIMP_TYPE_WINDOW)
@@ -68,13 +72,16 @@ gimp_image_window_class_init (GimpImageWindowClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass);
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+ object_class->constructor = gimp_image_window_constructor;
+ object_class->finalize = gimp_image_window_finalize;
+ object_class->set_property = gimp_image_window_set_property;
+ object_class->get_property = gimp_image_window_get_property;
- object_class->constructor = gimp_image_window_constructor;
- object_class->finalize = gimp_image_window_finalize;
- object_class->set_property = gimp_image_window_set_property;
- object_class->get_property = gimp_image_window_get_property;
+ gtk_object_class->destroy = gimp_image_window_destroy;
- gtk_object_class->destroy = gimp_image_window_destroy;
+ widget_class->window_state_event = gimp_image_window_window_state;
g_object_class_install_property (object_class, PROP_MENU_FACTORY,
g_param_spec_object ("menu-factory",
@@ -171,6 +178,17 @@ gimp_image_window_destroy (GtkObject *object)
GTK_OBJECT_CLASS (parent_class)->destroy (object);
}
+static gboolean
+gimp_image_window_window_state (GtkWidget *widget,
+ GdkEventWindowState *event)
+{
+ GimpImageWindow *window = GIMP_IMAGE_WINDOW (widget);
+
+ window->window_state = event->new_window_state;
+
+ return FALSE;
+}
+
/* public functions */
diff --git a/app/display/gimpimagewindow.h b/app/display/gimpimagewindow.h
index f942a0b..d28c657 100644
--- a/app/display/gimpimagewindow.h
+++ b/app/display/gimpimagewindow.h
@@ -37,6 +37,8 @@ struct _GimpImageWindow
GimpWindow parent_instance;
GimpUIManager *menubar_manager;
+
+ GdkWindowState window_state;
};
struct _GimpImageWindowClass
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]