mirror of
https://github.com/labwc/labwc.git
synced 2026-02-16 22:05:27 -05:00
This commit is contained in:
parent
1b575ce816
commit
48ba23fc8d
9 changed files with 105 additions and 96 deletions
|
|
@ -3,7 +3,7 @@
|
|||
#define LABWC_DIRECTION_H
|
||||
|
||||
#include <wlr/types/wlr_output_layout.h>
|
||||
#include "config/types.h"
|
||||
#include "common/edge.h"
|
||||
|
||||
bool direction_from_edge(enum lab_edge edge, enum wlr_direction *direction);
|
||||
enum wlr_direction direction_get_opposite(enum wlr_direction direction);
|
||||
|
|
|
|||
38
include/common/edge.h
Normal file
38
include/common/edge.h
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
#ifndef LABWC_EDGE_H
|
||||
#define LABWC_EDGE_H
|
||||
|
||||
#include <wayland-server-core.h>
|
||||
|
||||
/**
|
||||
* Represents an edge or direction (e.g. window tiling, window motion)
|
||||
*/
|
||||
enum lab_edge {
|
||||
LAB_EDGE_INVALID = 0,
|
||||
|
||||
LAB_EDGE_LEFT = (1 << 0),
|
||||
LAB_EDGE_RIGHT = (1 << 1),
|
||||
LAB_EDGE_UP = (1 << 2),
|
||||
LAB_EDGE_DOWN = (1 << 3),
|
||||
LAB_EDGE_CENTER = (1 << 4), /* for window tiling */
|
||||
LAB_EDGE_ANY = (1 << 5), /* for window rules */
|
||||
|
||||
/* for window tiling */
|
||||
LAB_EDGE_UPLEFT = (LAB_EDGE_UP | LAB_EDGE_LEFT),
|
||||
LAB_EDGE_UPRIGHT = (LAB_EDGE_UP | LAB_EDGE_RIGHT),
|
||||
LAB_EDGE_DOWNLEFT = (LAB_EDGE_DOWN | LAB_EDGE_LEFT),
|
||||
LAB_EDGE_DOWNRIGHT = (LAB_EDGE_DOWN | LAB_EDGE_RIGHT),
|
||||
};
|
||||
|
||||
enum lab_edge lab_edge_parse(const char *direction, bool tiled, bool any);
|
||||
|
||||
/**
|
||||
* lab_edge_invert() - select the opposite of a provided edge
|
||||
*
|
||||
* Returns LAB_EDGE_INVALID for edges other than UP/DOWN/LEFT/RIGHT.
|
||||
*
|
||||
* @edge: edge to be inverted
|
||||
*/
|
||||
enum lab_edge lab_edge_invert(enum lab_edge edge);
|
||||
|
||||
#endif /* LABWC_EDGE_H */
|
||||
|
|
@ -11,28 +11,6 @@
|
|||
* For the full config struct, see config/rcxml.h.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Edges to which a view can be snapped. "Any" is used as
|
||||
* a catch-all for every valid edge in order to simplify certain
|
||||
* types of conditionals, but it is only valid for a selection
|
||||
* of options in rc.xml.
|
||||
*/
|
||||
enum lab_edge {
|
||||
LAB_EDGE_INVALID = 0,
|
||||
|
||||
LAB_EDGE_LEFT = (1 << 0),
|
||||
LAB_EDGE_RIGHT = (1 << 1),
|
||||
LAB_EDGE_UP = (1 << 2),
|
||||
LAB_EDGE_DOWN = (1 << 3),
|
||||
LAB_EDGE_CENTER = (1 << 4),
|
||||
LAB_EDGE_ANY = (1 << 5),
|
||||
|
||||
LAB_EDGE_UPLEFT = (LAB_EDGE_UP | LAB_EDGE_LEFT),
|
||||
LAB_EDGE_UPRIGHT = (LAB_EDGE_UP | LAB_EDGE_RIGHT),
|
||||
LAB_EDGE_DOWNLEFT = (LAB_EDGE_DOWN | LAB_EDGE_LEFT),
|
||||
LAB_EDGE_DOWNRIGHT = (LAB_EDGE_DOWN | LAB_EDGE_RIGHT),
|
||||
};
|
||||
|
||||
/**
|
||||
* Indicates whether tablet tool motion events should be reported using
|
||||
* absolute or relative coordinates
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include <wayland-util.h>
|
||||
#include <wlr/util/box.h>
|
||||
#include <xkbcommon/xkbcommon.h>
|
||||
#include "common/edge.h"
|
||||
#include "config.h"
|
||||
#include "config/types.h"
|
||||
|
||||
|
|
@ -422,15 +423,6 @@ void view_array_append(struct server *server, struct wl_array *views,
|
|||
enum view_wants_focus view_wants_focus(struct view *view);
|
||||
bool view_contains_window_type(struct view *view, enum lab_window_type window_type);
|
||||
|
||||
/**
|
||||
* view_edge_invert() - select the opposite of a provided edge
|
||||
*
|
||||
* LAB_EDGE_CENTER and LAB_EDGE_INVALID both map to LAB_EDGE_INVALID.
|
||||
*
|
||||
* @edge: edge to be inverted
|
||||
*/
|
||||
enum lab_edge view_edge_invert(enum lab_edge edge);
|
||||
|
||||
/* If view is NULL, the size of SSD is not considered */
|
||||
struct wlr_box view_get_edge_snap_box(struct view *view, struct output *output,
|
||||
enum lab_edge edge);
|
||||
|
|
@ -601,7 +593,6 @@ void view_init(struct view *view);
|
|||
void view_destroy(struct view *view);
|
||||
|
||||
enum view_axis view_axis_parse(const char *direction);
|
||||
enum lab_edge view_edge_parse(const char *direction, bool tiled, bool any);
|
||||
enum lab_placement_policy view_placement_parse(const char *policy);
|
||||
|
||||
/* xdg.c */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue