[gtk] gdk: Remove gdk_event_get_string()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] gdk: Remove gdk_event_get_string()
- Date: Mon, 30 Jul 2018 17:41:57 +0000 (UTC)
commit 813957a92fe580ec0e2fa2076a233994a0d08ce8
Author: Benjamin Otte <otte redhat com>
Date: Sat Jul 28 20:07:10 2018 +0200
gdk: Remove gdk_event_get_string()
You want to use an IM module to get strings out of keypresses, not some
crude hack that only works on X11 and Wayland anyway.
docs/reference/gdk/gdk4-sections.txt | 1 -
gdk/gdkevents.c | 31 -------------------------
gdk/gdkevents.h | 3 ---
gtk/a11y/gtkaccessibilityutil.c | 12 ++--------
gtk/gtkfilechooserwidget.c | 44 +++++++++++++++++++++---------------
5 files changed, 28 insertions(+), 63 deletions(-)
---
diff --git a/docs/reference/gdk/gdk4-sections.txt b/docs/reference/gdk/gdk4-sections.txt
index 278ce01db5..671982e3d8 100644
--- a/docs/reference/gdk/gdk4-sections.txt
+++ b/docs/reference/gdk/gdk4-sections.txt
@@ -655,7 +655,6 @@ gdk_event_get_key_is_modifier
gdk_event_get_pad_axis_value
gdk_event_get_pad_button
gdk_event_get_pad_group_mode
-gdk_event_get_string
gdk_event_get_touch_emulating_pointer
gdk_event_get_touchpad_angle_delta
gdk_event_get_touchpad_deltas
diff --git a/gdk/gdkevents.c b/gdk/gdkevents.c
index b25d27b366..4a8dcb71f1 100644
--- a/gdk/gdkevents.c
+++ b/gdk/gdkevents.c
@@ -1293,37 +1293,6 @@ gdk_event_get_key_group (const GdkEvent *event,
return fetched;
}
-/**
- * gdk_event_get_string:
- * @event: a #GdkEvent
- * @string: (out) (transfer none): return location for the string
- *
- * Extracts a string from an event. The string is an
- * approximation of the keyval in a key event.
- *
- * Returns: %TRUE on success, otherwise %FALSE
- **/
-gboolean
-gdk_event_get_string (const GdkEvent *event,
- const char **string)
-{
- gboolean fetched = TRUE;
-
- switch ((guint) event->any.type)
- {
- case GDK_KEY_PRESS:
- case GDK_KEY_RELEASE:
- *string = event->key.string;
- break;
- default:
- *string = NULL;
- fetched = FALSE;
- break;
- }
-
- return fetched;
-}
-
/**
* gdk_event_get_key_is_modifier:
* @event: a #GdkEvent
diff --git a/gdk/gdkevents.h b/gdk/gdkevents.h
index 291b6d34f8..8ec949c606 100644
--- a/gdk/gdkevents.h
+++ b/gdk/gdkevents.h
@@ -403,9 +403,6 @@ gboolean gdk_event_get_key_is_modifier (const GdkEvent *event,
GDK_AVAILABLE_IN_ALL
gboolean gdk_event_get_key_group (const GdkEvent *event,
guint *group);
-GDK_AVAILABLE_IN_ALL
-gboolean gdk_event_get_string (const GdkEvent *event,
- const char **string);
GDK_AVAILABLE_IN_ALL
gboolean gdk_event_get_scroll_direction (const GdkEvent *event,
diff --git a/gtk/a11y/gtkaccessibilityutil.c b/gtk/a11y/gtkaccessibilityutil.c
index 48d6b4b283..1b840f80e1 100644
--- a/gtk/a11y/gtkaccessibilityutil.c
+++ b/gtk/a11y/gtkaccessibilityutil.c
@@ -116,13 +116,11 @@ atk_key_event_from_gdk_event_key (GdkEventKey *key,
GdkModifierType state;
guint keyval;
guint16 keycode;
- const char *string;
type = gdk_event_get_event_type ((GdkEvent *)key);
gdk_event_get_state ((GdkEvent *)key, &state);
gdk_event_get_keyval ((GdkEvent *)key, &keyval);
gdk_event_get_keycode ((GdkEvent *)key, &keycode);
- gdk_event_get_string ((GdkEvent *)key, &string);
if (type == GDK_KEY_PRESS)
event->type = ATK_KEY_EVENT_PRESS;
@@ -133,14 +131,8 @@ atk_key_event_from_gdk_event_key (GdkEventKey *key,
event->state = state;
event->keyval = keyval;
- if (string && string[0] &&
- (state & GDK_CONTROL_MASK ||
- g_unichar_isgraph (g_utf8_get_char (string))))
- event->string = (char *) string;
- else
- event->string = gdk_keyval_name (keyval);
-
- event->length = strlen (string);
+ event->string = gdk_keyval_name (keyval);
+ event->length = strlen (event->string);
event->keycode = keycode;
event->timestamp = gdk_event_get_time ((GdkEvent *)key);
}
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index 2c1e2ed48b..a3c5361795 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -1281,7 +1281,8 @@ key_is_left_or_right (const GdkEvent *event)
static gboolean
should_trigger_location_entry (GtkFileChooserWidget *impl,
guint keyval,
- GdkModifierType state)
+ GdkModifierType state,
+ const char **string)
{
GdkModifierType no_text_input_mask;
@@ -1291,16 +1292,27 @@ should_trigger_location_entry (GtkFileChooserWidget *impl,
no_text_input_mask =
gtk_widget_get_modifier_mask (GTK_WIDGET (impl), GDK_MODIFIER_INTENT_NO_TEXT_INPUT);
- if ((keyval == GDK_KEY_slash
- || keyval == GDK_KEY_KP_Divide
- || keyval == GDK_KEY_period
-#ifdef G_OS_UNIX
- || keyval == GDK_KEY_asciitilde
-#endif
- ) && !(state & no_text_input_mask))
- return TRUE;
+ if (state & no_text_input_mask)
+ return FALSE;
- return FALSE;
+ switch (keyval)
+ {
+ case GDK_KEY_slash:
+ case GDK_KEY_KP_Divide:
+ *string = "/";
+ return TRUE;
+
+ case GDK_KEY_period:
+ *string = ".";
+ return TRUE;
+
+ case GDK_KEY_asciitilde:
+ *string = "~";
+ return TRUE;
+
+ default:
+ return FALSE;
+ }
}
/* Handles key press events on the file list, so that we can trap Enter to
@@ -1317,16 +1329,14 @@ key_press_cb (GtkEventController *controller,
GtkFileChooserWidget *impl = (GtkFileChooserWidget *) data;
GtkFileChooserWidgetPrivate *priv = impl->priv;
const GdkEvent *event;
+ const char *string;
event = gtk_get_current_event ();
- if (should_trigger_location_entry (impl, keyval, state) &&
+ if (should_trigger_location_entry (impl, keyval, state, &string) &&
(priv->action == GTK_FILE_CHOOSER_ACTION_OPEN ||
priv->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER))
{
- const char *string;
-
- gdk_event_get_string ((GdkEvent *)event, &string);
location_popup_handler (impl, string);
return GDK_EVENT_STOP;
}
@@ -1388,17 +1398,15 @@ widget_key_press_cb (GtkEventController *controller,
GtkFileChooserWidgetPrivate *priv = impl->priv;
gboolean handled = FALSE;
GdkEvent *event;
+ const char *string;
event = gtk_get_current_event ();
- if (should_trigger_location_entry (impl, keyval, state))
+ if (should_trigger_location_entry (impl, keyval, state, &string))
{
if (priv->action == GTK_FILE_CHOOSER_ACTION_OPEN ||
priv->action == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
{
- const char *string;
-
- gdk_event_get_string (event, &string);
location_popup_handler (impl, string);
handled = TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]