gimp r25182 - in trunk: . app/display
- From: mitch svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r25182 - in trunk: . app/display
- Date: Sun, 23 Mar 2008 16:10:03 +0000 (GMT)
Author: mitch
Date: Sun Mar 23 16:10:03 2008
New Revision: 25182
URL: http://svn.gnome.org/viewvc/gimp?rev=25182&view=rev
Log:
2008-03-23 Michael Natterer <mitch gimp org>
* app/display/gimpstatusbar.c: implement GtkWidget::size_request()
and also consider the children which can be invisible when the
display is empty.
* app/display/gimpdisplayshell.c (gimp_display_shell_style_set):
set the minimum height of the display to menubar + statusbar
height.
Modified:
trunk/ChangeLog
trunk/app/display/gimpdisplayshell.c
trunk/app/display/gimpstatusbar.c
Modified: trunk/app/display/gimpdisplayshell.c
==============================================================================
--- trunk/app/display/gimpdisplayshell.c (original)
+++ trunk/app/display/gimpdisplayshell.c Sun Mar 23 16:10:03 2008
@@ -592,17 +592,18 @@
GimpDisplayShell *shell = GIMP_DISPLAY_SHELL (widget);
GtkRequisition menubar_req;
GtkRequisition statusbar_req;
+ GdkGeometry geometry;
GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style);
gtk_widget_size_request (shell->menubar, &menubar_req);
gtk_widget_size_request (shell->statusbar, &statusbar_req);
-#if 0
- /* this doesn't work */
- gtk_widget_set_size_request (widget, -1,
- menubar_req.height + statusbar_req.height);
-#endif
+ geometry.min_width = statusbar_req.width;
+ geometry.min_height = statusbar_req.height + menubar_req.height + 1;
+
+ gtk_window_set_geometry_hints (GTK_WINDOW (widget), NULL,
+ &geometry, GDK_HINT_MIN_SIZE);
}
static void
Modified: trunk/app/display/gimpstatusbar.c
==============================================================================
--- trunk/app/display/gimpstatusbar.c (original)
+++ trunk/app/display/gimpstatusbar.c Sun Mar 23 16:10:03 2008
@@ -71,6 +71,9 @@
static void gimp_statusbar_destroy (GtkObject *object);
+static void gimp_statusbar_size_request (GtkWidget *widget,
+ GtkRequisition *requisition);
+
static GimpProgress *
gimp_statusbar_progress_start (GimpProgress *progress,
const gchar *message,
@@ -127,10 +130,13 @@
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkObjectClass *gtk_object_class = GTK_OBJECT_CLASS (klass);
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+ object_class->finalize = gimp_statusbar_finalize;
- object_class->finalize = gimp_statusbar_finalize;
+ gtk_object_class->destroy = gimp_statusbar_destroy;
- gtk_object_class->destroy = gimp_statusbar_destroy;
+ widget_class->size_request = gimp_statusbar_size_request;
}
static void
@@ -264,6 +270,27 @@
GTK_OBJECT_CLASS (parent_class)->destroy (object);
}
+static void
+gimp_statusbar_size_request (GtkWidget *widget,
+ GtkRequisition *requisition)
+{
+ GimpStatusbar *statusbar = GIMP_STATUSBAR (widget);
+ GtkRequisition child_requisition;
+
+ GTK_WIDGET_CLASS (parent_class)->size_request (widget, requisition);
+
+ /* also consider the children which can be invisible */
+
+ gtk_widget_size_request (statusbar->cursor_frame, &child_requisition);
+ requisition->height = MAX (requisition->height, child_requisition.height);
+
+ gtk_widget_size_request (statusbar->unit_combo, &child_requisition);
+ requisition->height = MAX (requisition->height, child_requisition.height);
+
+ gtk_widget_size_request (statusbar->scale_combo, &child_requisition);
+ requisition->height = MAX (requisition->height, child_requisition.height);
+}
+
static GimpProgress *
gimp_statusbar_progress_start (GimpProgress *progress,
const gchar *message,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]