зеркало из https://github.com/mozilla/gecko-dev.git
revert pavlov's changes at his request
This commit is contained in:
Родитель
c13a79ad48
Коммит
b1bc8c407e
|
@ -2,6 +2,9 @@
|
|||
*
|
||||
* This file may be distributed under either the terms of the
|
||||
* Netscape Public License, or the GNU Library General Public License
|
||||
*
|
||||
* Note: No GTK+ or Mozilla code should be added to this file.
|
||||
* The coding style should be that of the the GTK core.
|
||||
*/
|
||||
|
||||
#include "gtklayout.h"
|
||||
|
@ -30,9 +33,6 @@ static void gtk_layout_forall (GtkContainer *container,
|
|||
gboolean include_internals,
|
||||
GtkCallback callback,
|
||||
gpointer callback_data);
|
||||
static void gtk_layout_set_adjustments (GtkLayout *layout,
|
||||
GtkAdjustment *hadj,
|
||||
GtkAdjustment *vadj);
|
||||
|
||||
static void gtk_layout_realize_child (GtkLayout *layout,
|
||||
GtkLayoutChild *child);
|
||||
|
@ -73,7 +73,8 @@ gtk_layout_new (GtkAdjustment *hadjustment,
|
|||
|
||||
layout = gtk_type_new (gtk_layout_get_type());
|
||||
|
||||
gtk_layout_set_adjustments (layout, hadjustment, vadjustment);
|
||||
gtk_layout_set_hadjustment (layout, hadjustment);
|
||||
gtk_layout_set_vadjustment (layout, vadjustment);
|
||||
|
||||
return GTK_WIDGET (layout);
|
||||
}
|
||||
|
@ -95,65 +96,6 @@ gtk_layout_get_vadjustment (GtkLayout *layout)
|
|||
return layout->vadjustment;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_layout_set_adjustments (GtkLayout *layout,
|
||||
GtkAdjustment *hadj,
|
||||
GtkAdjustment *vadj)
|
||||
{
|
||||
gboolean need_adjust = FALSE;
|
||||
|
||||
g_return_if_fail (layout != NULL);
|
||||
g_return_if_fail (GTK_IS_LAYOUT (layout));
|
||||
|
||||
if (hadj)
|
||||
g_return_if_fail (GTK_IS_ADJUSTMENT (hadj));
|
||||
else
|
||||
hadj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
|
||||
if (vadj)
|
||||
g_return_if_fail (GTK_IS_ADJUSTMENT (vadj));
|
||||
else
|
||||
vadj = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0));
|
||||
|
||||
if (layout->hadjustment && (layout->hadjustment != hadj))
|
||||
{
|
||||
gtk_signal_disconnect_by_data (GTK_OBJECT (layout->hadjustment), layout);
|
||||
gtk_object_unref (GTK_OBJECT (layout->hadjustment));
|
||||
}
|
||||
|
||||
if (layout->vadjustment && (layout->vadjustment != vadj))
|
||||
{
|
||||
gtk_signal_disconnect_by_data (GTK_OBJECT (layout->vadjustment), layout);
|
||||
gtk_object_unref (GTK_OBJECT (layout->vadjustment));
|
||||
}
|
||||
|
||||
if (layout->hadjustment != hadj)
|
||||
{
|
||||
layout->hadjustment = hadj;
|
||||
gtk_object_ref (GTK_OBJECT (layout->hadjustment));
|
||||
gtk_object_sink (GTK_OBJECT (layout->hadjustment));
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (layout->hadjustment), "value_changed",
|
||||
(GtkSignalFunc) gtk_layout_adjustment_changed,
|
||||
layout);
|
||||
need_adjust = TRUE;
|
||||
}
|
||||
|
||||
if (layout->vadjustment != vadj)
|
||||
{
|
||||
layout->vadjustment = vadj;
|
||||
gtk_object_ref (GTK_OBJECT (layout->vadjustment));
|
||||
gtk_object_sink (GTK_OBJECT (layout->vadjustment));
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (layout->vadjustment), "value_changed",
|
||||
(GtkSignalFunc) gtk_layout_adjustment_changed,
|
||||
layout);
|
||||
need_adjust = TRUE;
|
||||
}
|
||||
|
||||
if (need_adjust)
|
||||
gtk_layout_adjustment_changed (NULL, layout);
|
||||
}
|
||||
|
||||
void
|
||||
gtk_layout_set_hadjustment (GtkLayout *layout,
|
||||
GtkAdjustment *adjustment)
|
||||
|
@ -161,7 +103,19 @@ gtk_layout_set_hadjustment (GtkLayout *layout,
|
|||
g_return_if_fail (layout != NULL);
|
||||
g_return_if_fail (GTK_IS_LAYOUT (layout));
|
||||
|
||||
gtk_layout_set_adjustments (layout, adjustment, layout->vadjustment);
|
||||
if (layout->hadjustment)
|
||||
gtk_object_unref (GTK_OBJECT (layout->hadjustment));
|
||||
|
||||
if (!adjustment)
|
||||
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 10.0, 0.0, 0.0));
|
||||
else
|
||||
gtk_object_ref (GTK_OBJECT (adjustment));
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
|
||||
GTK_SIGNAL_FUNC (gtk_layout_adjustment_changed),
|
||||
layout);
|
||||
|
||||
layout->hadjustment = adjustment;
|
||||
}
|
||||
|
||||
|
||||
|
@ -172,7 +126,19 @@ gtk_layout_set_vadjustment (GtkLayout *layout,
|
|||
g_return_if_fail (layout != NULL);
|
||||
g_return_if_fail (GTK_IS_LAYOUT (layout));
|
||||
|
||||
gtk_layout_set_adjustments (layout, layout->hadjustment, adjustment);
|
||||
if (layout->vadjustment)
|
||||
gtk_object_unref (GTK_OBJECT (layout->hadjustment));
|
||||
|
||||
if (!adjustment)
|
||||
adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (0.0, 0.0, 0.0, 10.0, 0.0, 0.0));
|
||||
else
|
||||
gtk_object_ref (GTK_OBJECT (adjustment));
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (adjustment), "value_changed",
|
||||
GTK_SIGNAL_FUNC (gtk_layout_adjustment_changed),
|
||||
layout);
|
||||
|
||||
layout->vadjustment = adjustment;
|
||||
}
|
||||
|
||||
|
||||
|
@ -195,7 +161,6 @@ gtk_layout_put (GtkLayout *layout,
|
|||
child->y = y;
|
||||
child->widget->requisition.width = 0;
|
||||
child->widget->requisition.height = 0;
|
||||
child->mapped = FALSE;
|
||||
|
||||
layout->children = g_list_append (layout->children, child);
|
||||
|
||||
|
@ -326,20 +291,10 @@ gtk_layout_class_init (GtkLayoutClass *class)
|
|||
widget_class->draw = gtk_layout_draw;
|
||||
widget_class->expose_event = gtk_layout_expose;
|
||||
|
||||
widget_class->scroll_adjustments_signal =
|
||||
gtk_signal_new ("scroll_adjustments",
|
||||
GTK_RUN_LAST,
|
||||
object_class->type,
|
||||
GTK_SIGNAL_OFFSET (GtkLayoutClass, scroll_adjustments),
|
||||
gtk_marshal_NONE__POINTER_POINTER,
|
||||
GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);
|
||||
|
||||
gravity_works = gtk_layout_gravity_works ();
|
||||
|
||||
container_class->remove = gtk_layout_remove;
|
||||
container_class->forall = gtk_layout_forall;
|
||||
|
||||
class->scroll_adjustments = gtk_layout_set_adjustments;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -445,14 +400,12 @@ gtk_layout_map (GtkWidget *widget)
|
|||
{
|
||||
GtkLayoutChild *child = tmp_list->data;
|
||||
|
||||
if (child->mapped && GTK_WIDGET_VISIBLE (child->widget))
|
||||
{
|
||||
if (!GTK_WIDGET_MAPPED (child->widget))
|
||||
if (GTK_WIDGET_VISIBLE (child->widget) &&
|
||||
!GTK_WIDGET_MAPPED (child->widget))
|
||||
gtk_widget_map (child->widget);
|
||||
|
||||
if (child->window)
|
||||
gdk_window_show (child->window);
|
||||
}
|
||||
|
||||
tmp_list = tmp_list->next;
|
||||
}
|
||||
|
@ -727,22 +680,13 @@ gtk_layout_position_child (GtkLayout *layout,
|
|||
if ((x >= G_MINSHORT) && (x <= G_MAXSHORT) &&
|
||||
(y >= G_MINSHORT) && (y <= G_MAXSHORT))
|
||||
{
|
||||
if (!child->mapped)
|
||||
if (GTK_WIDGET_VISIBLE (child->widget) &&
|
||||
GTK_WIDGET_MAPPED (layout) &&
|
||||
!GTK_WIDGET_MAPPED (child->widget))
|
||||
{
|
||||
child->mapped = TRUE;
|
||||
|
||||
if (GTK_WIDGET_MAPPED (layout) &&
|
||||
GTK_WIDGET_VISIBLE (child->widget))
|
||||
{
|
||||
if (child->window)
|
||||
gdk_window_show (child->window);
|
||||
if (!GTK_WIDGET_MAPPED (child->widget))
|
||||
gtk_widget_map (child->widget);
|
||||
|
||||
child->mapped = TRUE;
|
||||
force_allocate = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
if (force_allocate)
|
||||
{
|
||||
|
@ -775,15 +719,11 @@ gtk_layout_position_child (GtkLayout *layout,
|
|||
}
|
||||
else
|
||||
{
|
||||
if (child->mapped)
|
||||
{
|
||||
child->mapped = FALSE;
|
||||
if (child->window)
|
||||
gdk_window_hide (child->window);
|
||||
else if (GTK_WIDGET_MAPPED (child->widget))
|
||||
gtk_widget_unmap (child->widget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -893,11 +833,10 @@ gtk_layout_adjustment_changed (GtkAdjustment *adjustment,
|
|||
if (layout->frozen)
|
||||
return;
|
||||
|
||||
if (!GTK_WIDGET_MAPPED (layout))
|
||||
{
|
||||
gtk_layout_position_children (layout);
|
||||
|
||||
if (!GTK_WIDGET_MAPPED (layout))
|
||||
return;
|
||||
}
|
||||
|
||||
if (dx > 0)
|
||||
{
|
||||
|
@ -996,8 +935,6 @@ gtk_layout_adjustment_changed (GtkAdjustment *adjustment,
|
|||
-dy);
|
||||
}
|
||||
|
||||
gtk_layout_position_children (layout);
|
||||
|
||||
/* We have to make sure that all exposes from this scroll get
|
||||
* processed before we scroll again, or the expose events will
|
||||
* have invalid coordinates.
|
||||
|
@ -1200,4 +1137,3 @@ gtk_layout_gravity_works (void)
|
|||
|
||||
return (y == -20);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
*
|
||||
* This file may be distributed under either the terms of the
|
||||
* Netscape Public License, or the GNU Library General Public License
|
||||
*
|
||||
* Note: No GTK+ or Mozilla code should be added to this file.
|
||||
* The coding style should be that of the the GTK core.
|
||||
*/
|
||||
|
||||
#ifndef __GTK_LAYOUT_H
|
||||
|
@ -11,10 +14,6 @@
|
|||
#include <gtk/gtkcontainer.h>
|
||||
#include <gtk/gtkadjustment.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
|
||||
/*
|
||||
* We don't want to require gnome-libs, in which GtkLayout now lives, but
|
||||
|
@ -47,9 +46,10 @@ extern "C" {
|
|||
#define gtk_layout_set_hadjustment moz_gtk_layout_set_hadjustment
|
||||
#define gtk_layout_set_vadjustment moz_gtk_layout_set_vadjustment
|
||||
|
||||
#define GtkLayout MozGtkLayout
|
||||
#define GtkLayoutClass MozGtkLayoutClass
|
||||
#define GtkLayoutChild MozGtkLayoutChild
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#define GTK_LAYOUT(obj) GTK_CHECK_CAST (obj, gtk_layout_get_type (), GtkLayout)
|
||||
#define GTK_LAYOUT_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_layout_get_type (), GtkLayoutClass)
|
||||
|
@ -64,7 +64,6 @@ struct _GtkLayoutChild {
|
|||
GdkWindow *window; /* For NO_WINDOW widgets */
|
||||
gint x;
|
||||
gint y;
|
||||
gboolean mapped : 1;
|
||||
};
|
||||
|
||||
struct _GtkLayout {
|
||||
|
@ -93,10 +92,6 @@ struct _GtkLayout {
|
|||
|
||||
struct _GtkLayoutClass {
|
||||
GtkContainerClass parent_class;
|
||||
|
||||
void (*scroll_adjustments) (GtkLayout *text,
|
||||
GtkAdjustment *hadjustment,
|
||||
GtkAdjustment *vadjustment);
|
||||
};
|
||||
|
||||
GtkWidget* gtk_layout_new (GtkAdjustment *hadjustment,
|
||||
|
|
Загрузка…
Ссылка в новой задаче