--- a/gntwm.c Fri May 10 20:14:59 2019 -0400
+++ b/gntwm.c Sat May 11 01:00:16 2019 +0000
@@ -132,8 +132,8 @@
static void gnt_wm_win_resized(GntWM *wm, GntNode *node);
static void gnt_wm_win_moved(GntWM *wm, GntNode *node);
static void gnt_wm_give_focus(GntWM *wm, GntWidget *widget);
-static void update_window_in_list(GntWM *wm, GntWidget *wid);
-static void shift_window(GntWM *wm, GntWidget *widget, int dir);
+static void update_window_in_list(GntWMPrivate *priv, GntWidget *wid); +static void shift_window(GntWMPrivate *priv, GntWidget *widget, int dir); static gboolean workspace_next(GntBindable *wm, GList *n);
static gboolean workspace_prev(GntBindable *wm, GList *n);
@@ -141,7 +141,7 @@
static int widestringwidth(wchar_t *wide);
-static void ensure_normal_mode(GntWM *wm);
+static void ensure_normal_mode(GntWMPrivate *priv); static gboolean write_already(gpointer data);
static int write_timeout;
static time_t last_active_time;
@@ -278,10 +278,8 @@
-update_screen(GntWM *wm)
+update_screen(GntWMPrivate *priv) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
if (priv->mode == GNT_KP_MODE_WAIT_ON_CHILD) {
@@ -376,9 +374,8 @@
-read_window_positions(GntWM *wm)
+read_window_positions(GntWMPrivate *priv) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
GKeyFile *gfile = g_key_file_new();
char *filename = g_build_filename(gnt_get_config_dir(), ".gntpositions", NULL);
@@ -451,8 +448,9 @@
priv->nodes = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL,
priv->positions = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
- if (gnt_style_get_bool(GNT_STYLE_REMPOS, TRUE))
- read_window_positions(wm);
+ if (gnt_style_get_bool(GNT_STYLE_REMPOS, TRUE)) { + read_window_positions(priv); g_timeout_add_seconds(IDLE_CHECK_INTERVAL, check_idle, NULL);
gnt_wm_switch_workspace(wm, 0);
@@ -475,7 +473,7 @@
if (priv->mode != GNT_KP_MODE_NORMAL) {
- ensure_normal_mode(wm);
+ ensure_normal_mode(priv); w = gnt_ws_get_top_widget(priv->cws);
@@ -560,7 +558,7 @@
gnt_wm_copy_win(window, node);
@@ -587,7 +585,7 @@
if (h - node->scroll > getmaxy(node->window)) {
gnt_wm_copy_win(window, node);
@@ -604,30 +602,27 @@
if (!gnt_ws_is_empty(priv->cws)) {
gnt_widget_destroy(gnt_ws_get_top_widget(priv->cws));
- ensure_normal_mode(wm);
+ ensure_normal_mode(priv); -destroy__list(G_GNUC_UNUSED GntWidget *widget, GntWM *wm)
+destroy__list(G_GNUC_UNUSED GntWidget *widget, GntWMPrivate *priv) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
priv->list.window = NULL;
+setup__list(GntWMPrivate *priv) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
- ensure_normal_mode(wm);
+ ensure_normal_mode(priv); win = priv->list.window = gnt_box_new(FALSE, FALSE);
gnt_box_set_toplevel(GNT_BOX(win), TRUE);
gnt_box_set_pad(GNT_BOX(win), 0);
@@ -636,7 +631,7 @@
tree = priv->list.tree = gnt_tree_new();
gnt_box_add_widget(GNT_BOX(win), tree);
- g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(destroy__list), wm);
+ g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(destroy__list), priv); @@ -659,9 +654,8 @@
-populate_window_list(GntWM *wm, gboolean workspace)
+populate_window_list(GntWMPrivate *priv, gboolean workspace) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
GntTree *tree = GNT_TREE(priv->windows->tree);
@@ -673,7 +667,7 @@
gnt_tree_create_row(tree,
- update_window_in_list(wm, GNT_WIDGET(box));
+ update_window_in_list(priv, GNT_WIDGET(box)); GList *ws = priv->workspaces;
@@ -689,17 +683,15 @@
tree, gnt_box_get_title(box)),
- update_window_in_list(wm, GNT_WIDGET(box));
+ update_window_in_list(priv, GNT_WIDGET(box)); -window_list_key_pressed(GntWidget *widget, const char *text, GntWM *wm)
+window_list_key_pressed(GntWidget *widget, const char *text, GntWMPrivate *priv) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
if (text[1] == 0 && !gnt_ws_is_empty(priv->cws)) {
GntBindable *sel = gnt_tree_get_selection_data(GNT_TREE(widget));
@@ -708,20 +700,20 @@
/* reorder the workspace. */
- shift_window(wm, GNT_WIDGET(sel), -1);
+ shift_window(priv, GNT_WIDGET(sel), -1); /* reorder the workspace. */
- shift_window(wm, GNT_WIDGET(sel), 1);
+ shift_window(priv, GNT_WIDGET(sel), 1); gnt_tree_remove_all(GNT_TREE(widget));
- populate_window_list(wm, GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "workspace")));
+ populate_window_list(priv, GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "workspace"))); gnt_tree_set_selected(GNT_TREE(widget), sel);
@@ -733,7 +725,7 @@
GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
priv->windows = &priv->list;
win = priv->windows->window;
@@ -741,7 +733,7 @@
gnt_box_set_title(GNT_BOX(win), workspace ? "Workspace List" : "Window List");
- populate_window_list(wm, workspace);
+ populate_window_list(priv, workspace); if (!gnt_ws_is_empty(priv->cws)) {
gnt_tree_set_selected(GNT_TREE(tree), gnt_ws_get_top_widget(priv->cws));
@@ -750,7 +742,7 @@
g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(window_list_activate), wm);
- g_signal_connect(G_OBJECT(tree), "key_pressed", G_CALLBACK(window_list_key_pressed), wm);
+ g_signal_connect(G_OBJECT(tree), "key_pressed", G_CALLBACK(window_list_key_pressed), priv); g_object_set_data(G_OBJECT(tree), "workspace", GINT_TO_POINTER(workspace));
gnt_tree_set_col_width(GNT_TREE(tree), 0, getmaxx(stdscr) / 3);
@@ -946,9 +938,8 @@
-shift_window(GntWM *wm, GntWidget *widget, int dir)
+shift_window(GntWMPrivate *priv, GntWidget *widget, int dir) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
GList *all = gnt_ws_get_list(priv->cws);
GList *list = g_list_find(all, widget);
@@ -994,7 +985,7 @@
- shift_window(wm, gnt_ws_get_top_widget(priv->cws), -1);
+ shift_window(priv, gnt_ws_get_top_widget(priv->cws), -1); @@ -1012,14 +1003,13 @@
- shift_window(wm, gnt_ws_get_top_widget(priv->cws), 1);
+ shift_window(priv, gnt_ws_get_top_widget(priv->cws), 1); -action_list_activate(GntTree *tree, GntWM *wm)
+action_list_activate(GntTree *tree, GntWMPrivate *priv) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
GntAction *action = gnt_tree_get_selection_data(tree);
gnt_widget_destroy(priv->list.window);
@@ -1051,7 +1041,7 @@
priv->actions = &priv->list;
win = priv->actions->window;
@@ -1067,7 +1057,7 @@
gnt_tree_add_row_last(GNT_TREE(tree), action,
gnt_tree_create_row(GNT_TREE(tree), action->label), NULL);
- g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(action_list_activate), wm);
+ g_signal_connect(G_OBJECT(tree), "activate", G_CALLBACK(action_list_activate), priv); n = g_list_length(priv->acts);
gnt_widget_set_size(tree, 0, n);
gnt_widget_set_position(win, 0, getmaxy(stdscr) - 3 - n);
@@ -1118,9 +1108,8 @@
-window_reverse(GntWidget *win, gboolean set, GntWM *wm)
+window_reverse(GntWidget *win, gboolean set, GntWMPrivate *priv) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
@@ -1145,17 +1134,15 @@
for (i = 0; i < h; i += reverse_char(d, i, w-1, set));
gnt_wm_copy_win(win, g_hash_table_lookup(priv->nodes, win));
-ensure_normal_mode(GntWM *wm)
+ensure_normal_mode(GntWMPrivate *priv) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
if (priv->mode != GNT_KP_MODE_NORMAL) {
if (!gnt_ws_is_empty(priv->cws)) {
- window_reverse(gnt_ws_get_top_widget(priv->cws), FALSE, wm);
+ window_reverse(gnt_ws_get_top_widget(priv->cws), FALSE, priv); priv->mode = GNT_KP_MODE_NORMAL;
@@ -1175,7 +1162,7 @@
priv->mode = GNT_KP_MODE_MOVE;
- window_reverse(gnt_ws_get_top_widget(priv->cws), TRUE, wm);
+ window_reverse(gnt_ws_get_top_widget(priv->cws), TRUE, priv); @@ -1194,7 +1181,7 @@
priv->mode = GNT_KP_MODE_RESIZE;
- window_reverse(gnt_ws_get_top_widget(priv->cws), TRUE, wm);
+ window_reverse(gnt_ws_get_top_widget(priv->cws), TRUE, priv); @@ -1239,7 +1226,7 @@
gnt_ws_draw_taskbar(priv->cws, TRUE);
curs_set(0); /* endwin resets the cursor to normal */
@@ -1296,7 +1283,7 @@
link = g_list_find(priv->tagged, widget);
priv->tagged = g_list_delete_link(priv->tagged, link);
- remove_tag(widget, wm);
+ remove_tag(widget, NULL); @@ -1318,7 +1305,7 @@
for (iter = priv->tagged; iter; iter = g_list_delete_link(iter, iter)) {
GntWidget *widget = GNT_WIDGET(iter->data);
gnt_wm_widget_move_workspace(wm, priv->cws, widget);
- remove_tag(widget, wm);
+ remove_tag(widget, NULL); @@ -1753,13 +1740,13 @@
gnt_widget_destroy(priv->list.window);
- ensure_normal_mode(wm);
+ ensure_normal_mode(priv); gnt_ws_hide(priv->cws, priv->nodes);
gnt_ws_show(priv->cws, priv->nodes);
gnt_ws_draw_taskbar(priv->cws, TRUE);
if (!gnt_ws_is_empty(priv->cws)) {
gnt_wm_raise_window(wm, gnt_ws_get_top_widget(priv->cws));
@@ -1874,9 +1861,8 @@
-update_window_in_list(GntWM *wm, GntWidget *wid)
+update_window_in_list(GntWMPrivate *priv, GntWidget *wid) - GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
GntTextFormatFlags flag = 0;
if (priv->windows == NULL) {
@@ -2006,7 +1992,7 @@
if (!gnt_widget_get_visible(widget) ||
g_hash_table_lookup(priv->nodes, widget)) {
@@ -2037,16 +2023,18 @@
- update_window_in_list(wm, widget);
+ update_window_in_list(priv, widget); gnt_ws_draw_taskbar(priv->cws, FALSE);
void gnt_wm_window_decorate(GntWM *wm, GntWidget *widget)
+ g_return_if_fail(GNT_IS_WM(wm)); g_signal_emit(wm, signals[SIG_DECORATE_WIN], 0, widget);
@@ -2089,19 +2077,23 @@
gnt_ws_draw_taskbar(priv->cws, FALSE);
-time_t gnt_wm_get_idle_time()
+gnt_wm_get_idle_time(void) return time(NULL) - last_active_time;
gboolean gnt_wm_process_input(GntWM *wm, const char *keys)
- GntWMPrivate *priv = gnt_wm_get_instance_private(wm);
+ GntWMPrivate *priv = NULL; + g_return_val_if_fail(GNT_IS_WM(wm), FALSE); + priv = gnt_wm_get_instance_private(wm); keys = gnt_bindable_remap_keys(GNT_BINDABLE(wm), keys);
@@ -2149,7 +2141,7 @@
if (ox != x || oy != y) {
gnt_screen_move_widget(widget, x, y);
- window_reverse(widget, TRUE, wm);
+ window_reverse(widget, TRUE, priv); } else if (priv->mode == GNT_KP_MODE_RESIZE) {
@@ -2166,12 +2158,12 @@
if (oh != h || ow != w) {
gnt_screen_resize_widget(widget, w, h);
- window_reverse(widget, TRUE, wm);
+ window_reverse(widget, TRUE, priv); if (strcmp(keys, "\r") == 0 || strcmp(keys, "\033") == 0) {
- window_reverse(widget, FALSE, wm);
+ window_reverse(widget, FALSE, priv); priv->mode = GNT_KP_MODE_NORMAL;
@@ -2264,7 +2256,7 @@
g_signal_emit(wm, signals[SIG_RESIZED], 0, node);
@@ -2341,7 +2333,7 @@
@@ -2367,7 +2359,7 @@
gnt_ws_draw_taskbar(priv->cws, FALSE);
void gnt_wm_update_window(GntWM *wm, GntWidget *widget)
@@ -2396,7 +2388,7 @@
if (ws == priv->cws || gnt_widget_get_transient(widget)) {
gnt_wm_copy_win(widget, node);
gnt_ws_draw_taskbar(priv->cws, FALSE);
} else if (ws && ws != priv->cws && gnt_widget_get_is_urgent(widget)) {
if (!act || (act && !g_list_find(act, ws)))
act = g_list_prepend(act, ws);
@@ -2407,6 +2399,9 @@
gboolean gnt_wm_process_click(GntWM *wm, GntMouseEvent event, int x, int y, GntWidget *widget)
+ g_return_val_if_fail(GNT_IS_WM(wm), FALSE); g_signal_emit(wm, signals[SIG_MOUSE_CLICK], 0, event, x, y, widget, &ret);