--- a/gntwm.c Fri Apr 26 16:56:55 2019 -0400
+++ b/gntwm.c Fri Apr 26 20:43:15 2019 -0400
@@ -67,6 +67,11 @@
#define IDLE_CHECK_INTERVAL 5 /* 5 seconds */
@@ -109,7 +114,7 @@
static gboolean started_python = FALSE;
-G_DEFINE_TYPE(GntWM, gnt_wm, GNT_TYPE_BINDABLE)
+G_DEFINE_TYPE_WITH_PRIVATE(GntWM, gnt_wm, GNT_TYPE_BINDABLE) @@ -387,15 +392,16 @@
+ GntWMPrivate *priv = gnt_wm_get_instance_private(wm); wm->name_places = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
wm->title_places = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
gnt_style_read_workspaces(wm);
- if (wm->workspaces == NULL) {
+ if (priv->workspaces == NULL) { wm->cws = gnt_ws_new("default");
gnt_wm_add_workspace(wm, wm->cws);
- wm->cws = wm->workspaces->data;
+ wm->cws = priv->workspaces->data; @@ -584,6 +590,7 @@
window_list_activate(GntTree *tree, GntWM *wm)
+ GntWMPrivate *priv = gnt_wm_get_instance_private(wm); GntBindable *sel = gnt_tree_get_selection_data(GNT_TREE(tree));
gnt_widget_destroy(wm->_list.window);
@@ -592,7 +599,8 @@
- gnt_wm_switch_workspace(wm, g_list_index(wm->workspaces, sel));
+ gnt_wm_switch_workspace(wm, + g_list_index(priv->workspaces, sel)); gnt_wm_raise_window(wm, GNT_WIDGET(sel));
@@ -601,6 +609,7 @@
populate_window_list(GntWM *wm, gboolean workspace)
+ GntWMPrivate *priv = gnt_wm_get_instance_private(wm); GntTree *tree = GNT_TREE(wm->windows->tree);
@@ -615,7 +624,7 @@
update_window_in_list(wm, GNT_WIDGET(box));
- GList *ws = wm->workspaces;
+ GList *ws = priv->workspaces; for (; ws; ws = ws->next) {
gnt_tree_add_row_last(tree, ws->data,
gnt_tree_create_row(tree, gnt_ws_get_name(GNT_WS(ws->data))), NULL);
@@ -1250,9 +1259,10 @@
workspace_new(GntBindable *bindable, G_GNUC_UNUSED GList *params)
GntWM *wm = GNT_WM(bindable);
+ GntWMPrivate *priv = gnt_wm_get_instance_private(wm); GntWS *ws = gnt_ws_new(NULL);
gnt_wm_add_workspace(wm, ws);
- gnt_wm_switch_workspace(wm, g_list_index(wm->workspaces, ws));
+ gnt_wm_switch_workspace(wm, g_list_index(priv->workspaces, ws)); @@ -1405,14 +1415,17 @@
gnt_wm_destroy(GObject *obj)
+ GntWMPrivate *priv = gnt_wm_get_instance_private(wm); g_hash_table_foreach(wm->nodes, (GHFunc)accumulate_windows, &list);
g_list_free_full(list, (GDestroyNotify)gnt_widget_destroy);
g_hash_table_destroy(wm->nodes);
- g_list_free_full(wm->workspaces, g_object_unref);
+ g_list_free_full(priv->workspaces, g_object_unref); + priv->workspaces = NULL; @@ -1617,13 +1630,25 @@
gnt_wm_add_workspace(GntWM *wm, GntWS *ws)
- wm->workspaces = g_list_append(wm->workspaces, ws);
+ GntWMPrivate *priv = NULL; + g_return_if_fail(GNT_IS_WM(wm)); + g_return_if_fail(GNT_IS_WS(ws)); + priv = gnt_wm_get_instance_private(wm); + priv->workspaces = g_list_append(priv->workspaces, ws); gnt_wm_switch_workspace(GntWM *wm, gint n)
- GntWS *s = g_list_nth_data(wm->workspaces, n);
+ GntWMPrivate *priv = NULL; + g_return_val_if_fail(GNT_IS_WM(wm), FALSE); + priv = gnt_wm_get_instance_private(wm); + s = g_list_nth_data(priv->workspaces, n); @@ -1651,14 +1676,26 @@
gnt_wm_switch_workspace_prev(GntWM *wm)
- int n = g_list_index(wm->workspaces, wm->cws);
+ GntWMPrivate *priv = NULL; + g_return_val_if_fail(GNT_IS_WM(wm), FALSE); + priv = gnt_wm_get_instance_private(wm); + n = g_list_index(priv->workspaces, wm->cws); return gnt_wm_switch_workspace(wm, --n);
gnt_wm_switch_workspace_next(GntWM *wm)
- int n = g_list_index(wm->workspaces, wm->cws);
+ GntWMPrivate *priv = NULL; + g_return_val_if_fail(GNT_IS_WM(wm), FALSE); + priv = gnt_wm_get_instance_private(wm); + n = g_list_index(priv->workspaces, wm->cws); return gnt_wm_switch_workspace(wm, ++n);
@@ -1709,7 +1746,13 @@
GntWS *gnt_wm_widget_find_workspace(GntWM *wm, GntWidget *widget)
- GList *l = g_list_find_custom(wm->workspaces, widget, widget_in_workspace);
+ GntWMPrivate *priv = NULL; + g_return_val_if_fail(GNT_IS_WM(wm), NULL); + priv = gnt_wm_get_instance_private(wm); + l = g_list_find_custom(priv->workspaces, widget, widget_in_workspace); @@ -1717,7 +1760,12 @@
void gnt_wm_set_workspaces(GntWM *wm, GList *workspaces)
- wm->workspaces = workspaces;
+ GntWMPrivate *priv = NULL; + g_return_if_fail(GNT_IS_WM(wm)); + priv = gnt_wm_get_instance_private(wm); + priv->workspaces = workspaces; gnt_wm_switch_workspace(wm, 0);
@@ -2230,12 +2278,16 @@
void gnt_wm_raise_window(GntWM *wm, GntWidget *widget)
- GntWS *ws = gnt_wm_widget_find_workspace(wm, widget);
+ GntWMPrivate *priv = NULL; - g_return_if_fail(wm != NULL);
+ g_return_if_fail(GNT_IS_WM(wm)); + priv = gnt_wm_get_instance_private(wm); + ws = gnt_wm_widget_find_workspace(wm, widget); - gnt_wm_switch_workspace(wm, g_list_index(wm->workspaces, ws));
+ gnt_wm_switch_workspace(wm, g_list_index(priv->workspaces, ws)); g_return_if_fail(wm->cws != NULL);