diff options
Diffstat (limited to 'apps/gui/skin_engine/skin_touchsupport.c')
-rw-r--r-- | apps/gui/skin_engine/skin_touchsupport.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/apps/gui/skin_engine/skin_touchsupport.c b/apps/gui/skin_engine/skin_touchsupport.c index a0b82dd9da..d4f4fe226b 100644 --- a/apps/gui/skin_engine/skin_touchsupport.c +++ b/apps/gui/skin_engine/skin_touchsupport.c | |||
@@ -72,6 +72,12 @@ int skin_get_touchaction(struct wps_data *data, int* edge_offset, | |||
72 | regions = regions->next; | 72 | regions = regions->next; |
73 | continue; | 73 | continue; |
74 | } | 74 | } |
75 | if (data->touchscreen_locked && | ||
76 | (r->action != ACTION_TOUCH_SOFTLOCK && !r->allow_while_locked)) | ||
77 | { | ||
78 | regions = regions->next; | ||
79 | continue; | ||
80 | } | ||
75 | needs_repeat = r->press_length != PRESS; | 81 | needs_repeat = r->press_length != PRESS; |
76 | /* check if it's inside this viewport */ | 82 | /* check if it's inside this viewport */ |
77 | if (viewport_point_within_vp(&(r->wvp->vp), x, y)) | 83 | if (viewport_point_within_vp(&(r->wvp->vp), x, y)) |
@@ -150,6 +156,10 @@ int skin_get_touchaction(struct wps_data *data, int* edge_offset, | |||
150 | } | 156 | } |
151 | switch (returncode) | 157 | switch (returncode) |
152 | { | 158 | { |
159 | case ACTION_TOUCH_SOFTLOCK: | ||
160 | data->touchscreen_locked = !data->touchscreen_locked; | ||
161 | returncode = ACTION_NONE; | ||
162 | break; | ||
153 | case ACTION_WPS_PLAY: | 163 | case ACTION_WPS_PLAY: |
154 | if (!audio_status()) | 164 | if (!audio_status()) |
155 | { | 165 | { |