[maemo-commits] [maemo-commits] r8277 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop
From: www-data at stage.maemo.org www-data at stage.maemo.orgDate: Thu Nov 23 14:43:16 EET 2006
- Previous message: [maemo-commits] r8276 - in projects/haf/trunk/hildon-libs: . hildon-widgets
- Next message: [maemo-commits] r8278 - in projects/haf/trunk/hildon-libs: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: lucasr Date: 2006-11-23 14:43:15 +0200 (Thu, 23 Nov 2006) New Revision: 8277 Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/desktop-panel-window.c projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/desktop-panel-window.h projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-window.c projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-window.h Log: 2006-11-23 Lucas Rocha <lucas.rocha at nokia.com> * libhildondesktop/hildon-desktop-window.c, libhildondesktop/desktop-panel-window.c: GObject Love (chain finalize to parent, memory leaks). Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog =================================================================== --- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2006-11-23 12:05:12 UTC (rev 8276) +++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2006-11-23 12:43:15 UTC (rev 8277) @@ -1,3 +1,9 @@ +2006-11-23 Lucas Rocha <lucas.rocha at nokia.com> + + * libhildondesktop/hildon-desktop-window.c, + libhildondesktop/desktop-panel-window.c: GObject Love (chain + finalize to parent, memory leaks). + 2006-11-23 Johan Bilien <johan.bilien at nokia.com> * libhildondesktop/hildon-home-window.[ch]: Inherit from Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/desktop-panel-window.c =================================================================== --- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/desktop-panel-window.c 2006-11-23 12:05:12 UTC (rev 8276) +++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/desktop-panel-window.c 2006-11-23 12:43:15 UTC (rev 8277) @@ -82,10 +82,9 @@ #define MAGIC_GEOMETRY(w) (w->priv->magic_geometry.width != -1 && w->priv->magic_geometry.height != -1) -static void desktop_panel_window_class_init (DesktopPanelWindowClass *dskwindow_class); /*static void set_focus_forall_cb (GtkWidget *widget, gpointer data);*/ static void desktop_panel_window_finalize (GObject *self); -static void desktop_panel_window_init (DesktopPanelWindow *window); + static GObject *desktop_panel_window_constructor (GType gtype, guint n_params, GObjectConstructParam *params); @@ -127,16 +126,16 @@ static void desktop_panel_window_class_init (DesktopPanelWindowClass *dskwindow_class) { - GObjectClass *object_class = G_OBJECT_CLASS (dskwindow_class); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (dskwindow_class); + GObjectClass *object_class = G_OBJECT_CLASS (dskwindow_class); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (dskwindow_class); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (dskwindow_class); g_type_class_add_private (dskwindow_class, sizeof (DesktopPanelWindowPrivate)); - object_class->constructor = desktop_panel_window_constructor; - object_class->finalize = desktop_panel_window_finalize; - object_class->set_property = desktop_panel_window_set_property; - object_class->get_property = desktop_panel_window_get_property; + object_class->constructor = desktop_panel_window_constructor; + object_class->finalize = desktop_panel_window_finalize; + object_class->set_property = desktop_panel_window_set_property; + object_class->get_property = desktop_panel_window_get_property; widget_class->button_press_event = desktop_panel_press_button_event; widget_class->button_release_event = desktop_panel_release_button_event; @@ -144,10 +143,8 @@ widget_class->size_request = desktop_panel_size_request; widget_class->size_allocate = desktop_panel_size_allocate; - container_class->check_resize = desktop_panel_window_check_resize; + container_class->check_resize = desktop_panel_window_check_resize; - /*FIXME: Properties: x,y,width,height,orientation*/ - g_object_class_install_property (object_class, PROP_HOR_W, g_param_spec_int( @@ -290,7 +287,7 @@ window->priv = DESKTOP_PANEL_WINDOW_GET_PRIVATE (window); - HILDON_DESKTOP_WINDOW (window)->container = NULL; + HILDON_DESKTOP_WINDOW (window)->container = NULL; window->priv->ms = NULL; window->priv->orientation = DPANEL_ORIENTATION_TOP; @@ -346,7 +343,7 @@ gtk_widget_push_composite_child (); /* FIXME: set orientation to the window as well */ - HILDON_DESKTOP_WINDOW (window)->container = g_object_new (DESKTOP_TYPE_PANEL,NULL); + HILDON_DESKTOP_WINDOW (window)->container = g_object_new (DESKTOP_TYPE_PANEL, NULL); if (window->priv->orientation & DPANEL_ORIENTATION_HORIZONTAL) g_object_set (G_OBJECT (HILDON_DESKTOP_WINDOW (window)->container), @@ -359,7 +356,6 @@ GTK_ORIENTATION_VERTICAL, NULL); - gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (HILDON_DESKTOP_WINDOW (window)->container)); @@ -369,18 +365,16 @@ } static void -desktop_panel_window_finalize (GObject *self) +desktop_panel_window_finalize (GObject *object) { - DesktopPanelWindow *window; + DesktopPanelWindow *window; - g_assert (self); - g_assert (DESKTOP_IS_PANEL_WINDOW (self)); - - window = DESKTOP_PANEL_WINDOW (self); + window = DESKTOP_PANEL_WINDOW (object); if (window->priv->ms) g_object_unref (G_OBJECT (window->priv->ms)); + G_OBJECT_CLASS (desktop_panel_window_parent_class)->finalize (object); } static void @@ -399,6 +393,7 @@ { window->priv->state = state; } + gdk_cursor_unref (cursor); if (grab_keyboard) @@ -411,22 +406,19 @@ desktop_panel_stop_grab (DesktopPanelWindow *window, guint32 timestamp) { - - g_return_if_fail - (window->priv->state != DESKTOP_PANEL_GRAB_NONE); + g_return_if_fail (window->priv->state != DESKTOP_PANEL_GRAB_NONE); gtk_grab_remove (GTK_WIDGET (window)); - gdk_pointer_ungrab (timestamp); + gdk_pointer_ungrab (timestamp); gdk_keyboard_ungrab (timestamp); - } static gboolean desktop_panel_grab_motion_event (DesktopPanelWindow *window, GdkEventMotion *event) { -/* add cases in order to add new features as resizing */ + /* add cases in order to add new features as resizing */ switch (window->priv->state) { case DESKTOP_PANEL_GRAB_MOVE: @@ -436,9 +428,11 @@ event->y_root); return TRUE; break; + default: break; } + return FALSE; } @@ -455,10 +449,9 @@ if (!window->priv->move) return TRUE; - g_return_val_if_fail - (event->button == 1 || event->button == 2, FALSE); + g_return_val_if_fail (event->button == 1 || event->button == 2, FALSE); - gdk_window_get_user_data (event->window, (gpointer)&event_widget); + gdk_window_get_user_data (event->window, (gpointer) &event_widget); g_assert (GTK_IS_WIDGET (event_widget)); Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/desktop-panel-window.h =================================================================== --- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/desktop-panel-window.h 2006-11-23 12:05:12 UTC (rev 8276) +++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/desktop-panel-window.h 2006-11-23 12:43:15 UTC (rev 8277) @@ -66,11 +66,11 @@ struct _DesktopPanelWindow { - HildonDesktopWindow parent; + HildonDesktopWindow parent; - GtkWidget *panel; + GtkWidget *panel; - DesktopPanelWindowPrivate *priv; + DesktopPanelWindowPrivate *priv; }; struct _DesktopPanelWindowClass Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-window.c =================================================================== --- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-window.c 2006-11-23 12:05:12 UTC (rev 8276) +++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-window.c 2006-11-23 12:43:15 UTC (rev 8277) @@ -27,16 +27,34 @@ G_DEFINE_TYPE (HildonDesktopWindow, hildon_desktop_window, GTK_TYPE_WINDOW); +static void +hildon_desktop_window_finalize (GObject *object) +{ + HildonDesktopWindow *desktop_window; + + desktop_window = HILDON_DESKTOP_WINDOW (object); + + if (desktop_window->container) + { + g_object_unref (desktop_window->container); + desktop_window = NULL; + } + + G_OBJECT_CLASS (hildon_desktop_window_parent_class)->finalize (object); +} + static void hildon_desktop_window_class_init (HildonDesktopWindowClass *desktopwindow_class) { + GObjectClass *g_object_class = G_OBJECT_CLASS (desktopwindow_class); + g_object_class->finalize = hildon_desktop_window_finalize; } static void hildon_desktop_window_init (HildonDesktopWindow *desktop_window) { - + desktop_window->container = NULL; } void Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-window.h =================================================================== --- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-window.h 2006-11-23 12:05:12 UTC (rev 8276) +++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-window.h 2006-11-23 12:43:15 UTC (rev 8277) @@ -30,21 +30,20 @@ G_BEGIN_DECLS +typedef struct _HildonDesktopWindow HildonDesktopWindow; +typedef struct _HildonDesktopWindowClass HildonDesktopWindowClass; + #define HILDON_DESKTOP_TYPE_WINDOW ( hildon_desktop_window_get_type() ) #define HILDON_DESKTOP_WINDOW(obj) (GTK_CHECK_CAST (obj, HILDON_DESKTOP_TYPE_WINDOW, HildonDesktopWindow)) #define HILDON_DESKTOP_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), HILDON_DESKTOP_TYPE_WINDOW, HildonDesktopWindowClass)) #define HILDON_DESKTOP_IS_WINDOW(obj) (GTK_CHECK_TYPE (obj, HILDON_DESKTOP_TYPE_WINDOW)) #define HILDON_DESKTOP_IS_WINDOW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), HILDON_DESKTOP_TYPE_WINDOW)) - -typedef struct _HildonDesktopWindow HildonDesktopWindow; -typedef struct _HildonDesktopWindowClass HildonDesktopWindowClass; - struct _HildonDesktopWindow { - GtkWindow parent; + GtkWindow parent; - GtkContainer *container; + GtkContainer *container; }; struct _HildonDesktopWindowClass @@ -56,16 +55,16 @@ void (*set_focus) (HildonDesktopWindow *window, gboolean focus); - }; -GType hildon_desktop_window_get_type (void); +GType hildon_desktop_window_get_type (void); -void hildon_desktop_window_set_sensitive (HildonDesktopWindow *window, gboolean sensitive); +void hildon_desktop_window_set_sensitive (HildonDesktopWindow *window, + gboolean sensitive); -void hildon_desktop_window_set_focus (HildonDesktopWindow *window, gboolean focus); +void hildon_desktop_window_set_focus (HildonDesktopWindow *window, + gboolean focus); - G_END_DECLS #endif
- Previous message: [maemo-commits] r8276 - in projects/haf/trunk/hildon-libs: . hildon-widgets
- Next message: [maemo-commits] r8278 - in projects/haf/trunk/hildon-libs: . debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]