changed handling of focus, handling of view by type

This commit is contained in:
taiyu 2015-08-18 00:28:44 -07:00
parent 780893a933
commit 11321ca2dd
12 changed files with 392 additions and 324 deletions

View file

@ -45,6 +45,8 @@ struct sway_container {
bool is_floating;
bool is_focused;
int weight;
char *name;

36
include/focus.h Normal file
View file

@ -0,0 +1,36 @@
#ifndef _SWAY_FOCUS_H
#define _SWAY_FOCUS_H
#include "container.h"
enum movement_direction {
MOVE_LEFT,
MOVE_RIGHT,
MOVE_UP,
MOVE_DOWN,
MOVE_PARENT
};
//focused_container - the container found by following the `focused` pointer
//from a given container to a container with `is_focused` boolean set
//---
//focused_view - the container found by following the `focused` pointer from a
//given container to a view.
//---
swayc_t *get_focused_container(swayc_t *parent);
swayc_t *get_focused_view(swayc_t *parent);
void set_focused_container(swayc_t *container);
void set_focused_container_for(swayc_t *ancestor, swayc_t *container);
//lock focused container/view. locked by windows with OVERRIDE attribute
//and unlocked when they are destroyed
extern bool locked_container_focus;
extern bool locked_view_focus;
bool move_focus(enum movement_direction direction);
#endif

View file

@ -1,12 +1,11 @@
#ifndef _SWAY_HANDLERS_H
#define _SWAY_HANDLERS_H
#include "container.h"
#include <stdbool.h>
#include <wlc/wlc.h>
extern struct wlc_interface interface;
//set focus to current pointer location and return focused container
swayc_t *focus_pointer(void);
swayc_t *container_under_pointer(void);
#endif

View file

@ -1,17 +0,0 @@
#ifndef _SWAY_MOVEMENT_H
#define _SWAY_MOVEMENT_H
#include <wlc/wlc.h>
#include "list.h"
enum movement_direction {
MOVE_LEFT,
MOVE_RIGHT,
MOVE_UP,
MOVE_DOWN,
MOVE_PARENT
};
bool move_focus(enum movement_direction direction);
#endif