wlmaker
Loading...
Searching...
No Matches
Classes | Macros | Functions
cursor.c File Reference
#include "cursor.h"
#include <libbase/libbase.h>
#include <inttypes.h>
#include <stdlib.h>
#include <wayland-server-core.h>
#include <wlr/types/wlr_cursor.h>
#include <wlr/types/wlr_input_device.h>
#include <wlr/types/wlr_keyboard.h>
#include <wlr/types/wlr_seat.h>
#include <wlr/types/wlr_xcursor_manager.h>
#include "toolkit/toolkit.h"
Include dependency graph for cursor.c:

Classes

struct  _wlmim_cursor_t
 

Functions

static void _wlmim_cursor_handle_motion (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmim_cursor_handle_motion_absolute (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmim_cursor_handle_button (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmim_cursor_handle_axis (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmim_cursor_handle_frame (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmim_cursor_handle_seat_request_set_cursor (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmim_cursor_process_motion (wlmim_cursor_t *cursor_ptr, uint32_t time_msec)
 
wlmim_cursor_twlmim_cursor_create (wlmim_t *input_manager_ptr, const struct wlmim_cursor_style *style_ptr, struct wlr_output_layout *wlr_output_layout_ptr, struct wlr_seat *wlr_seat_ptr, wlmtk_root_t *root_ptr)
 
void wlmim_cursor_destroy (wlmim_cursor_t *cursor_ptr)
 
struct wlr_cursor * wlmim_cursor_wlr_cursor (wlmim_cursor_t *cursor_ptr)
 
void wlmim_cursor_attach_input_device (wlmim_cursor_t *cursor_ptr, struct wlr_input_device *wlr_input_device_ptr)
 
void wlmim_cursor_detach_input_device (wlmim_cursor_t *cursor_ptr, struct wlr_input_device *wlr_input_device_ptr)
 

Detailed Description

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ _wlmim_cursor_handle_axis()

void _wlmim_cursor_handle_axis ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for the axis event of wlr_cursor.

Parameters
listener_ptr
data_ptrPoints to a wlr_pointer_axis_event.

◆ _wlmim_cursor_handle_button()

void _wlmim_cursor_handle_button ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for the button event of wlr_cursor.

Parameters
listener_ptr
data_ptrPoints to a wlr_pointer_button_event.

◆ _wlmim_cursor_handle_frame()

void _wlmim_cursor_handle_frame ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for the frame event of wlr_cursor.

Parameters
listener_ptr
data_ptr

◆ _wlmim_cursor_handle_motion()

void _wlmim_cursor_handle_motion ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for the motion event of wlr_cursor.

Parameters
listener_ptr
data_ptrPoints to a wlr_pointer_motion_event.

◆ _wlmim_cursor_handle_motion_absolute()

void _wlmim_cursor_handle_motion_absolute ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for the motion_absolute event of wlr_cursor.

Parameters
listener_ptr
data_ptrPoints to a wlr_pointer_motion_absolute_event.

◆ _wlmim_cursor_handle_seat_request_set_cursor()

void _wlmim_cursor_handle_seat_request_set_cursor ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handler for the request_set_cursor event of wlr_seat.

This event is raised when a client provides a cursor image. It is accepted only if the client also has the pointer focus.

Parameters
listener_ptr
data_ptrPoints to a wlr_seat_pointer_request_set_cursor_event.

◆ _wlmim_cursor_process_motion()

void _wlmim_cursor_process_motion ( wlmim_cursor_t cursor_ptr,
uint32_t  time_msec 
)
static

Processes the cursor motion: Lookups up the view & surface under the pointer and sets (respectively: clears) the pointer focus. Also sets the default cursor image, if no view is given (== no client-side cursor).

Parameters
cursor_ptr
time_msec

◆ wlmim_cursor_attach_input_device()

void wlmim_cursor_attach_input_device ( wlmim_cursor_t cursor_ptr,
struct wlr_input_device *  wlr_input_device_ptr 
)

Attaches the input device. May be a pointer, touch or tablet_tool device.

Parameters
cursor_ptr
wlr_input_device_ptr

◆ wlmim_cursor_create()

wlmim_cursor_t * wlmim_cursor_create ( wlmim_t input_manager_ptr,
const struct wlmim_cursor_style style_ptr,
struct wlr_output_layout *  wlr_output_layout_ptr,
struct wlr_seat *  wlr_seat_ptr,
wlmtk_root_t root_ptr 
)

Creates the cursor handlers.

Parameters
input_manager_ptr
style_ptr
wlr_output_layout_ptr
wlr_seat_ptr
root_ptr
Returns
The cursor handler or NULL on error.

◆ wlmim_cursor_destroy()

void wlmim_cursor_destroy ( wlmim_cursor_t cursor_ptr)

Destroys the cursor handlers.

Parameters
cursor_ptr

◆ wlmim_cursor_detach_input_device()

void wlmim_cursor_detach_input_device ( wlmim_cursor_t cursor_ptr,
struct wlr_input_device *  wlr_input_device_ptr 
)

Detaches the input device.

See also
wlmim_cursor_attach_input_device.
Parameters
cursor_ptr
wlr_input_device_ptr

◆ wlmim_cursor_wlr_cursor()

struct wlr_cursor * wlmim_cursor_wlr_cursor ( wlmim_cursor_t cursor_ptr)