Skip to content

Commit

Permalink
snimenu: implement dynamic menu updates
Browse files Browse the repository at this point in the history
  • Loading branch information
LBCrion committed Sep 11, 2024
1 parent 1cf9743 commit 02049b6
Show file tree
Hide file tree
Showing 5 changed files with 267 additions and 164 deletions.
10 changes: 5 additions & 5 deletions src/grid.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ static void grid_init ( Grid *self )
priv = grid_get_instance_private(GRID(self));

priv->grid = gtk_grid_new();
gtk_container_add(GTK_CONTAINER(self),priv->grid);
g_signal_connect(G_OBJECT(priv->grid),"style_updated",
(GCallback)grid_style_updated,self);
g_signal_connect(G_OBJECT(priv->grid),"remove",
(GCallback)grid_remove,self);
gtk_container_add(GTK_CONTAINER(self), priv->grid);
g_signal_connect(G_OBJECT(priv->grid), "style_updated",
(GCallback)grid_style_updated, self);
g_signal_connect(G_OBJECT(priv->grid), "remove",
(GCallback)grid_remove, self);
}

GtkWidget *grid_new ( void )
Expand Down
2 changes: 2 additions & 0 deletions src/sni.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ typedef struct sni_item {
guint32 order;
GCancellable *cancel;
SniHost *host;
GtkWidget *menu_obj;
} SniItem;

void sni_init ( void );
Expand All @@ -69,5 +70,6 @@ void sni_item_free ( SniItem *sni );
GList *sni_item_get_list ( void );
gchar *sni_item_tooltip ( SniItem *item );
gchar *sni_item_icon ( SniItem *item );
void sni_menu_init ( SniItem *sni );

#endif
2 changes: 2 additions & 0 deletions src/sniitem.c
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ void sni_item_prop_cb ( GDBusConnection *con, GAsyncResult *res,
{
g_free(wrap->sni->menu_path);
g_variant_get(inner, "o", &(wrap->sni->menu_path));
sni_menu_init(wrap->sni);
g_debug("sni %s: property %s = %s", wrap->sni->dest,
sni_properties[wrap->prop], wrap->sni->menu_path);
}
Expand Down Expand Up @@ -283,6 +284,7 @@ void sni_item_free ( SniItem *sni )
for(i=0; i<SNI_MAX_STRING; i++)
g_free(sni->string[i]);

gtk_widget_destroy(sni->menu_obj);
g_free(sni->menu_path);
g_free(sni->tooltip);
g_free(sni->uid);
Expand Down
Loading

0 comments on commit 02049b6

Please sign in to comment.