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 */