Index: libxfcegui4/netk-window.c =================================================================== --- libxfcegui4/netk-window.c (revision 22778) +++ libxfcegui4/netk-window.c (working copy) @@ -43,6 +43,8 @@ #define FALLBACK_NAME "??" #define ALL_WORKSPACES (0xFFFFFFFF) +#define NETK_WINDOW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NETK_TYPE_WINDOW, NetkWindowPrivate)) + static GHashTable *window_hash = NULL; /* Keep 0-10 in sync with the numbers in the WindowState enum. Yeah I'm @@ -178,7 +180,7 @@ static NetkWindow *find_last_transient_for (GList * windows, Window xwindow); -static gpointer parent_class; +static GObjectClass *parent_class; static guint signals[LAST_SIGNAL] = { 0 }; GType @@ -214,8 +216,8 @@ static void netk_window_init (NetkWindow * window) { - window->priv = g_new0 (NetkWindowPrivate, 1); - + window->priv = NETK_WINDOW_GET_PRIVATE (window); + window->priv->name = g_strdup (FALLBACK_NAME);; window->priv->icon_name = NULL; window->priv->client_machine = NULL; @@ -228,6 +230,8 @@ netk_window_class_init (NetkWindowClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (NetkWindowPrivate)); parent_class = g_type_class_peek_parent (klass); @@ -302,8 +306,6 @@ if (window->priv->app) g_object_unref (G_OBJECT (window->priv->app)); - g_free (window->priv); - G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -1373,8 +1375,10 @@ if (class_group) g_object_ref (G_OBJECT (class_group)); + if (window->priv->class_group) g_object_unref (G_OBJECT (window->priv->class_group)); + window->priv->class_group = class_group; } Index: libxfcegui4/netk-window-action-menu.c =================================================================== --- libxfcegui4/netk-window-action-menu.c (revision 22778) +++ libxfcegui4/netk-window-action-menu.c (working copy) @@ -10,7 +10,7 @@ * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public @@ -28,27 +28,27 @@ typedef enum { - CLOSE, - MINIMIZE, - MAXIMIZE, - SHADE, - PIN, - SENDTO + CLOSE, + MINIMIZE, + MAXIMIZE, + SHADE, + PIN, + SENDTO } WindowAction; typedef struct _ActionMenuData ActionMenuData; struct _ActionMenuData { - NetkWindow *window; - GtkWidget *menu; - GtkWidget *minimize_item; - GtkWidget *maximize_item; - GtkWidget *shade_item; - GtkWidget *sendto_item; - GtkWidget *close_item; - GtkWidget *pin_item; - guint idle_handler; + NetkWindow *window; + GtkWidget *menu; + GtkWidget *minimize_item; + GtkWidget *maximize_item; + GtkWidget *shade_item; + GtkWidget *sendto_item; + GtkWidget *close_item; + GtkWidget *pin_item; + guint idle_handler; }; static void object_weak_notify (gpointer data, @@ -60,10 +60,10 @@ window_weak_notify (gpointer data, GObject *window) { - g_object_set_data (G_OBJECT (data), "netk-action-data", NULL); - g_object_weak_unref (G_OBJECT (data), - object_weak_notify, - window); + g_object_set_data (G_OBJECT (data), "netk-action-data", NULL); + g_object_weak_unref (G_OBJECT (data), + object_weak_notify, + window); } @@ -71,70 +71,70 @@ object_weak_notify (gpointer data, GObject *obj) { - g_object_weak_unref (G_OBJECT (data), - window_weak_notify, - obj); + g_object_weak_unref (G_OBJECT (data), + window_weak_notify, + obj); } static void set_data (GObject *obj, ActionMenuData *amd) { - g_object_set_data (obj, "netk-action-data", amd); - if (amd && amd->window) + g_object_set_data (obj, "netk-action-data", amd); + if (amd && amd->window) { - g_object_weak_ref (G_OBJECT (amd->window), window_weak_notify, obj); - g_object_weak_ref (obj, object_weak_notify, amd->window); + g_object_weak_ref (G_OBJECT (amd->window), window_weak_notify, obj); + g_object_weak_ref (obj, object_weak_notify, amd->window); } } static ActionMenuData* get_data (GObject *obj) { - return g_object_get_data (obj, "netk-action-data"); + return g_object_get_data (obj, "netk-action-data"); } static void item_activated_callback (GtkWidget *menu_item, - gpointer data) + gpointer data) { - ActionMenuData *amd = get_data (G_OBJECT (menu_item)); - WindowAction action = GPOINTER_TO_INT (data); - - if (amd == NULL) - return; + ActionMenuData *amd = get_data (G_OBJECT (menu_item)); + WindowAction action = GPOINTER_TO_INT (data); + + if (amd == NULL) + return; - switch (action) + switch (action) { - case CLOSE: - netk_window_close (amd->window); - break; - case MINIMIZE: - if (netk_window_is_minimized (amd->window)) - netk_window_unminimize (amd->window); - else - netk_window_minimize (amd->window); - break; - case MAXIMIZE: - if (netk_window_is_maximized (amd->window)) - netk_window_unmaximize (amd->window); - else - netk_window_maximize (amd->window); - break; - case SHADE: - if (netk_window_is_shaded (amd->window)) - netk_window_unshade (amd->window); - else - netk_window_shade (amd->window); - break; - case PIN: - if (netk_window_is_pinned (amd->window)) - netk_window_unpin (amd->window); - else - netk_window_pin (amd->window); - break; - default: - break; + case CLOSE: + netk_window_close (amd->window); + break; + case MINIMIZE: + if (netk_window_is_minimized (amd->window)) + netk_window_unminimize (amd->window); + else + netk_window_minimize (amd->window); + break; + case MAXIMIZE: + if (netk_window_is_maximized (amd->window)) + netk_window_unmaximize (amd->window); + else + netk_window_maximize (amd->window); + break; + case SHADE: + if (netk_window_is_shaded (amd->window)) + netk_window_unshade (amd->window); + else + netk_window_shade (amd->window); + break; + case PIN: + if (netk_window_is_pinned (amd->window)) + netk_window_unpin (amd->window); + else + netk_window_pin (amd->window); + break; + default: + break; } } @@ -142,245 +142,245 @@ set_item_text (GtkWidget *mi, const char *text) { - gtk_label_set_text (GTK_LABEL (GTK_BIN (mi)->child), - text); - gtk_label_set_use_underline (GTK_LABEL (GTK_BIN (mi)->child), TRUE); + gtk_label_set_text (GTK_LABEL (GTK_BIN (mi)->child), + text); + gtk_label_set_use_underline (GTK_LABEL (GTK_BIN (mi)->child), TRUE); } static void set_item_stock (GtkWidget *mi, const char *stock_id) { - GtkWidget *image; - - image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (mi)); + GtkWidget *image; + + image = gtk_image_menu_item_get_image (GTK_IMAGE_MENU_ITEM (mi)); - if (stock_id == NULL) + if (stock_id == NULL) { - if (image != NULL) - gtk_widget_destroy (image); - return; + if (image != NULL) + gtk_widget_destroy (image); + return; } - if (image == NULL) - { - image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); - gtk_widget_show (image); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), image); - } - else - { - gtk_image_set_from_stock (GTK_IMAGE (image), stock_id, - GTK_ICON_SIZE_MENU); - } + if (image == NULL) + { + image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_MENU); + gtk_widget_show (image); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), image); + } + else + { + gtk_image_set_from_stock (GTK_IMAGE (image), stock_id, + GTK_ICON_SIZE_MENU); + } } static void sendto_item_activated (GtkMenuItem *mi, gpointer user_data) { - gint ws_number = GPOINTER_TO_INT (user_data); - ActionMenuData *amd = get_data (G_OBJECT (mi)); - NetkScreen *netk_screen = netk_window_get_screen (amd->window); - NetkWorkspace *new_ws = netk_screen_get_workspace (netk_screen, ws_number); + gint ws_number = GPOINTER_TO_INT (user_data); + ActionMenuData *amd = get_data (G_OBJECT (mi)); + NetkScreen *netk_screen = netk_window_get_screen (amd->window); + NetkWorkspace *new_ws = netk_screen_get_workspace (netk_screen, ws_number); - netk_window_move_to_workspace (amd->window, new_ws); + netk_window_move_to_workspace (amd->window, new_ws); } static GtkWidget * create_sendto_menu (ActionMenuData *amd) { - GtkWidget *submenu, *ws_item; - NetkScreen *netk_screen; - NetkWorkspace *ws, *win_ws; - gint nworkspaces, win_ws_n, i; - const gchar *ws_name; - gchar mi_label[2048]; + GtkWidget *submenu, *ws_item; + NetkScreen *netk_screen; + NetkWorkspace *ws, *win_ws; + gint nworkspaces, win_ws_n, i; + const gchar *ws_name; + gchar mi_label[2048]; - submenu = gtk_menu_new (); - gtk_widget_show (submenu); + submenu = gtk_menu_new (); + gtk_widget_show (submenu); - netk_screen = netk_window_get_screen (amd->window); - nworkspaces = netk_screen_get_workspace_count (netk_screen); + netk_screen = netk_window_get_screen (amd->window); + nworkspaces = netk_screen_get_workspace_count (netk_screen); - win_ws = netk_window_get_workspace (amd->window); - win_ws_n = netk_workspace_get_number (win_ws); + win_ws = netk_window_get_workspace (amd->window); + win_ws_n = netk_workspace_get_number (win_ws); - for (i = 0; i < nworkspaces; i++) + for (i = 0; i < nworkspaces; i++) { - ws = netk_screen_get_workspace (netk_screen, i); - ws_name = netk_workspace_get_name (ws); + ws = netk_screen_get_workspace (netk_screen, i); + ws_name = netk_workspace_get_name (ws); - if (ws_name) - g_snprintf(mi_label, 2048, "%s %d (%s)", _("Workspace"), i+1, ws_name); - else - g_snprintf(mi_label, 2048, "%s %d", _("Workspace"), i+1); + if (ws_name) + g_snprintf(mi_label, 2048, "%s %d (%s)", _("Workspace"), i+1, ws_name); + else + g_snprintf(mi_label, 2048, "%s %d", _("Workspace"), i+1); - ws_item = gtk_check_menu_item_new_with_label (mi_label); - if (i == win_ws_n) - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (ws_item), TRUE); + ws_item = gtk_check_menu_item_new_with_label (mi_label); + if (i == win_ws_n) + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (ws_item), TRUE); - gtk_widget_show (ws_item); - gtk_menu_shell_append(GTK_MENU_SHELL (submenu), ws_item); + gtk_widget_show (ws_item); + gtk_menu_shell_append(GTK_MENU_SHELL (submenu), ws_item); - set_data (G_OBJECT (ws_item), amd); - g_signal_connect (G_OBJECT (ws_item), "activate", - G_CALLBACK (sendto_item_activated), - GINT_TO_POINTER (i)); + set_data (G_OBJECT (ws_item), amd); + g_signal_connect (G_OBJECT (ws_item), "activate", + G_CALLBACK (sendto_item_activated), + GINT_TO_POINTER (i)); } - - return submenu; + + return submenu; } static gboolean update_menu_state (ActionMenuData *amd) { - NetkWindowActions actions; + NetkWindowActions actions; - amd->idle_handler = 0; - - actions = netk_window_get_actions (amd->window); - - if (netk_window_is_minimized (amd->window)) + amd->idle_handler = 0; + + actions = netk_window_get_actions (amd->window); + + if (netk_window_is_minimized (amd->window)) { - set_item_text (amd->minimize_item, _("S_how")); - set_item_stock (amd->minimize_item, NETK_STOCK_UNMINIMIZE); - gtk_widget_set_sensitive (amd->minimize_item, - (actions & NETK_WINDOW_ACTION_UNMINIMIZE) != 0); + set_item_text (amd->minimize_item, _("S_how")); + set_item_stock (amd->minimize_item, NETK_STOCK_UNMINIMIZE); + gtk_widget_set_sensitive (amd->minimize_item, + (actions & NETK_WINDOW_ACTION_UNMINIMIZE) != 0); } - else + else { - set_item_text (amd->minimize_item, _("_Hide")); - set_item_stock (amd->minimize_item, NETK_STOCK_MINIMIZE); - gtk_widget_set_sensitive (amd->minimize_item, - (actions & NETK_WINDOW_ACTION_MINIMIZE) != 0); + set_item_text (amd->minimize_item, _("_Hide")); + set_item_stock (amd->minimize_item, NETK_STOCK_MINIMIZE); + gtk_widget_set_sensitive (amd->minimize_item, + (actions & NETK_WINDOW_ACTION_MINIMIZE) != 0); } - if (netk_window_is_maximized (amd->window)) + if (netk_window_is_maximized (amd->window)) { - set_item_text (amd->maximize_item, _("Un_maximize")); - set_item_stock (amd->maximize_item, NETK_STOCK_UNMAXIMIZE); - gtk_widget_set_sensitive (amd->maximize_item, - (actions & NETK_WINDOW_ACTION_UNMAXIMIZE) != 0); + set_item_text (amd->maximize_item, _("Un_maximize")); + set_item_stock (amd->maximize_item, NETK_STOCK_UNMAXIMIZE); + gtk_widget_set_sensitive (amd->maximize_item, + (actions & NETK_WINDOW_ACTION_UNMAXIMIZE) != 0); } - else + else { - set_item_text (amd->maximize_item, _("Ma_ximize")); - set_item_stock (amd->maximize_item, NETK_STOCK_MAXIMIZE); - gtk_widget_set_sensitive (amd->maximize_item, - (actions & NETK_WINDOW_ACTION_MAXIMIZE) != 0); + set_item_text (amd->maximize_item, _("Ma_ximize")); + set_item_stock (amd->maximize_item, NETK_STOCK_MAXIMIZE); + gtk_widget_set_sensitive (amd->maximize_item, + (actions & NETK_WINDOW_ACTION_MAXIMIZE) != 0); } - if (netk_window_is_shaded (amd->window)) + if (netk_window_is_shaded (amd->window)) { - set_item_text (amd->shade_item, _("Un_shade")); - set_item_stock (amd->shade_item, NETK_STOCK_UNSHADE); - gtk_widget_set_sensitive (amd->shade_item, - (actions & NETK_WINDOW_ACTION_UNSHADE) != 0); + set_item_text (amd->shade_item, _("Un_shade")); + set_item_stock (amd->shade_item, NETK_STOCK_UNSHADE); + gtk_widget_set_sensitive (amd->shade_item, + (actions & NETK_WINDOW_ACTION_UNSHADE) != 0); } - else + else { - set_item_text (amd->shade_item, _("_Shade")); - set_item_stock (amd->shade_item, NETK_STOCK_SHADE); - gtk_widget_set_sensitive (amd->shade_item, - (actions & NETK_WINDOW_ACTION_SHADE) != 0); + set_item_text (amd->shade_item, _("_Shade")); + set_item_stock (amd->shade_item, NETK_STOCK_SHADE); + gtk_widget_set_sensitive (amd->shade_item, + (actions & NETK_WINDOW_ACTION_SHADE) != 0); } - if (netk_window_is_pinned (amd->window)) + if (netk_window_is_pinned (amd->window)) { - set_item_text (amd->pin_item, _("Uns_tick")); - set_item_stock (amd->pin_item, NETK_STOCK_UNSTICK); - gtk_widget_set_sensitive (amd->pin_item, - (actions & NETK_WINDOW_ACTION_CHANGE_WORKSPACE) != 0); - gtk_widget_set_sensitive (amd->sendto_item, FALSE); + set_item_text (amd->pin_item, _("Uns_tick")); + set_item_stock (amd->pin_item, NETK_STOCK_UNSTICK); + gtk_widget_set_sensitive (amd->pin_item, + (actions & NETK_WINDOW_ACTION_CHANGE_WORKSPACE) != 0); + gtk_widget_set_sensitive (amd->sendto_item, FALSE); } - else + else { - set_item_text (amd->pin_item, _("S_tick")); - set_item_stock (amd->pin_item, NETK_STOCK_STICK); - gtk_widget_set_sensitive (amd->pin_item, - (actions & NETK_WINDOW_ACTION_CHANGE_WORKSPACE) != 0); + set_item_text (amd->pin_item, _("S_tick")); + set_item_stock (amd->pin_item, NETK_STOCK_STICK); + gtk_widget_set_sensitive (amd->pin_item, + (actions & NETK_WINDOW_ACTION_CHANGE_WORKSPACE) != 0); - if (actions & NETK_WINDOW_ACTION_CHANGE_WORKSPACE) + if (actions & NETK_WINDOW_ACTION_CHANGE_WORKSPACE) { - GtkWidget *sendto_menu = create_sendto_menu (amd); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->sendto_item), - sendto_menu); - gtk_widget_set_sensitive (amd->sendto_item, TRUE); + GtkWidget *sendto_menu = create_sendto_menu (amd); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->sendto_item), + sendto_menu); + gtk_widget_set_sensitive (amd->sendto_item, TRUE); } - else + else { - gtk_widget_set_sensitive (amd->sendto_item, FALSE); + gtk_widget_set_sensitive (amd->sendto_item, FALSE); } } - - gtk_widget_set_sensitive (amd->close_item, - (actions & NETK_WINDOW_ACTION_CLOSE) != 0); + + gtk_widget_set_sensitive (amd->close_item, + (actions & NETK_WINDOW_ACTION_CLOSE) != 0); - return FALSE; + return FALSE; } static void queue_update (ActionMenuData *amd) { - if (amd->idle_handler == 0) - amd->idle_handler = g_idle_add ((GSourceFunc)update_menu_state, amd); + if (amd->idle_handler == 0) + amd->idle_handler = g_idle_add ((GSourceFunc)update_menu_state, amd); } static void -state_changed_callback (NetkWindow *window, +state_changed_callback (NetkWindow *window, NetkWindowState changed_mask, NetkWindowState new_state, gpointer data) { - ActionMenuData *amd; + ActionMenuData *amd; - amd = get_data (data); + amd = get_data (data); - if (amd) - queue_update (amd); + if (amd) + queue_update (amd); } static void -actions_changed_callback (NetkWindow *window, +actions_changed_callback (NetkWindow *window, NetkWindowActions changed_mask, NetkWindowActions new_actions, gpointer data) { - ActionMenuData *amd; + ActionMenuData *amd; - amd = get_data (data); + amd = get_data (data); - if (amd) - queue_update (amd); + if (amd) + queue_update (amd); } static GtkWidget* make_menu_item (ActionMenuData *amd, WindowAction action) { - GtkWidget *mi; - - mi = gtk_image_menu_item_new_with_label (""); - - set_data (G_OBJECT (mi), amd); - - g_signal_connect (G_OBJECT (mi), "activate", - G_CALLBACK (item_activated_callback), - GINT_TO_POINTER (action)); - - gtk_widget_show (mi); + GtkWidget *mi; + + mi = gtk_image_menu_item_new_with_label (""); + + set_data (G_OBJECT (mi), amd); + + g_signal_connect (G_OBJECT (mi), "activate", + G_CALLBACK (item_activated_callback), + GINT_TO_POINTER (action)); + + gtk_widget_show (mi); - return mi; + return mi; } static void amd_free (ActionMenuData *amd) { - if (amd->idle_handler) - g_source_remove (amd->idle_handler); + if (amd->idle_handler) + g_source_remove (amd->idle_handler); - g_free (amd); + _netk_slice_free (ActionMenuData, amd); } /** @@ -394,88 +394,88 @@ GtkWidget* netk_create_window_action_menu (NetkWindow *window) { - GtkWidget *menu; - ActionMenuData *amd; - GtkWidget *separator; + GtkWidget *menu; + ActionMenuData *amd; + GtkWidget *separator; - /* be sure to initialize libraries i18n support first */ - _xfce_i18n_init (); + /* be sure to initialize libraries i18n support first */ + _xfce_i18n_init (); - amd = g_new0 (ActionMenuData, 1); - amd->window = window; - - menu = gtk_menu_new (); - g_object_ref (menu); - gtk_object_sink (GTK_OBJECT (menu)); + amd = _netk_slice_new0 (ActionMenuData); + amd->window = window; + + menu = gtk_menu_new (); + g_object_ref (G_OBJECT (menu)); + gtk_object_sink (GTK_OBJECT (menu)); - amd->menu = menu; - - g_object_set_data_full (G_OBJECT (menu), "netk-action-data", - amd, (GDestroyNotify) amd_free); + amd->menu = menu; + + g_object_set_data_full (G_OBJECT (menu), "netk-action-data", + amd, (GDestroyNotify) amd_free); - g_object_weak_ref (G_OBJECT (window), window_weak_notify, menu); - g_object_weak_ref (G_OBJECT (menu), object_weak_notify, window); + g_object_weak_ref (G_OBJECT (window), window_weak_notify, menu); + g_object_weak_ref (G_OBJECT (menu), object_weak_notify, window); - amd->maximize_item = make_menu_item (amd, MAXIMIZE); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), - amd->maximize_item); + amd->maximize_item = make_menu_item (amd, MAXIMIZE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + amd->maximize_item); - amd->minimize_item = make_menu_item (amd, MINIMIZE); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), - amd->minimize_item); + amd->minimize_item = make_menu_item (amd, MINIMIZE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + amd->minimize_item); - amd->shade_item = make_menu_item (amd, SHADE); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), - amd->shade_item); + amd->shade_item = make_menu_item (amd, SHADE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + amd->shade_item); - amd->pin_item = make_menu_item (amd, PIN); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), - amd->pin_item); - set_item_stock (amd->pin_item, NULL); + amd->pin_item = make_menu_item (amd, PIN); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + amd->pin_item); + set_item_stock (amd->pin_item, NULL); - amd->sendto_item = make_menu_item (amd, SENDTO); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), - amd->sendto_item); - set_item_text (amd->sendto_item, _("Send to...")); - set_item_stock (amd->sendto_item, GTK_STOCK_JUMP_TO); + amd->sendto_item = make_menu_item (amd, SENDTO); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + amd->sendto_item); + set_item_text (amd->sendto_item, _("Send to...")); + set_item_stock (amd->sendto_item, GTK_STOCK_JUMP_TO); - if (netk_window_is_sticky (amd->window)) + if (netk_window_is_sticky (amd->window)) { - GtkWidget *dummy = gtk_menu_new (); - gtk_widget_show (dummy); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->sendto_item), dummy); - gtk_widget_set_sensitive (amd->sendto_item, FALSE); + GtkWidget *dummy = gtk_menu_new (); + gtk_widget_show (dummy); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->sendto_item), dummy); + gtk_widget_set_sensitive (amd->sendto_item, FALSE); } - else + else { - GtkWidget *sendto_menu = create_sendto_menu (amd); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->sendto_item), sendto_menu); + GtkWidget *sendto_menu = create_sendto_menu (amd); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (amd->sendto_item), sendto_menu); } - - separator = gtk_separator_menu_item_new (); - gtk_widget_show (separator); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), - separator); + + separator = gtk_separator_menu_item_new (); + gtk_widget_show (separator); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + separator); - amd->close_item = make_menu_item (amd, CLOSE); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), - amd->close_item); - set_item_text (amd->close_item, _("_Close")); - set_item_stock (amd->close_item, NETK_STOCK_DELETE); + amd->close_item = make_menu_item (amd, CLOSE); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), + amd->close_item); + set_item_text (amd->close_item, _("_Close")); + set_item_stock (amd->close_item, NETK_STOCK_DELETE); - g_signal_connect_object (G_OBJECT (amd->window), - "state_changed", - G_CALLBACK (state_changed_callback), - G_OBJECT (menu), - 0); + g_signal_connect_object (G_OBJECT (amd->window), + "state_changed", + G_CALLBACK (state_changed_callback), + G_OBJECT (menu), + 0); - g_signal_connect_object (G_OBJECT (amd->window), - "actions_changed", - G_CALLBACK (actions_changed_callback), - G_OBJECT (menu), - 0); + g_signal_connect_object (G_OBJECT (amd->window), + "actions_changed", + G_CALLBACK (actions_changed_callback), + G_OBJECT (menu), + 0); - update_menu_state (amd); - - return menu; + update_menu_state (amd); + + return menu; } Index: libxfcegui4/netk-xutils.c =================================================================== --- libxfcegui4/netk-xutils.c (revision 22778) +++ libxfcegui4/netk-xutils.c (working copy) @@ -1690,7 +1690,7 @@ { NetkIconCache *icon_cache; - icon_cache = g_new0 (NetkIconCache, 1); + icon_cache = _netk_slice_new0 (NetkIconCache); icon_cache->origin = USING_NO_ICON; icon_cache->prev_pixmap = None; @@ -1734,7 +1734,7 @@ { clear_icon_cache (icon_cache, FALSE); - g_free (icon_cache); + _netk_slice_free (NetkIconCache, icon_cache); } void @@ -1832,7 +1832,7 @@ gdk_pixbuf_copy_area (src, 0, 0, w, h, tmp, (size - w) / 2, (size - h) / 2); - g_object_unref (src); + g_object_unref (G_OBJECT (src)); src = tmp; } } @@ -2357,7 +2357,7 @@ /* No one in-process has the selection at the moment */ - lm = g_new0 (LayoutManager, 1); + lm = _netk_slice_new0 (LayoutManager); lm->screen_number = number; lm->token = next_token; @@ -2382,7 +2382,7 @@ if (XGetSelectionOwner (gdk_display, lm->selection_atom) != lm->window) { - g_free (lm); + _netk_slice_free (LayoutManager, lm); return NETK_NO_MANAGER_TOKEN; } @@ -2424,7 +2424,7 @@ { XDestroyWindow (gdk_display, lm->window); - g_free (lm); + _netk_slice_free (LayoutManager, lm); layout_managers = g_slist_remove (layout_managers, lm); return; @@ -2454,7 +2454,7 @@ { XDestroyWindow (gdk_display, lm->window); - g_free (lm); + _netk_slice_free (LayoutManager, lm); layout_managers = g_slist_remove (layout_managers, lm); return TRUE; Index: libxfcegui4/netk-tasklist.c =================================================================== --- libxfcegui4/netk-tasklist.c (revision 22778) +++ libxfcegui4/netk-tasklist.c (working copy) @@ -48,6 +48,8 @@ #define NETK_IS_TASK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NETK_TYPE_TASK)) #define NETK_TASK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NETK_TYPE_TASK, NetkTaskClass)) +#define NETK_TASKLIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NETK_TYPE_TASKLIST, NetkTasklistPrivate)) + typedef struct _NetkTask NetkTask; typedef struct _NetkTaskClass NetkTaskClass; @@ -229,8 +231,8 @@ NetkScreen * screen); static void netk_tasklist_disconnect_screen (NetkTasklist * tasklist); -static gpointer task_parent_class; -static gpointer tasklist_parent_class; +static GObjectClass *task_parent_class; +static GObjectClass *tasklist_parent_class; GType netk_task_get_type (void) @@ -265,6 +267,7 @@ static void netk_task_init (NetkTask * task) { + } static void @@ -345,25 +348,25 @@ if (task->menu) { - g_object_unref (task->menu); + gtk_widget_destroy (task->menu); task->menu = NULL; } if (task->action_menu) { - g_object_unref (task->action_menu); + g_object_unref (G_OBJECT (task->action_menu)); task->action_menu = NULL; } if (task->window) { - g_object_unref (task->window); + g_object_unref (G_OBJECT (task->window)); task->window = NULL; } if (task->class_group) { - g_object_unref (task->class_group); + g_object_unref (G_OBJECT (task->class_group)); task->class_group = NULL; } @@ -411,8 +414,8 @@ { GTK_WIDGET_SET_FLAGS (GTK_WIDGET (tasklist), GTK_NO_WINDOW); - tasklist->priv = g_new0 (NetkTasklistPrivate, 1); - + tasklist->priv = NETK_TASKLIST_GET_PRIVATE (tasklist); + tasklist->priv->include_all_workspaces = FALSE; tasklist->priv->win_hash = g_hash_table_new (NULL, NULL); @@ -434,6 +437,8 @@ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); + g_type_class_add_private (klass, sizeof (NetkTasklistPrivate)); + tasklist_parent_class = g_type_class_peek_parent (klass); object_class->finalize = netk_tasklist_finalize; @@ -480,7 +485,7 @@ if (tasklist->priv->tooltips) { - g_object_unref (tasklist->priv->tooltips); + g_object_unref (G_OBJECT (tasklist->priv->tooltips)); tasklist->priv->tooltips = NULL; } @@ -488,9 +493,6 @@ tasklist->priv->size_hints = NULL; tasklist->priv->size_hints_len = 0; - g_free (tasklist->priv); - tasklist->priv = NULL; - G_OBJECT_CLASS (tasklist_parent_class)->finalize (object); } @@ -1131,7 +1133,7 @@ g_list_remove (tasklist->priv->windows, task); gtk_widget_unparent (widget); - g_object_unref (task); + g_object_unref (G_OBJECT (task)); break; } } @@ -1149,7 +1151,7 @@ g_list_remove (tasklist->priv->class_groups, task); gtk_widget_unparent (widget); - g_object_unref (task); + g_object_unref (G_OBJECT (task)); break; } } @@ -1778,7 +1780,7 @@ gtk_widget_show (image); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), image); - g_object_unref (pixbuf); + g_object_unref (G_OBJECT (pixbuf)); } gtk_widget_show (menu_item); @@ -1935,7 +1937,7 @@ } if (orig == pixbuf) - g_object_ref (pixbuf); + g_object_ref (G_OBJECT (pixbuf)); return pixbuf; } @@ -2016,7 +2018,7 @@ pixbuf = netk_task_get_icon (task); gtk_image_set_from_pixbuf (GTK_IMAGE (task->image), pixbuf); if (pixbuf) - g_object_unref (pixbuf); + g_object_unref (G_OBJECT (pixbuf)); text = netk_task_get_text (task); if (text != NULL) @@ -2230,6 +2232,7 @@ task->button = gtk_toggle_button_new (); task->button_activate = 0; gtk_button_set_relief (GTK_BUTTON (task->button), task->tasklist->priv->relief); + g_object_add_weak_pointer (G_OBJECT (task->button), (void **) &task->button); @@ -2243,7 +2246,7 @@ if (pixbuf) { task->image = gtk_image_new_from_pixbuf (pixbuf); - g_object_unref (pixbuf); + g_object_unref (G_OBJECT (pixbuf)); } else { @@ -2533,8 +2536,8 @@ task = g_object_new (NETK_TYPE_TASK, NULL); task->type = NETK_TASK_WINDOW; - task->window = g_object_ref (window); - task->class_group = g_object_ref (netk_window_get_class_group (window)); + task->window = g_object_ref (G_OBJECT (window)); + task->class_group = g_object_ref (G_OBJECT (netk_window_get_class_group (window))); task->tasklist = tasklist; task->blink_timeout_id = 0; @@ -2557,7 +2560,7 @@ task = g_object_new (NETK_TYPE_TASK, NULL); task->type = NETK_TASK_CLASS_GROUP; - task->class_group = g_object_ref (class_group); + task->class_group = g_object_ref (G_OBJECT (class_group)); task->window = NULL; task->tasklist = tasklist; task->blink_timeout_id = 0; Index: libxfcegui4/netk-pager.c =================================================================== --- libxfcegui4/netk-pager.c (revision 22778) +++ libxfcegui4/netk-pager.c (working copy) @@ -37,6 +37,8 @@ #define N_SCREEN_CONNECTIONS 11 +#define NETK_PAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NETK_TYPE_PAGER, NetkPagerPrivate)) + struct _NetkPagerPrivate { NetkScreen *screen; @@ -113,7 +115,7 @@ static GdkPixbuf *netk_pager_get_background (NetkPager * pager, int width, int height); -static gpointer parent_class; +static GObjectClass *parent_class; GType netk_pager_get_type (void) @@ -148,8 +150,8 @@ static void netk_pager_init (NetkPager * pager) { - pager->priv = g_new0 (NetkPagerPrivate, 1); - + pager->priv = NETK_PAGER_GET_PRIVATE (pager); + pager->priv->n_rows = 1; pager->priv->display_mode = NETK_PAGER_DISPLAY_CONTENT; pager->priv->show_all_workspaces = TRUE; @@ -168,6 +170,8 @@ { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + g_type_class_add_private (klass, sizeof (NetkPagerPrivate)); parent_class = g_type_class_peek_parent (klass); @@ -200,8 +204,6 @@ pager->priv->bg_cache = NULL; } - g_free (pager->priv); - G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -348,7 +350,7 @@ other_dimension_size = MAX (other_dimension_size, w); } - g_object_unref (layout); + g_object_unref (G_OBJECT (layout)); other_dimension_size += 2; } @@ -930,7 +932,7 @@ rect->x + (rect->width - w) / 2, rect->y + (rect->height - h) / 2, layout); - g_object_unref (layout); + g_object_unref (G_OBJECT (layout)); } } Index: libxfcegui4/netk-class-group.c =================================================================== --- libxfcegui4/netk-class-group.c (revision 22778) +++ libxfcegui4/netk-class-group.c (working copy) @@ -24,6 +24,7 @@ #include "netk-window.h" #include "netk-private.h" +#define NETK_CLASS_GROUP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NETK_TYPE_CLASS_GROUP, NetkClassGroupPrivate)) /* Private part of the NetkClassGroup structure */ struct _NetkClassGroupPrivate @@ -57,7 +58,7 @@ static guint signals[LAST_SIGNAL] = { 0 }; -static gpointer *parent_class; +static GObjectClass *parent_class; GType @@ -90,11 +91,13 @@ } static void -netk_class_group_class_init (NetkClassGroupClass * class) +netk_class_group_class_init (NetkClassGroupClass * klass) { - GObjectClass *gobject_class = G_OBJECT_CLASS (class); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (NetkClassGroupPrivate)); - parent_class = g_type_class_peek_parent (class); + parent_class = g_type_class_peek_parent (klass); gobject_class->finalize = netk_class_group_finalize; @@ -115,44 +118,37 @@ static void netk_class_group_init (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; + class_group->priv = NETK_CLASS_GROUP_GET_PRIVATE (class_group); + + class_group->priv->res_class = NULL; + class_group->priv->name = NULL; + class_group->priv->windows = NULL; - priv = g_new (NetkClassGroupPrivate, 1); - class_group->priv = priv; - - priv->res_class = NULL; - priv->name = NULL; - priv->windows = NULL; - - priv->icon = NULL; - priv->mini_icon = NULL; + class_group->priv->icon = NULL; + class_group->priv->mini_icon = NULL; } static void netk_class_group_finalize (GObject * object) { NetkClassGroup *class_group; - NetkClassGroupPrivate *priv; class_group = NETK_CLASS_GROUP (object); - priv = class_group->priv; - if (priv->res_class) - g_free (priv->res_class); + if (class_group->priv->res_class) + g_free (class_group->priv->res_class); - if (priv->name) - g_free (priv->name); + if (class_group->priv->name) + g_free (class_group->priv->name); - g_list_free (priv->windows); + g_list_free (class_group->priv->windows); - if (priv->icon) - g_object_unref (priv->icon); + if (class_group->priv->icon) + g_object_unref (G_OBJECT (class_group->priv->icon)); - if (priv->mini_icon) - g_object_unref (priv->mini_icon); + if (class_group->priv->mini_icon) + g_object_unref (G_OBJECT (class_group->priv->mini_icon)); - g_free (priv); - G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -190,7 +186,6 @@ p_netk_class_group_create (const char *res_class) { NetkClassGroup *class_group; - NetkClassGroupPrivate *priv; if (class_group_hash == NULL) class_group_hash = g_hash_table_new (g_str_hash, g_str_equal); @@ -199,11 +194,10 @@ (class_group_hash, res_class ? res_class : "") == NULL, NULL); class_group = g_object_new (NETK_TYPE_CLASS_GROUP, NULL); - priv = class_group->priv; - priv->res_class = g_strdup (res_class ? res_class : ""); + class_group->priv->res_class = g_strdup (res_class ? res_class : ""); - g_hash_table_insert (class_group_hash, priv->res_class, class_group); + g_hash_table_insert (class_group_hash, class_group->priv->res_class, class_group); /* Hash now owns one ref, caller gets none */ return class_group; @@ -218,37 +212,30 @@ void p_netk_class_group_destroy (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; - g_return_if_fail (NETK_IS_CLASS_GROUP (class_group)); - priv = class_group->priv; + g_hash_table_remove (class_group_hash, class_group->priv->res_class); - g_hash_table_remove (class_group_hash, priv->res_class); + g_free (class_group->priv->res_class); + class_group->priv->res_class = NULL; - g_free (priv->res_class); - priv->res_class = NULL; - /* remove hash's ref on the class group */ - g_object_unref (class_group); + g_object_unref (G_OBJECT (class_group)); } static const char * get_name_from_applications (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; const char *first_name; GList *l; - priv = class_group->priv; - /* Try to get the name from the group leaders. If all have the same name, we * can use that. */ first_name = NULL; - for (l = priv->windows; l; l = l->next) + for (l = class_group->priv->windows; l; l = l->next) { NetkWindow *w; NetkApplication *app; @@ -282,19 +269,16 @@ static const char * get_name_from_windows (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; const char *first_name; GList *l; - priv = class_group->priv; - /* Try to get the name from windows, following the same rationale as * get_name_from_applications() */ first_name = NULL; - for (l = priv->windows; l; l = l->next) + for (l = class_group->priv->windows; l; l = l->next) { NetkWindow *window; @@ -323,15 +307,12 @@ static void set_name (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; const char *new_name; - priv = class_group->priv; - - if (priv->name) + if (class_group->priv->name) { - g_free (priv->name); - priv->name = NULL; + g_free (class_group->priv->name); + class_group->priv->name = NULL; } new_name = get_name_from_applications (class_group); @@ -341,15 +322,15 @@ new_name = get_name_from_windows (class_group); if (!new_name) - new_name = priv->res_class; + new_name = class_group->priv->res_class; } g_assert (new_name != NULL); - if (!priv->name || g_utf8_collate (priv->name, new_name) != 0) + if (!class_group->priv->name || g_utf8_collate (class_group->priv->name, new_name) != 0) { - g_free (priv->name); - priv->name = g_strdup (new_name); + g_free (class_group->priv->name); + class_group->priv->name = g_strdup (new_name); g_signal_emit (G_OBJECT (class_group), signals[NAME_CHANGED], 0); } @@ -360,15 +341,12 @@ get_icons_from_applications (NetkClassGroup * class_group, GdkPixbuf ** icon, GdkPixbuf ** mini_icon) { - NetkClassGroupPrivate *priv; GList *l; - priv = class_group->priv; - *icon = NULL; *mini_icon = NULL; - for (l = priv->windows; l; l = l->next) + for (l = class_group->priv->windows; l; l = l->next) { NetkWindow *window; NetkApplication *app; @@ -396,15 +374,12 @@ get_icons_from_windows (NetkClassGroup * class_group, GdkPixbuf ** icon, GdkPixbuf ** mini_icon) { - NetkClassGroupPrivate *priv; GList *l; - priv = class_group->priv; - *icon = NULL; *mini_icon = NULL; - for (l = priv->windows; l; l = l->next) + for (l = class_group->priv->windows; l; l = l->next) { NetkWindow *window; @@ -429,11 +404,8 @@ static void set_icon (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; GdkPixbuf *icon, *mini_icon; - priv = class_group->priv; - get_icons_from_applications (class_group, &icon, &mini_icon); if (!icon || !mini_icon) @@ -445,14 +417,14 @@ g_assert (icon && mini_icon); - if (priv->icon) - g_object_unref (priv->icon); + if (class_group->priv->icon) + g_object_unref (G_OBJECT (class_group->priv->icon)); - if (priv->mini_icon) - g_object_unref (priv->mini_icon); + if (class_group->priv->mini_icon) + g_object_unref (G_OBJECT (class_group->priv->mini_icon)); - priv->icon = g_object_ref (icon); - priv->mini_icon = g_object_ref (mini_icon); + class_group->priv->icon = g_object_ref (G_OBJECT (icon)); + class_group->priv->mini_icon = g_object_ref (G_OBJECT (mini_icon)); g_signal_emit (G_OBJECT (class_group), signals[ICON_CHANGED], 0); } @@ -469,15 +441,11 @@ p_netk_class_group_add_window (NetkClassGroup * class_group, NetkWindow * window) { - NetkClassGroupPrivate *priv; - g_return_if_fail (NETK_IS_CLASS_GROUP (class_group)); g_return_if_fail (NETK_IS_WINDOW (window)); g_return_if_fail (netk_window_get_class_group (window) == NULL); - priv = class_group->priv; - - priv->windows = g_list_prepend (priv->windows, window); + class_group->priv->windows = g_list_prepend (class_group->priv->windows, window); p_netk_window_set_class_group (window, class_group); set_name (class_group); @@ -500,15 +468,11 @@ p_netk_class_group_remove_window (NetkClassGroup * class_group, NetkWindow * window) { - NetkClassGroupPrivate *priv; - g_return_if_fail (NETK_IS_CLASS_GROUP (class_group)); g_return_if_fail (NETK_IS_WINDOW (window)); g_return_if_fail (netk_window_get_class_group (window) == class_group); - priv = class_group->priv; - - priv->windows = g_list_remove (priv->windows, window); + class_group->priv->windows = g_list_remove (class_group->priv->windows, window); p_netk_window_set_class_group (window, NULL); } @@ -524,12 +488,9 @@ GList * netk_class_group_get_windows (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; - g_return_val_if_fail (class_group != NULL, NULL); - priv = class_group->priv; - return priv->windows; + return class_group->priv->windows; } /** @@ -544,12 +505,9 @@ const char * netk_class_group_get_res_class (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; - g_return_val_if_fail (class_group != NULL, NULL); - priv = class_group->priv; - return priv->res_class; + return class_group->priv->res_class; } /** @@ -563,13 +521,9 @@ const char * netk_class_group_get_name (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; - g_return_val_if_fail (class_group != NULL, NULL); - priv = class_group->priv; - - return priv->name; + return class_group->priv->name; } /** @@ -583,13 +537,9 @@ GdkPixbuf * netk_class_group_get_icon (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; - g_return_val_if_fail (class_group != NULL, NULL); - priv = class_group->priv; - - return priv->icon; + return class_group->priv->icon; } /** @@ -603,11 +553,7 @@ GdkPixbuf * netk_class_group_get_mini_icon (NetkClassGroup * class_group) { - NetkClassGroupPrivate *priv; - g_return_val_if_fail (class_group != NULL, NULL); - priv = class_group->priv; - - return priv->mini_icon; + return class_group->priv->mini_icon; } Index: libxfcegui4/xfce-icontheme.c =================================================================== --- libxfcegui4/xfce-icontheme.c (revision 22778) +++ libxfcegui4/xfce-icontheme.c (working copy) @@ -28,6 +28,7 @@ #include "icons.h" #include "xfce-icontheme.h" +#define XFCE_ICON_THEME_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFCE_TYPE_ICON_THEME, XfceIconThemePriv)) struct _XfceIconThemePriv { @@ -35,8 +36,8 @@ }; enum { - XFCEIC_SIG_CHANGED, - XFCEIC_N_SIGNALS + XFCEIC_SIG_CHANGED, + XFCEIC_N_SIGNALS }; static void xfce_icon_theme_class_init(XfceIconThemeClass *klass); @@ -57,38 +58,40 @@ GType xfce_icon_theme_get_type() { - static GType icon_theme_type = 0; - - if(!icon_theme_type) { - static const GTypeInfo icon_theme_info = { - sizeof(XfceIconThemeClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc)xfce_icon_theme_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(XfceIconTheme), - 0, /* n_preallocs */ - (GInstanceInitFunc)xfce_icon_theme_init, - NULL /* value_table */ - }; - - icon_theme_type = g_type_register_static(G_TYPE_OBJECT, - "XfceIconTheme", &icon_theme_info, 0); - } - - return icon_theme_type; + static GType icon_theme_type = 0; + + if(!icon_theme_type) { + static const GTypeInfo icon_theme_info = { + sizeof(XfceIconThemeClass), + NULL, /* base_init */ + NULL, /* base_finalize */ + (GClassInitFunc)xfce_icon_theme_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof(XfceIconTheme), + 0, /* n_preallocs */ + (GInstanceInitFunc)xfce_icon_theme_init, + NULL /* value_table */ + }; + + icon_theme_type = g_type_register_static(G_TYPE_OBJECT, + "XfceIconTheme", &icon_theme_info, 0); + } + + return icon_theme_type; } static void xfce_icon_theme_class_init(XfceIconThemeClass *klass) { - GObjectClass *gobject_class = G_OBJECT_CLASS(klass); - - parent_class = g_type_class_peek_parent(klass); - - gobject_class->finalize = xfce_icon_theme_finalize; - + GObjectClass *gobject_class = G_OBJECT_CLASS(klass); + + g_type_class_add_private (klass, sizeof (XfceIconThemePriv)); + + parent_class = g_type_class_peek_parent(klass); + + gobject_class->finalize = xfce_icon_theme_finalize; + /** * XfceIconTheme::changed * @icon_theme: the icon theme @@ -98,31 +101,29 @@ * * Since 4.1 **/ - icon_theme_signals[XFCEIC_SIG_CHANGED] = g_signal_new("changed", - G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(XfceIconThemeClass, changed), NULL, NULL, - g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + icon_theme_signals[XFCEIC_SIG_CHANGED] = g_signal_new("changed", + G_TYPE_FROM_CLASS(klass), G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET(XfceIconThemeClass, changed), NULL, NULL, + g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); } static void xfce_icon_theme_init(XfceIconTheme *icon_theme) { - icon_theme->priv = g_new0(XfceIconThemePriv, 1); + icon_theme->priv = XFCE_ICON_THEME_GET_PRIVATE (icon_theme); } static void xfce_icon_theme_finalize(GObject *object) { - XfceIconTheme *icon_theme = XFCE_ICON_THEME(object); + XfceIconTheme *icon_theme = XFCE_ICON_THEME(object); g_signal_handlers_disconnect_by_func(G_OBJECT(icon_theme->priv->icon_theme), G_CALLBACK(xfce_icon_theme_changed_cb), icon_theme); - g_free(icon_theme->priv); - - G_OBJECT_CLASS(parent_class)->finalize(object); + G_OBJECT_CLASS(parent_class)->finalize(object); } /** @@ -169,9 +170,9 @@ **/ gchar * xfce_icon_theme_lookup(XfceIconTheme *icon_theme, const gchar *icon_name, - gint icon_size) + gint icon_size) { - return xfce_themed_icon_lookup(icon_name, icon_size); + return xfce_themed_icon_lookup(icon_name, icon_size); } /** @@ -191,9 +192,9 @@ **/ gchar * xfce_icon_theme_lookup_list(XfceIconTheme *icon_theme, GList *icon_names, - gint icon_size) + gint icon_size) { - return xfce_themed_icon_lookup_list(icon_names, icon_size); + return xfce_themed_icon_lookup_list(icon_names, icon_size); } /** @@ -215,9 +216,9 @@ **/ gchar * xfce_icon_theme_lookup_category(XfceIconTheme *icon_theme, - XfceIconThemeCategory category, gint icon_size) + XfceIconThemeCategory category, gint icon_size) { - return xfce_themed_icon_lookup_category(category, icon_size); + return xfce_themed_icon_lookup_category(category, icon_size); } /** @@ -237,9 +238,9 @@ **/ GdkPixbuf * xfce_icon_theme_load(XfceIconTheme *icon_theme, const gchar *icon_name, - gint icon_size) + gint icon_size) { - return xfce_themed_icon_load(icon_name, icon_size); + return xfce_themed_icon_load(icon_name, icon_size); } /** @@ -259,9 +260,9 @@ **/ GdkPixbuf * xfce_icon_theme_load_list(XfceIconTheme *icon_theme, GList *icon_names, - gint icon_size) + gint icon_size) { - return xfce_themed_icon_load_list(icon_names, icon_size); + return xfce_themed_icon_load_list(icon_names, icon_size); } /** @@ -283,9 +284,9 @@ **/ GdkPixbuf * xfce_icon_theme_load_category(XfceIconTheme *icon_theme, - XfceIconThemeCategory category, gint icon_size) + XfceIconThemeCategory category, gint icon_size) { - return xfce_themed_icon_load_category(category, icon_size); + return xfce_themed_icon_load_category(category, icon_size); } /** @@ -301,21 +302,21 @@ GList * xfce_icon_theme_get_search_path(XfceIconTheme *icon_theme) { - GList *new_list = NULL; + GList *new_list = NULL; gchar **path = NULL; gint n_elements = 0, i; - - g_return_val_if_fail(XFCE_IS_ICON_THEME(icon_theme), NULL); - + + g_return_val_if_fail(XFCE_IS_ICON_THEME(icon_theme), NULL); + gtk_icon_theme_get_search_path(icon_theme->priv->icon_theme, &path, &n_elements); - + for(i = 0; i < n_elements; ++i) new_list = g_list_prepend(new_list, path[i]); - + g_free(path); - return g_list_reverse(new_list); + return g_list_reverse(new_list); } /** @@ -333,9 +334,9 @@ { gchar **path = NULL; gint i, n_elements; - + g_return_if_fail(XFCE_IS_ICON_THEME(icon_theme)); - + n_elements = g_list_length(search_paths); path = g_new(gchar *, n_elements + 1); @@ -360,10 +361,10 @@ **/ void xfce_icon_theme_prepend_search_path(XfceIconTheme *icon_theme, - const gchar *search_path) + const gchar *search_path) { - g_return_if_fail(XFCE_IS_ICON_THEME(icon_theme) && search_path); - + g_return_if_fail(XFCE_IS_ICON_THEME(icon_theme) && search_path); + gtk_icon_theme_prepend_search_path(icon_theme->priv->icon_theme, search_path); } @@ -379,10 +380,10 @@ **/ void xfce_icon_theme_append_search_path(XfceIconTheme *icon_theme, - const gchar *search_path) + const gchar *search_path) { - g_return_if_fail(XFCE_IS_ICON_THEME(icon_theme) && search_path); - + g_return_if_fail(XFCE_IS_ICON_THEME(icon_theme) && search_path); + gtk_icon_theme_append_search_path(icon_theme->priv->icon_theme, search_path); } @@ -401,9 +402,9 @@ **/ XfceIconThemeCategory xfce_icon_theme_register_category(XfceIconTheme *icon_theme, GList *icon_names) -{ - g_return_val_if_fail(XFCE_IS_ICON_THEME(icon_theme) && icon_names, -1); - +{ + g_return_val_if_fail(XFCE_IS_ICON_THEME(icon_theme) && icon_names, -1); + g_warning("xfce_icon_theme_register_category() is deprecated and no longer " \ "does anything useful. Use xfce_themed_icon_load/lookup_list() instead."); @@ -424,7 +425,7 @@ **/ void xfce_icon_theme_unregister_category(XfceIconTheme *icon_theme, - XfceIconThemeCategory category) + XfceIconThemeCategory category) { /* no-op */ } @@ -442,7 +443,7 @@ void xfce_icon_theme_set_use_svg(XfceIconTheme *icon_theme, gboolean use_svg) { - g_warning("xfce_icon_theme_set_use_svg() is deprecated and no longer " \ + g_warning("xfce_icon_theme_set_use_svg() is deprecated and no longer " \ "does anything useful. Use GtkIconTheme directly to avoid " \ "searching for SVG icons."); } @@ -458,6 +459,6 @@ gboolean xfce_icon_theme_get_use_svg(XfceIconTheme *icon_theme) { - /* no-op */ + /* no-op */ return TRUE; } Index: libxfcegui4/xfce-appmenuitem.c =================================================================== --- libxfcegui4/xfce-appmenuitem.c (revision 22778) +++ libxfcegui4/xfce-appmenuitem.c (working copy) @@ -37,6 +37,8 @@ #include #include +#define XFCE_APP_MENU_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), XFCE_TYPE_APP_MENU_ITEM, XfceAppMenuItemPriv)) + static void xfce_app_menu_item_class_init(XfceAppMenuItemClass *klass); static void xfce_app_menu_item_init(XfceAppMenuItem *app_menu_item); static void xfce_app_menu_item_set_property(GObject *object, @@ -150,6 +152,8 @@ parent_class = g_type_class_peek_parent(klass); + g_type_class_add_private (klass, sizeof (XfceAppMenuItemPriv)); + widget_class->map_event = xfce_app_menu_item_map; object_class->destroy = xfce_app_menu_item_destroy; @@ -177,7 +181,7 @@ static void xfce_app_menu_item_init(XfceAppMenuItem *app_menu_item) { - app_menu_item->priv = g_new0(XfceAppMenuItemPriv, 1); + app_menu_item->priv = XFCE_APP_MENU_GET_PRIVATE (app_menu_item); app_menu_item->priv->destroyed = FALSE; gtk_widget_add_events(GTK_WIDGET(app_menu_item), GDK_STRUCTURE_MASK|GDK_SUBSTRUCTURE_MASK|GDK_VISIBILITY_NOTIFY_MASK); @@ -301,8 +305,6 @@ if(!app_menu_item->priv->destroyed) xfce_app_menu_item_destroy(GTK_OBJECT(object)); - g_free(app_menu_item->priv); - (*G_OBJECT_CLASS(parent_class)->finalize)(object); } Index: libxfcegui4/netk-workspace.c =================================================================== --- libxfcegui4/netk-workspace.c (revision 22778) +++ libxfcegui4/netk-workspace.c (working copy) @@ -34,6 +34,8 @@ #include "netk-xutils.h" #include "netk-private.h" +#define NETK_WORKSPACE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NETK_TYPE_WORKSPACE, NetkWorkspacePrivate)) + struct _NetkWorkspacePrivate { NetkScreen *screen; @@ -57,7 +59,7 @@ static void emit_name_changed (NetkWorkspace * space); -static gpointer parent_class; +static GObjectClass *parent_class; static guint signals[LAST_SIGNAL] = { 0 }; GType @@ -93,8 +95,8 @@ static void netk_workspace_init (NetkWorkspace * workspace) { - workspace->priv = g_new0 (NetkWorkspacePrivate, 1); - + workspace->priv = NETK_WORKSPACE_GET_PRIVATE (workspace); + workspace->priv->number = -1; } @@ -102,6 +104,8 @@ netk_workspace_class_init (NetkWorkspaceClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (NetkWorkspacePrivate)); parent_class = g_type_class_peek_parent (klass); @@ -123,8 +127,6 @@ g_free (workspace->priv->name); - g_free (workspace->priv); - G_OBJECT_CLASS (parent_class)->finalize (object); } Index: libxfcegui4/netk-private.h =================================================================== --- libxfcegui4/netk-private.h (revision 22778) +++ libxfcegui4/netk-private.h (working copy) @@ -33,6 +33,17 @@ G_BEGIN_DECLS +/* support macros for the slice allocator */ +#if GLIB_CHECK_VERSION(2,10,0) +#define _netk_slice_new(type) (g_slice_new (type)) +#define _netk_slice_new0(type) (g_slice_new0 (type)) +#define _netk_slice_free(type, ptr) G_STMT_START{ g_slice_free (type, (ptr)); }G_STMT_END +#else +#define _netk_slice_new(type) (g_new (type, 1)) +#define _netk_slice_new0(type) (g_new0 (type, 1)) +#define _netk_slice_free(type, ptr) G_STMT_START{ g_free ((ptr)); }G_STMT_END +#endif + void p_netk_application_process_property_notify (NetkApplication * app, XEvent * xevent); void p_netk_window_process_property_notify (NetkWindow * window, Index: libxfcegui4/netk-application.c =================================================================== --- libxfcegui4/netk-application.c (revision 22778) +++ libxfcegui4/netk-application.c (working copy) @@ -29,6 +29,8 @@ #define FALLBACK_NAME "??" +#define NETK_APPLICATION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NETK_TYPE_APPLICATION, NetkApplicationPrivate)) + static GHashTable *app_hash = NULL; struct _NetkApplicationPrivate @@ -72,7 +74,7 @@ static void netk_application_finalize (GObject * object); -static gpointer parent_class; +static GObjectClass *parent_class; static guint signals[LAST_SIGNAL] = { 0 }; GType @@ -108,8 +110,8 @@ static void netk_application_init (NetkApplication * application) { - application->priv = g_new0 (NetkApplicationPrivate, 1); - + application->priv = NETK_APPLICATION_GET_PRIVATE (application); + application->priv->icon_cache = p_netk_icon_cache_new (); p_netk_icon_cache_set_want_fallback (application->priv->icon_cache, FALSE); } @@ -118,6 +120,8 @@ netk_application_class_init (NetkApplicationClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (NetkApplicationPrivate)); parent_class = g_type_class_peek_parent (klass); @@ -155,8 +159,6 @@ g_free (application->priv->name); - g_free (application->priv); - G_OBJECT_CLASS (parent_class)->finalize (object); } Index: libxfcegui4/netk-screen.c =================================================================== --- libxfcegui4/netk-screen.c (revision 22778) +++ libxfcegui4/netk-screen.c (working copy) @@ -50,6 +50,8 @@ #include "netk-xutils.h" #include "netk-private.h" +#define NETK_SCREEN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NETK_TYPE_SCREEN, NetkScreenPrivate)) + static NetkScreen **screens = NULL; struct _NetkScreenPrivate @@ -143,7 +145,7 @@ static void emit_showing_desktop_changed (NetkScreen * screen); static void emit_viewports_changed (NetkScreen * screen); -static gpointer parent_class; +static GObjectClass *parent_class; static guint signals[LAST_SIGNAL] = { 0 }; GType @@ -179,14 +181,15 @@ static void netk_screen_init (NetkScreen * screen) { - screen->priv = g_new0 (NetkScreenPrivate, 1); - + screen->priv = NETK_SCREEN_GET_PRIVATE (screen); } static void netk_screen_class_init (NetkScreenClass * klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); + + g_type_class_add_private (klass, sizeof (NetkScreenPrivate)); p_netk_init (); @@ -316,8 +319,6 @@ screens[screen->priv->number] = NULL; - g_free (screen->priv); - G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -1116,7 +1117,7 @@ tmp = deleted; while (tmp != NULL) { - g_object_unref (tmp->data); + g_object_unref (G_OBJECT (tmp->data)); tmp = tmp->next; } Index: libxfcegui4/netk-trayicon.c =================================================================== --- libxfcegui4/netk-trayicon.c (revision 22778) +++ libxfcegui4/netk-trayicon.c (working copy) @@ -353,8 +353,8 @@ NetkTrayIcon *icon; icon = NETK_TRAY_ICON (g_object_new (NETK_TYPE_TRAY_ICON, NULL)); - netk_tray_icon_set_screen(icon, xscreen); - g_object_ref(GTK_WIDGET(icon)); + netk_tray_icon_set_screen (icon, xscreen); + g_object_ref (G_OBJECT (icon)); return (GTK_WIDGET (icon)); }