parent
							
								
									0c8491f7d0
								
							
						
					
					
						commit
						733993a651
					
				| @ -1,6 +0,0 @@ | ||||
| #ifndef _SWAY_SWAY_H | ||||
| #define _SWAY_SWAY_H | ||||
| 
 | ||||
| void sway_terminate(int exit_code); | ||||
| 
 | ||||
| #endif | ||||
| @ -1,11 +0,0 @@ | ||||
| #ifndef _SWAY_HANDLERS_H | ||||
| #define _SWAY_HANDLERS_H | ||||
| #include "container.h" | ||||
| #include <stdbool.h> | ||||
| #include <wlc/wlc.h> | ||||
| 
 | ||||
| void register_wlc_handlers(); | ||||
| 
 | ||||
| extern uint32_t keys_pressed[32]; | ||||
| 
 | ||||
| #endif | ||||
| @ -0,0 +1,36 @@ | ||||
| #ifndef _SWAY_OUTPUT_H | ||||
| #define _SWAY_OUTPUT_H | ||||
| #include <time.h> | ||||
| #include <wayland-server.h> | ||||
| #include <wlr/types/wlr_output.h> | ||||
| #include "container.h" | ||||
| #include "focus.h" | ||||
| 
 | ||||
| struct sway_server; | ||||
| 
 | ||||
| struct sway_output { | ||||
| 	struct wlr_output *wlr_output; | ||||
| 	struct wl_listener frame; | ||||
| 	struct sway_server *server; | ||||
| 	struct timespec last_frame; | ||||
| }; | ||||
| 
 | ||||
| // Position is absolute coordinates on the edge where the adjacent output
 | ||||
| // should be searched for.
 | ||||
| swayc_t *output_by_name(const char* name, const struct wlc_point *abs_pos); | ||||
| swayc_t *swayc_opposite_output(enum movement_direction dir, const struct wlc_point *abs_pos); | ||||
| swayc_t *swayc_adjacent_output(swayc_t *output, enum movement_direction dir, const struct wlc_point *abs_pos, bool pick_closest); | ||||
| 
 | ||||
| // Place absolute coordinates for given container into given wlc_point.
 | ||||
| void get_absolute_position(swayc_t *container, struct wlc_point *point); | ||||
| 
 | ||||
| // Place absolute coordinates for the center point of given container into
 | ||||
| // given wlc_point.
 | ||||
| void get_absolute_center_position(swayc_t *container, struct wlc_point *point); | ||||
| 
 | ||||
| // stable sort workspaces on this output
 | ||||
| void sort_workspaces(swayc_t *output); | ||||
| 
 | ||||
| void output_get_scaled_size(wlc_handle handle, struct wlc_size *size); | ||||
| 
 | ||||
| #endif | ||||
| @ -1,103 +0,0 @@ | ||||
| #include "log.h" | ||||
| #include "sway.h" | ||||
| #include <stdarg.h> | ||||
| #include <stdio.h> | ||||
| #include <stdlib.h> | ||||
| #include <libgen.h> | ||||
| #include <fcntl.h> | ||||
| #include <unistd.h> | ||||
| #include <signal.h> | ||||
| #include <errno.h> | ||||
| #include <string.h> | ||||
| #include <stringop.h> | ||||
| #include "sway/workspace.h" | ||||
| 
 | ||||
