[gtk+/touch-text-selection: 8/8] text: Set up envvar to test touch features
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/touch-text-selection: 8/8] text: Set up envvar to test touch features
- Date: Fri, 24 Aug 2012 15:06:54 +0000 (UTC)
commit 78a8782b13fec1035eaeff7f6529a9a385d0df8e
Author: Carlos Garnacho <carlos lanedo com>
Date: Fri Aug 24 15:50:28 2012 +0200
text: Set up envvar to test touch features
The GTK_TEST_TOUCHSCREEN_FEATURES envvar is now checked in entries
and textviews to allow testing of text handles with other kinds of
devices.
gtk/gtkentry.c | 14 +++++++++-----
gtk/gtktextview.c | 14 +++++++++-----
2 files changed, 18 insertions(+), 10 deletions(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index cb6e92c..575697c 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -319,6 +319,7 @@ enum {
};
static guint signals[LAST_SIGNAL] = { 0 };
+static gboolean test_touchscreen = FALSE;
typedef enum {
CURSOR_STANDARD,
@@ -1950,6 +1951,7 @@ gtk_entry_class_init (GtkEntryClass *class)
G_PARAM_DEPRECATED));
g_type_class_add_private (gobject_class, sizeof (GtkEntryPrivate));
+ test_touchscreen = g_getenv ("GTK_TEST_TOUCHSCREEN_FEATURES") != NULL;
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_ENTRY_ACCESSIBLE);
}
@@ -4108,7 +4110,8 @@ gtk_entry_button_press (GtkWidget *widget,
gtk_editable_set_position (editable, tmp_pos);
source = gdk_event_get_source_device ((GdkEvent *) event);
- if (gdk_device_get_source (source) == GDK_SOURCE_TOUCHSCREEN)
+ if (test_touchscreen ||
+ gdk_device_get_source (source) == GDK_SOURCE_TOUCHSCREEN)
{
priv->cursor_handle_dragged = TRUE;
_gtk_entry_update_handles (entry, GTK_TEXT_HANDLE_MODE_CURSOR);
@@ -4209,7 +4212,8 @@ gtk_entry_button_release (GtkWidget *widget,
source = gdk_event_get_source_device ((GdkEvent *) event);
- if (gdk_device_get_source (source) == GDK_SOURCE_TOUCHSCREEN)
+ if (test_touchscreen ||
+ gdk_device_get_source (source) == GDK_SOURCE_TOUCHSCREEN)
_gtk_entry_update_handles (entry, GTK_TEXT_HANDLE_MODE_CURSOR);
priv->in_drag = 0;
@@ -4391,7 +4395,7 @@ gtk_entry_motion_notify (GtkWidget *widget,
/* Don't allow backwards selection on touch devices,
* so handles don't get inverted.
*/
- if (input_source == GDK_SOURCE_TOUCHSCREEN)
+ if (test_touchscreen || input_source == GDK_SOURCE_TOUCHSCREEN)
pos = MIN (MAX (pos, gtk_entry_move_backward_word (entry, bound, TRUE)), length);
gtk_entry_set_positions (entry, pos, bound);
@@ -4401,13 +4405,13 @@ gtk_entry_motion_notify (GtkWidget *widget,
/* Don't allow backwards selection on touch devices,
* so handles don't get inverted.
*/
- if (input_source == GDK_SOURCE_TOUCHSCREEN)
+ if (test_touchscreen || input_source == GDK_SOURCE_TOUCHSCREEN)
tmp_pos = MIN (MAX (tmp_pos, priv->selection_bound + 1), length);
gtk_entry_set_positions (entry, tmp_pos, -1);
}
/* Update touch handles' position */
- if (input_source == GDK_SOURCE_TOUCHSCREEN)
+ if (test_touchscreen || input_source == GDK_SOURCE_TOUCHSCREEN)
_gtk_entry_update_handles (entry,
(priv->current_pos == priv->selection_bound) ?
GTK_TEXT_HANDLE_MODE_CURSOR :
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index f6d75a0..c2df3a3 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -575,6 +575,7 @@ static gint text_window_get_height (GtkTextWindow *win);
static guint signals[LAST_SIGNAL] = { 0 };
+static gboolean test_touchscreen = FALSE;
G_DEFINE_TYPE_WITH_CODE (GtkTextView, gtk_text_view, GTK_TYPE_CONTAINER,
G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, NULL))
@@ -1406,6 +1407,7 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
g_type_class_add_private (gobject_class, sizeof (GtkTextViewPrivate));
gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TEXT_VIEW_ACCESSIBLE);
+ test_touchscreen = g_getenv ("GTK_TEST_TOUCHSCREEN_FEATURES") != NULL;
}
static void
@@ -4828,7 +4830,8 @@ gtk_text_view_button_press_event (GtkWidget *widget, GdkEventButton *event)
device = gdk_event_get_source_device ((GdkEvent *) event);
if (priv->editable &&
- gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN)
+ (test_touchscreen ||
+ gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN))
mode = GTK_TEXT_HANDLE_MODE_CURSOR;
else
mode = GTK_TEXT_HANDLE_MODE_NONE;
@@ -4922,7 +4925,8 @@ gtk_text_view_button_release_event (GtkWidget *widget, GdkEventButton *event)
device = gdk_event_get_source_device ((GdkEvent *) event);
if (priv->editable &&
- gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN)
+ (test_touchscreen ||
+ gdk_device_get_source (device) == GDK_SOURCE_TOUCHSCREEN))
mode = GTK_TEXT_HANDLE_MODE_CURSOR;
else
mode = GTK_TEXT_HANDLE_MODE_NONE;
@@ -6476,7 +6480,7 @@ move_mark_to_pointer_and_scroll (GtkTextView *text_view,
buffer = get_buffer (text_view);
get_iter_at_pointer (text_view, device, &newplace, NULL, NULL);
- if (source == GDK_SOURCE_TOUCHSCREEN)
+ if (test_touchscreen || source == GDK_SOURCE_TOUCHSCREEN)
{
GtkTextIter min;
@@ -6714,7 +6718,7 @@ selection_motion_event_handler (GtkTextView *text_view,
start = cursor;
extend_selection (text_view, data->granularity, &start, &end);
- if (input_source == GDK_SOURCE_TOUCHSCREEN)
+ if (test_touchscreen || input_source == GDK_SOURCE_TOUCHSCREEN)
{
/* Don't allow backwards selection on touch devices,
* so handles don't get inverted.
@@ -6751,7 +6755,7 @@ selection_motion_event_handler (GtkTextView *text_view,
text_view->priv->scroll_timeout =
gdk_threads_add_timeout (50, selection_scan_timeout, text_view);
- if (input_source == GDK_SOURCE_TOUCHSCREEN)
+ if (test_touchscreen || input_source == GDK_SOURCE_TOUCHSCREEN)
_gtk_text_view_update_handles (text_view, GTK_TEXT_HANDLE_MODE_SELECTION);
return TRUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]