Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
orbea
wayland
Commits
b3fc757c
Commit
b3fc757c
authored
Dec 08, 2010
by
Kristian Høgsberg
Browse files
Handle buttons in grab objects too
parent
9c3e8d73
Changes
2
Hide whitespace changes
Inline
Side-by-side
compositor/compositor.c
View file @
b3fc757c
...
...
@@ -571,6 +571,12 @@ move_grab_motion(struct wl_grab *grab,
wlsc_surface_update_matrix
(
es
);
}
static
void
move_grab_button
(
struct
wl_grab
*
grab
,
uint32_t
time
,
int32_t
button
,
int32_t
state
)
{
}
static
void
move_grab_end
(
struct
wl_grab
*
grab
,
uint32_t
time
)
{
...
...
@@ -579,6 +585,7 @@ move_grab_end(struct wl_grab *grab, uint32_t time)
static
const
struct
wl_grab_interface
move_grab_interface
=
{
move_grab_motion
,
move_grab_button
,
move_grab_end
};
...
...
@@ -652,6 +659,12 @@ resize_grab_motion(struct wl_grab *grab,
surface
,
sx
,
sy
,
width
,
height
);
}
static
void
resize_grab_button
(
struct
wl_grab
*
grab
,
uint32_t
time
,
int32_t
button
,
int32_t
state
)
{
}
static
void
resize_grab_end
(
struct
wl_grab
*
grab
,
uint32_t
time
)
{
...
...
@@ -660,6 +673,7 @@ resize_grab_end(struct wl_grab *grab, uint32_t time)
static
const
struct
wl_grab_interface
resize_grab_interface
=
{
resize_grab_motion
,
resize_grab_button
,
resize_grab_end
};
...
...
@@ -862,6 +876,16 @@ motion_grab_motion(struct wl_grab *grab,
time
,
x
,
y
,
sx
,
sy
);
}
static
void
motion_grab_button
(
struct
wl_grab
*
grab
,
uint32_t
time
,
int32_t
button
,
int32_t
state
)
{
wl_client_post_event
(
grab
->
input_device
->
pointer_focus
->
client
,
&
grab
->
input_device
->
object
,
WL_INPUT_DEVICE_BUTTON
,
time
,
button
,
state
);
}
static
void
motion_grab_end
(
struct
wl_grab
*
grab
,
uint32_t
time
)
{
...
...
@@ -869,6 +893,7 @@ motion_grab_end(struct wl_grab *grab, uint32_t time)
static
const
struct
wl_grab_interface
motion_grab_interface
=
{
motion_grab_motion
,
motion_grab_button
,
motion_grab_end
};
...
...
@@ -973,11 +998,8 @@ notify_button(struct wl_input_device *device,
(
struct
wl_shell
*
)
&
compositor
->
shell
,
&
surface
->
surface
,
device
,
time
,
WLSC_DEVICE_GRAB_RESIZE_BOTTOM_RIGHT
);
else
if
(
device
->
grab
==
NULL
||
device
->
grab
==
&
device
->
motion_grab
)
wl_client_post_event
(
surface
->
surface
.
client
,
&
device
->
object
,
WL_INPUT_DEVICE_BUTTON
,
time
,
button
,
state
);
device
->
grab
->
interface
->
button
(
device
->
grab
,
time
,
button
,
state
);
if
(
!
state
&&
device
->
grab
&&
device
->
grab_button
==
button
)
wl_input_device_end_grab
(
device
,
time
);
...
...
@@ -1203,6 +1225,12 @@ drag_grab_motion(struct wl_grab *grab,
time
,
x
,
y
,
sx
,
sy
);
}
static
void
drag_grab_button
(
struct
wl_grab
*
grab
,
uint32_t
time
,
int32_t
button
,
int32_t
state
)
{
}
static
void
drag_grab_end
(
struct
wl_grab
*
grab
,
uint32_t
time
)
{
...
...
@@ -1218,6 +1246,7 @@ drag_grab_end(struct wl_grab *grab, uint32_t time)
static
const
struct
wl_grab_interface
drag_grab_interface
=
{
drag_grab_motion
,
drag_grab_button
,
drag_grab_end
};
...
...
wayland/wayland-server.h
View file @
b3fc757c
...
...
@@ -137,6 +137,8 @@ struct wl_grab;
struct
wl_grab_interface
{
void
(
*
motion
)(
struct
wl_grab
*
grab
,
uint32_t
time
,
int32_t
x
,
int32_t
y
);
void
(
*
button
)(
struct
wl_grab
*
grab
,
uint32_t
time
,
int32_t
button
,
int32_t
state
);
void
(
*
end
)(
struct
wl_grab
*
grab
,
uint32_t
time
);
};
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment