Mercurial > grim > libgnt
changeset 1276:ef91bf9353e2
Hide GntWM->mode and GntKeyPressMode.
author | Elliott Sales de Andrade <quantum.analyst@gmail.com> |
---|---|
date | Fri, 10 May 2019 01:59:17 -0400 |
parents | 8d378fd7816e |
children | f520becefaca |
files | gntmain.c gntwm.c gntwm.h gntwmprivate.h |
diffstat | 4 files changed, 61 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/gntmain.c Fri May 10 01:44:45 2019 -0400 +++ b/gntmain.c Fri May 10 01:59:17 2019 -0400 @@ -303,8 +303,9 @@ gboolean is_special = FALSE; gboolean is_escape = FALSE; - if (wm->mode == GNT_KP_MODE_WAIT_ON_CHILD) + if (gnt_wm_get_keypress_mode(wm) == GNT_KP_MODE_WAIT_ON_CHILD) { return FALSE; + } if (HOLDING_ESCAPE) { is_escape = TRUE; @@ -374,8 +375,9 @@ char *k; char *cvrt = NULL; - if (wm->mode == GNT_KP_MODE_WAIT_ON_CHILD) + if (gnt_wm_get_keypress_mode(wm) == GNT_KP_MODE_WAIT_ON_CHILD) { return FALSE; + } rd = read(STDIN_FILENO, keys + HOLDING_ESCAPE, sizeof(keys) - 1 - HOLDING_ESCAPE); if (rd < 0) @@ -878,7 +880,7 @@ #ifndef _WIN32 clean_pid(); #endif - wm->mode = GNT_KP_MODE_NORMAL; + gnt_wm_set_keypress_mode(wm, GNT_KP_MODE_NORMAL); endwin(); setup_io(); refresh(); @@ -902,7 +904,7 @@ cp->callback = callback; cp->data = data; g_source_remove(channel_read_callback); - wm->mode = GNT_KP_MODE_WAIT_ON_CHILD; + gnt_wm_set_keypress_mode(wm, GNT_KP_MODE_WAIT_ON_CHILD); g_child_watch_add(pid, reap_child, cp); return TRUE; @@ -910,7 +912,8 @@ gboolean gnt_is_refugee() { - return (wm && wm->mode == GNT_KP_MODE_WAIT_ON_CHILD); + return (wm && + gnt_wm_get_keypress_mode(wm) == GNT_KP_MODE_WAIT_ON_CHILD); } const char *C_(const char *x)
--- a/gntwm.c Fri May 10 01:44:45 2019 -0400 +++ b/gntwm.c Fri May 10 01:59:17 2019 -0400 @@ -91,6 +91,8 @@ * determine whether to give focus to a new window. */ gboolean event_stack; + + GntKeyPressMode mode; } GntWMPrivate; enum @@ -263,8 +265,11 @@ static gboolean update_screen(GntWM *wm) { - if (wm->mode == GNT_KP_MODE_WAIT_ON_CHILD) + GntWMPrivate *priv = gnt_wm_get_instance_private(wm); + + if (priv->mode == GNT_KP_MODE_WAIT_ON_CHILD) { return TRUE; + } if (wm->menu) { GntMenu *top = wm->menu; @@ -450,7 +455,7 @@ return; } - if (wm->mode != GNT_KP_MODE_NORMAL) { + if (priv->mode != GNT_KP_MODE_NORMAL) { ensure_normal_mode(wm); } @@ -1127,11 +1132,12 @@ ensure_normal_mode(GntWM *wm) { GntWMPrivate *priv = gnt_wm_get_instance_private(wm); - if (wm->mode != GNT_KP_MODE_NORMAL) { + + 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); } - wm->mode = GNT_KP_MODE_NORMAL; + priv->mode = GNT_KP_MODE_NORMAL; } } @@ -1148,7 +1154,7 @@ return TRUE; } - wm->mode = GNT_KP_MODE_MOVE; + priv->mode = GNT_KP_MODE_MOVE; window_reverse(gnt_ws_get_top_widget(priv->cws), TRUE, wm); return TRUE; @@ -1167,7 +1173,7 @@ return TRUE; } - wm->mode = GNT_KP_MODE_RESIZE; + priv->mode = GNT_KP_MODE_RESIZE; window_reverse(gnt_ws_get_top_widget(priv->cws), TRUE, wm); return TRUE; @@ -1328,7 +1334,8 @@ GntWM *wm = GNT_WM(bindable); GntWMPrivate *priv = gnt_wm_get_instance_private(wm); - if (!wm->menu && !priv->list.window && wm->mode == GNT_KP_MODE_NORMAL) { + if (!wm->menu && !priv->list.window && + priv->mode == GNT_KP_MODE_NORMAL) { ignore_keys = TRUE; return TRUE; } @@ -2092,7 +2099,7 @@ } /* Do some manual checking */ - if (!gnt_ws_is_empty(priv->cws) && wm->mode != GNT_KP_MODE_NORMAL) { + if (!gnt_ws_is_empty(priv->cws) && priv->mode != GNT_KP_MODE_NORMAL) { int xmin = 0, ymin = 0, xmax = getmaxx(stdscr), ymax = getmaxy(stdscr) - 1; int x, y, w, h; GntWidget *widget = gnt_ws_get_top_widget(priv->cws); @@ -2103,7 +2110,7 @@ ox = x; oy = y; ow = w; oh = h; - if (wm->mode == GNT_KP_MODE_MOVE) { + if (priv->mode == GNT_KP_MODE_MOVE) { if (strcmp(keys, GNT_KEY_LEFT) == 0) { if (x > xmin) x--; @@ -2122,7 +2129,7 @@ window_reverse(widget, TRUE, wm); return TRUE; } - } else if (wm->mode == GNT_KP_MODE_RESIZE) { + } else if (priv->mode == GNT_KP_MODE_RESIZE) { if (strcmp(keys, GNT_KEY_LEFT) == 0) { w--; } else if (strcmp(keys, GNT_KEY_RIGHT) == 0) { @@ -2142,7 +2149,7 @@ } if (strcmp(keys, "\r") == 0 || strcmp(keys, "\033") == 0) { window_reverse(widget, FALSE, wm); - wm->mode = GNT_KP_MODE_NORMAL; + priv->mode = GNT_KP_MODE_NORMAL; } return TRUE; } @@ -2439,3 +2446,27 @@ priv->event_stack = set; } + +/* Private. */ +GntKeyPressMode +gnt_wm_get_keypress_mode(GntWM *wm) +{ + GntWMPrivate *priv = NULL; + + g_return_val_if_fail(GNT_IS_WM(wm), GNT_KP_MODE_NORMAL); + priv = gnt_wm_get_instance_private(wm); + + return priv->mode; +} + +/* Private. */ +void +gnt_wm_set_keypress_mode(GntWM *wm, GntKeyPressMode mode) +{ + GntWMPrivate *priv = NULL; + + g_return_if_fail(GNT_IS_WM(wm)); + priv = gnt_wm_get_instance_private(wm); + + priv->mode = mode; +}
--- a/gntwm.h Fri May 10 01:44:45 2019 -0400 +++ b/gntwm.h Fri May 10 01:59:17 2019 -0400 @@ -44,14 +44,6 @@ #define GNT_IS_WM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GNT_TYPE_WM)) #define GNT_WM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNT_TYPE_WM, GntWMClass)) -typedef enum -{ - GNT_KP_MODE_NORMAL, - GNT_KP_MODE_RESIZE, - GNT_KP_MODE_MOVE, - GNT_KP_MODE_WAIT_ON_CHILD -} GntKeyPressMode; - typedef struct _GntNode GntNode; struct _GntNode @@ -106,8 +98,6 @@ GntMenu *GNTSEAL(menu); - GntKeyPressMode GNTSEAL(mode); - GHashTable *GNTSEAL(positions); /*< private >*/
--- a/gntwmprivate.h Fri May 10 01:44:45 2019 -0400 +++ b/gntwmprivate.h Fri May 10 01:59:17 2019 -0400 @@ -26,6 +26,14 @@ #include "gnt.h" #include "gntwm.h" +typedef enum +{ + GNT_KP_MODE_NORMAL, + GNT_KP_MODE_RESIZE, + GNT_KP_MODE_MOVE, + GNT_KP_MODE_WAIT_ON_CHILD +} GntKeyPressMode; + G_BEGIN_DECLS /* Private access to some internals. Contact us if you need these. */ @@ -47,6 +55,9 @@ gboolean gnt_wm_get_event_stack(GntWM *wm); void gnt_wm_set_event_stack(GntWM *wm, gboolean set); +GntKeyPressMode gnt_wm_get_keypress_mode(GntWM *wm); +void gnt_wm_set_keypress_mode(GntWM *wm, GntKeyPressMode mode); + G_END_DECLS #endif /* GNT_WM_PRIVATE_H */