Fix zero tablet pressure for simulated events
Impacted sculpt/paint tests.
This commit is contained in:
parent
0e0ebdb65c
commit
79511fca20
|
@ -646,6 +646,9 @@ static wmEvent *rna_Window_event_add_simulate(wmWindow *win,
|
|||
STRNCPY(e.utf8_buf, unicode);
|
||||
}
|
||||
|
||||
/* Until we expose setting tablet values here. */
|
||||
WM_event_tablet_data_default_set(&e.tablet);
|
||||
|
||||
return WM_event_add_simulate(win, &e);
|
||||
}
|
||||
|
||||
|
|
|
@ -66,6 +66,7 @@ struct wmJob;
|
|||
struct wmOperator;
|
||||
struct wmOperatorType;
|
||||
struct wmPaintCursor;
|
||||
struct wmTabletData;
|
||||
|
||||
#ifdef WITH_INPUT_NDOF
|
||||
struct wmNDOFMotionData;
|
||||
|
@ -785,6 +786,8 @@ bool write_crash_blend(void);
|
|||
/* Lock the interface for any communication */
|
||||
void WM_set_locked_interface(struct wmWindowManager *wm, bool lock);
|
||||
|
||||
void WM_event_tablet_data_default_set(struct wmTabletData *tablet_data);
|
||||
|
||||
/* For testing only 'G_FLAG_EVENT_SIMULATE' */
|
||||
struct wmEvent *WM_event_add_simulate(struct wmWindow *win, const struct wmEvent *event_to_add);
|
||||
|
||||
|
|
|
@ -4167,6 +4167,19 @@ static void wm_eventemulation(wmEvent *event, bool test_only)
|
|||
}
|
||||
}
|
||||
|
||||
static const wmTabletData wm_event_tablet_data_default = {
|
||||
.active = EVT_TABLET_NONE,
|
||||
.pressure = 1.0f,
|
||||
.x_tilt = 0.0f,
|
||||
.y_tilt = 0.0f,
|
||||
.is_motion_absolute = false,
|
||||
};
|
||||
|
||||
void WM_event_tablet_data_default_set(wmTabletData *tablet_data)
|
||||
{
|
||||
*tablet_data = wm_event_tablet_data_default;
|
||||
}
|
||||
|
||||
void wm_tablet_data_from_ghost(const GHOST_TabletData *tablet_data, wmTabletData *wmtab)
|
||||
{
|
||||
if ((tablet_data != NULL) && tablet_data->Active != GHOST_kTabletModeNone) {
|
||||
|
@ -4179,11 +4192,7 @@ void wm_tablet_data_from_ghost(const GHOST_TabletData *tablet_data, wmTabletData
|
|||
// printf("%s: using tablet %.5f\n", __func__, wmtab->pressure);
|
||||
}
|
||||
else {
|
||||
wmtab->active = EVT_TABLET_NONE;
|
||||
wmtab->pressure = 1.0f;
|
||||
wmtab->x_tilt = 0.0f;
|
||||
wmtab->y_tilt = 0.0f;
|
||||
wmtab->is_motion_absolute = false;
|
||||
*wmtab = wm_event_tablet_data_default;
|
||||
// printf("%s: not using tablet\n", __func__);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue