[Bf-blender-cvs] [66483c58ebf] master: Cleanup: avoid static_cast when accessing wayland windows
Campbell Barton
noreply at git.blender.org
Wed Jun 15 09:54:38 CEST 2022
Commit: 66483c58ebff87805a71f98950bfac83d5c94fdb
Author: Campbell Barton
Date: Wed Jun 15 17:51:46 2022 +1000
Branches: master
https://developer.blender.org/rB66483c58ebff87805a71f98950bfac83d5c94fdb
Cleanup: avoid static_cast when accessing wayland windows
Rename get_window to window_from_surface and return a
GHOST_WindowWayland instead of an GHOST_IWindow since most callers
needed to cast. It also makes sense that an call for accessing windows
would return the native type.
===================================================================
M intern/ghost/intern/GHOST_SystemWayland.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_SystemWayland.cpp b/intern/ghost/intern/GHOST_SystemWayland.cpp
index 3d176bdb2f6..635c5bef50e 100644
--- a/intern/ghost/intern/GHOST_SystemWayland.cpp
+++ b/intern/ghost/intern/GHOST_SystemWayland.cpp
@@ -42,7 +42,7 @@
#include <cstring>
#include <mutex>
-static GHOST_IWindow *get_window(struct wl_surface *surface);
+static GHOST_WindowWayland *window_from_surface(struct wl_surface *surface);
/* -------------------------------------------------------------------- */
/** \name Private Types & Defines
@@ -564,7 +564,7 @@ static void relative_pointer_handle_relative_motion(
wl_fixed_t /*dy_unaccel*/)
{
input_t *input = static_cast<input_t *>(data);
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_pointer));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_pointer);
if (win == nullptr) {
return;
}
@@ -863,7 +863,7 @@ static void data_device_handle_drop(void *data, struct wl_data_device * /*wl_dat
static constexpr const char *file_proto = "file://";
static constexpr const char *crlf = "\r\n";
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(surface));
+ GHOST_WindowWayland *win = window_from_surface(surface);
GHOST_ASSERT(win != nullptr, "Unable to find window for drop event from surface");
std::vector<std::string> uris;
@@ -999,15 +999,14 @@ const struct wl_buffer_listener cursor_buffer_listener = {
/** \name Listener (Surface), #wl_surface_listener
* \{ */
-static GHOST_IWindow *get_window(struct wl_surface *surface)
+static GHOST_WindowWayland *window_from_surface(struct wl_surface *surface)
{
- if (!surface) {
- return nullptr;
- }
-
- for (GHOST_IWindow *win : window_manager->getWindows()) {
- if (surface == static_cast<const GHOST_WindowWayland *>(win)->surface()) {
- return win;
+ if (surface) {
+ for (GHOST_IWindow *iwin : window_manager->getWindows()) {
+ GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(iwin);
+ if (surface == win->surface()) {
+ return win;
+ }
}
}
return nullptr;
@@ -1076,8 +1075,7 @@ static void pointer_handle_enter(void *data,
wl_fixed_t surface_x,
wl_fixed_t surface_y)
{
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(surface));
-
+ GHOST_WindowWayland *win = window_from_surface(surface);
if (!win) {
return;
}
@@ -1107,8 +1105,7 @@ static void pointer_handle_leave(void *data,
uint32_t /*serial*/,
struct wl_surface *surface)
{
- GHOST_IWindow *win = get_window(surface);
-
+ GHOST_IWindow *win = window_from_surface(surface);
if (!win) {
return;
}
@@ -1124,9 +1121,7 @@ static void pointer_handle_motion(void *data,
wl_fixed_t surface_y)
{
input_t *input = static_cast<input_t *>(data);
-
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_pointer));
-
+ GHOST_WindowWayland *win = window_from_surface(input->focus_pointer);
if (!win) {
return;
}
@@ -1151,9 +1146,7 @@ static void pointer_handle_button(void *data,
uint32_t state)
{
input_t *input = static_cast<input_t *>(data);
-
- GHOST_IWindow *win = get_window(input->focus_pointer);
-
+ GHOST_IWindow *win = window_from_surface(input->focus_pointer);
if (!win) {
return;
}
@@ -1206,9 +1199,7 @@ static void pointer_handle_axis(void *data,
wl_fixed_t value)
{
input_t *input = static_cast<input_t *>(data);
-
- GHOST_IWindow *win = get_window(input->focus_pointer);
-
+ GHOST_IWindow *win = window_from_surface(input->focus_pointer);
if (!win) {
return;
}
@@ -1297,7 +1288,7 @@ static void tablet_tool_handle_proximity_in(void *data,
input->data_source_serial = serial;
/* Update #GHOST_TabletData. */
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_tablet));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_tablet);
if (!win) {
return;
}
@@ -1318,7 +1309,7 @@ static void tablet_tool_handle_proximity_out(void *data,
{
tablet_tool_input_t *tool_input = static_cast<tablet_tool_input_t *>(data);
input_t *input = tool_input->input;
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_tablet));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_tablet);
input->focus_tablet = nullptr;
@@ -1331,8 +1322,7 @@ static void tablet_tool_handle_down(void *data,
{
tablet_tool_input_t *tool_input = static_cast<tablet_tool_input_t *>(data);
input_t *input = tool_input->input;
-
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_tablet));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_tablet);
if (!win) {
return;
}
@@ -1349,11 +1339,11 @@ static void tablet_tool_handle_up(void *data, struct zwp_tablet_tool_v2 * /*zwp_
{
tablet_tool_input_t *tool_input = static_cast<tablet_tool_input_t *>(data);
input_t *input = tool_input->input;
-
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_tablet));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_tablet);
if (!win) {
return;
}
+
const GHOST_TEventType etype = GHOST_kEventButtonUp;
const GHOST_TButtonMask ebutton = GHOST_kButtonMaskLeft;
input->buttons.set(ebutton, false);
@@ -1368,8 +1358,7 @@ static void tablet_tool_handle_motion(void *data,
{
tablet_tool_input_t *tool_input = static_cast<tablet_tool_input_t *>(data);
input_t *input = tool_input->input;
-
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_tablet));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_tablet);
if (!win) {
return;
}
@@ -1392,11 +1381,11 @@ static void tablet_tool_handle_pressure(void *data,
{
tablet_tool_input_t *tool_input = static_cast<tablet_tool_input_t *>(data);
input_t *input = tool_input->input;
-
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_tablet));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_tablet);
if (!win) {
return;
}
+
GHOST_TabletData &td = tool_input->data;
td.Pressure = (float)pressure / 65535;
}
@@ -1412,8 +1401,7 @@ static void tablet_tool_handle_tilt(void *data,
{
tablet_tool_input_t *tool_input = static_cast<tablet_tool_input_t *>(data);
input_t *input = tool_input->input;
-
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_tablet));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_tablet);
if (!win) {
return;
}
@@ -1450,11 +1438,11 @@ static void tablet_tool_handle_wheel(void *data,
tablet_tool_input_t *tool_input = static_cast<tablet_tool_input_t *>(data);
input_t *input = tool_input->input;
-
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_tablet));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_tablet);
if (!win) {
return;
}
+
input->system->pushEvent(new GHOST_EventWheel(input->system->getMilliSeconds(), win, clicks));
}
static void tablet_tool_handle_button(void *data,
@@ -1465,7 +1453,7 @@ static void tablet_tool_handle_button(void *data,
{
tablet_tool_input_t *tool_input = static_cast<tablet_tool_input_t *>(data);
input_t *input = tool_input->input;
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(input->focus_tablet));
+ GHOST_WindowWayland *win = window_from_surface(input->focus_tablet);
if (!win) {
return;
}
@@ -2726,7 +2714,7 @@ GHOST_TSuccess GHOST_SystemWayland::setCursorGrab(const GHOST_TGrabCursorMode mo
if (input->locked_pointer) {
/* Request location to restore to. */
if (mode_current == GHOST_kGrabWrap) {
- GHOST_WindowWayland *win = static_cast<GHOST_WindowWayland *>(get_window(surface));
+ GHOST_WindowWayland *win = window_from_surface(surface);
GHOST_Rect bounds;
int32_t xy_new[2] = {input->xy[0], input->xy[1]};
More information about the Bf-blender-cvs
mailing list