diff options
| author | Přemysl Eric Janouch <p@janouch.name> | 2021-06-29 04:54:47 +0200 | 
|---|---|---|
| committer | Přemysl Eric Janouch <p@janouch.name> | 2021-06-29 05:28:54 +0200 | 
| commit | 7e531e95c5652a7992347386cc2ff0acafe4bac2 (patch) | |
| tree | 233e1dc992519947f8ca70bf6e08766ccbb0be35 | |
| parent | 0335443b2241e6e3db8d3ac09df9018d7a96414f (diff) | |
| download | nncmpp-7e531e95c5652a7992347386cc2ff0acafe4bac2.tar.gz nncmpp-7e531e95c5652a7992347386cc2ff0acafe4bac2.tar.xz nncmpp-7e531e95c5652a7992347386cc2ff0acafe4bac2.zip | |
Process focus events
Should help prevent accidents in other windows.
| -rw-r--r-- | LICENSE | 2 | ||||
| -rw-r--r-- | NEWS | 6 | ||||
| -rw-r--r-- | contrib/light-theme-256.conf | 1 | ||||
| -rw-r--r-- | nncmpp.c | 20 | ||||
| m--------- | termo | 0 | 
5 files changed, 25 insertions, 4 deletions
| @@ -1,4 +1,4 @@ -Copyright (c) 2016 - 2020, Přemysl Eric Janouch <p@janouch.name> +Copyright (c) 2016 - 2021, Přemysl Eric Janouch <p@janouch.name>  Permission to use, copy, modify, and/or distribute this software for any  purpose with or without fee is hereby granted. @@ -1,3 +1,9 @@ +1.1.0 (20xx-xx-xx) + + * Now requesting and processing terminal de/focus events, +   using a new "defocused" attribute for selected rows + +  1.0.0 (2020-11-05)   * Coming with a real manual page instead of a help2man-generated stub diff --git a/contrib/light-theme-256.conf b/contrib/light-theme-256.conf index 55d9848..c315ceb 100644 --- a/contrib/light-theme-256.conf +++ b/contrib/light-theme-256.conf @@ -12,6 +12,7 @@ colors = {  	selection = "231 202"  	multiselect = "231 88" +	defocused = "231 250"  	directory = "16 231 bold"  	incoming = "28" @@ -1,7 +1,7 @@  /*   * nncmpp -- the MPD client you never knew you needed   * - * Copyright (c) 2016 - 2020, Přemysl Eric Janouch <p@janouch.name> + * Copyright (c) 2016 - 2021, Přemysl Eric Janouch <p@janouch.name>   *   * Permission to use, copy, modify, and/or distribute this software for any   * purpose with or without fee is hereby granted. @@ -39,6 +39,8 @@  	 * Can't use A_REVERSE because bold'd be bright.  	 * Unfortunately ran out of B&W attributes.       */ \  	XX( MULTISELECT, multiselect,  -1,  6, 0           ) \ +	/* This ought to be indicative enough.            */ \ +	XX( DEFOCUSED,   defocused,    -1, -1, A_UNDERLINE ) \  	XX( SCROLLBAR,   scrollbar,    -1, -1, 0           ) \  	/* These are for debugging only                   */ \  	XX( WARNING,     warning,       3, -1, 0           ) \ @@ -682,6 +684,7 @@ static struct app_context  	struct poller_timer tk_timer;       ///< termo timeout timer  	bool locale_is_utf8;                ///< The locale is Unicode  	bool use_partial_boxes;             ///< Use Unicode box drawing chars +	bool focused;                       ///< Whether the terminal has focus  	struct attrs attrs[ATTRIBUTE_COUNT];  } @@ -910,6 +913,9 @@ app_init_context (void)  	// TODO: make this configurable  	g.use_partial_boxes = g.locale_is_utf8; +	// Presumably, although not necessarily; unsure if queryable at all +	g.focused = true; +  	app_init_attributes ();  } @@ -1338,11 +1344,13 @@ app_draw_view (void)  		bool override_colors = true;  		if (item_index == tab->item_selected) -			row_attrs = APP_ATTR (SELECTION); +			row_attrs = g.focused +				? APP_ATTR (SELECTION) : APP_ATTR (DEFOCUSED);  		else if (tab->item_mark > -1 &&  		   ((item_index >= tab->item_mark && item_index <= tab->item_selected)  		 || (item_index >= tab->item_selected && item_index <= tab->item_mark))) -			row_attrs = APP_ATTR (MULTISELECT); +			row_attrs = g.focused +				? APP_ATTR (MULTISELECT) : APP_ATTR (DEFOCUSED);  		else  			override_colors = false; @@ -2223,6 +2231,12 @@ app_init_bindings (const char *keymap,  static bool  app_process_termo_event (termo_key_t *event)  { +	if (event->type == TERMO_TYPE_FOCUS) +	{ +		g.focused = !!event->code.focused; +		app_invalidate (); +	} +  	struct binding dummy = { *event, 0, 0 }, *binding;  	if (g.editor.line)  	{ diff --git a/termo b/termo -Subproject f7912a8ce7bbf7f701b5217bbb3879b13b66cfe +Subproject 94a77a10d87367ef33156cd68b2caf601c3f72d | 
