main 5d6fa26

dnd.go RawHistoryFolder

1package ports
2
3import "time"
4
5// Data drag and drop (wl_data_device.start_drag). Wayland validates the
6// client's request and tells core; core owns the pointer during the drag:
7// it hit-tests, routes the drag to the surface under the pointer, drops on
8// the release and cancels on Escape. Wayland speaks the protocol to the
9// source and the targets. The icon is a client surface core draws over
10// everything at the cursor.
11
12// DataDragStarted carries wayland → core a client drag answering the
13// client's current press. Button is the button of that press, whose
14// release drops; Icon is the drag icon's ID (0: none). Core answers with
15// DataDragCancel when it refuses the drag.
16type DataDragStarted struct {
17	Button uint32
18	Icon   WindowID
19}
20
21func (DataDragStarted) clientEvent() {}
22
23// DataDragIcon carries wayland → core the drag icon's geometry after a
24// commit: its top left corner relative to the cursor hotspot, and its
25// size, in logical pixels. W or H 0 hides it.
26type DataDragIcon struct {
27	ID         WindowID
28	X, Y, W, H int
29}
30
31func (DataDragIcon) clientEvent() {}
32
33// DataDragEnded carries wayland → core the end of a drag core did not
34// end itself: the source died or the drag was cancelled.
35type DataDragEnded struct{}
36
37func (DataDragEnded) clientEvent() {}
38
39// DataDragFocus carries core → wayland the surface under the pointer
40// during a drag (0: none), at surface-local X, Y: the old target gets
41// leave, the new one enter with an offer.
42type DataDragFocus struct {
43	ID   WindowID
44	X, Y float64
45	Time time.Duration
46}
47
48func (DataDragFocus) clientCommand() {}
49
50// DataDragMotion carries core → wayland the pointer over the drag target,
51// in its surface coordinates.
52type DataDragMotion struct {
53	ID   WindowID
54	X, Y float64
55	Time time.Duration
56}
57
58func (DataDragMotion) clientCommand() {}
59
60// DataDragDrop carries core → wayland the release of the drag button: the
61// target gets drop when it accepted the offer, else the drag is cancelled.
62type DataDragDrop struct{}
63
64func (DataDragDrop) clientCommand() {}
65
66// DataDragCancel carries core → wayland a cancelled or refused drag.
67type DataDragCancel struct{}
68
69func (DataDragCancel) clientCommand() {}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 23

Tags 10

↑↓ moveenter openesc close