| /* XXX:DEBUG:XXX */ | ||||
| static void container_log(const swayc_t *c, int depth) { | ||||
| 	fprintf(stderr, "focus:%c", | ||||
| 			c == get_focused_view(&root_container) ? 'K': | ||||
| 			c == get_focused_container(&root_container) ? 'F' : // Focused
 | ||||
| 			c == swayc_active_workspace() ? 'W' : // active workspace
 | ||||
| 			c == &root_container  ? 'R' : // root
 | ||||
| 			'X');// not any others
 | ||||
| 	for (int i = 6; i > depth; i--) { fprintf(stderr, " "); } | ||||
| 	fprintf(stderr,"|(%p)",c); | ||||
| 	fprintf(stderr,"(p:%-8p)",c->parent); | ||||
| 	fprintf(stderr,"(f:%-8p)",c->focused); | ||||
| 	fprintf(stderr,"(h:%2" PRIuPTR ")",c->handle); | ||||
| 	fprintf(stderr,"Type:%-4s|", | ||||
| 			c->type == C_ROOT   ? "root" : | ||||
| 			c->type == C_OUTPUT ? "op" : | ||||
| 			c->type == C_WORKSPACE ? "ws" : | ||||
| 			c->type == C_CONTAINER ? "cont" : | ||||
| 			c->type == C_VIEW   ? "view" : "?"); | ||||
| 	fprintf(stderr,"layout:%-5s|", | ||||
| 			c->layout == L_NONE ? "-" : | ||||
| 			c->layout == L_HORIZ ? "Horiz": | ||||
| 			c->layout == L_VERT ? "Vert": | ||||
| 			c->layout == L_STACKED  ? "Stack": | ||||
| 			c->layout == L_TABBED  ? "Tab": | ||||
| 			c->layout == L_FLOATING ? "Float": | ||||
| 			c->layout == L_AUTO_LEFT ? "A_lft": | ||||
| 			c->layout == L_AUTO_RIGHT ? "A_rgt": | ||||
| 			c->layout == L_AUTO_TOP ? "A_top": | ||||
| 			c->layout == L_AUTO_BOTTOM ? "A_bot": | ||||
| 			"Unknown"); | ||||
| 	fprintf(stderr, "w:%4.f|h:%4.f|", c->width, c->height); | ||||
| 	fprintf(stderr, "x:%4.f|y:%4.f|", c->x, c->y); | ||||
| 	fprintf(stderr, "g:%3d|",c->gaps); | ||||
| 	fprintf(stderr, "vis:%c|", c->visible?'t':'f'); | ||||
| 	fprintf(stderr, "children:%2d|",c->children?c->children->length:0); | ||||
| 	fprintf(stderr, "name:%.16s\n", c->name); | ||||
| } | ||||
| void layout_log(const swayc_t *c, int depth) { | ||||
| 	if (L_DEBUG > get_log_level()) return; | ||||
| 	int i, d; | ||||
| 	int e = c->children ? c->children->length : 0; | ||||
| 	container_log(c, depth); | ||||
| 	if (e) { | ||||
| 		for (i = 0; i < e; ++i) { | ||||
| 			fputc('|',stderr); | ||||
| 			for (d = 0; d < depth; ++d) fputc('-', stderr); | ||||
| 			layout_log(c->children->items[i], depth + 1); | ||||
| 		} | ||||
| 	} | ||||
| 	if (c->type == C_WORKSPACE) { | ||||
| 		e = c->floating?c->floating->length:0; | ||||
| 		if (e) { | ||||
| 			for (i = 0; i < e; ++i) { | ||||
| 				fputc('|',stderr); | ||||
| 				for (d = 0; d < depth; ++d) fputc('=', stderr); | ||||
| 				layout_log(c->floating->items[i], depth + 1); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| const char *swayc_type_string(enum swayc_types type) { | ||||
| 	return type == C_ROOT ? "ROOT" : | ||||
| 		type == C_OUTPUT ? "OUTPUT" : | ||||
| 		type == C_WORKSPACE ? "WORKSPACE" : | ||||
| 		type == C_CONTAINER ? "CONTAINER" : | ||||
| 		type == C_VIEW   ? "VIEW" : | ||||
| 		"UNKNOWN"; | ||||
| } | ||||
| 
 | ||||
| // Like sway_log, but also appends some info about given container to log output.
 | ||||
| void swayc_log(log_importance_t verbosity, swayc_t *cont, const char* format, ...) { | ||||
| 	sway_assert(cont, "swayc_log: no container ..."); | ||||
| 	va_list args; | ||||
| 	va_start(args, format); | ||||
| 	char *txt = malloc(128); | ||||
| 	vsprintf(txt, format, args); | ||||
| 	va_end(args); | ||||
| 
 | ||||
| 	char *debug_txt = malloc(32); | ||||
| 	snprintf(debug_txt, 32, "%s '%s'", swayc_type_string(cont->type), cont->name); | ||||
| 
 | ||||
| 	sway_log(verbosity, "%s (%s)", txt, debug_txt); | ||||
| 	free(txt); | ||||
| 	free(debug_txt); | ||||
| } | ||||
| 
 | ||||
| /* XXX:DEBUG:XXX */ | ||||
Some files were not shown because too many files have changed in this diff Show More
					Loading…
					
					
				
		Reference in new issue