[gtk/wip/chergert/GTK_DEBUG_TEXT_DIR: 13/13] gtkmain: add support for GTK_DEBUG=invert-text-dir
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/chergert/GTK_DEBUG_TEXT_DIR: 13/13] gtkmain: add support for GTK_DEBUG=invert-text-dir
- Date: Wed, 1 Jun 2022 18:27:23 +0000 (UTC)
commit 8f1db27b6be1a0154a0bfce7d9882db298f7dc5e
Author: Christian Hergert <chergert redhat com>
Date: Wed Jun 1 11:26:44 2022 -0700
gtkmain: add support for GTK_DEBUG=invert-text-dir
This allows inverting the default text-direction in an application for
debugging, testing, and QA purposes. IDEs such as Builder may automate this
to encourage more application developers to test with a text-direction
different than their own.
gtk/gtkdebug.h | 1 +
gtk/gtkmain.c | 13 ++++++++++++-
2 files changed, 13 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkdebug.h b/gtk/gtkdebug.h
index f1cad3ea59..a5b8eff2d1 100644
--- a/gtk/gtkdebug.h
+++ b/gtk/gtkdebug.h
@@ -82,6 +82,7 @@ typedef enum {
GTK_DEBUG_BUILDER_OBJECTS = 1 << 16,
GTK_DEBUG_A11Y = 1 << 17,
GTK_DEBUG_ICONFALLBACK = 1 << 18,
+ GTK_DEBUG_INVERT_TEXT_DIR = 1 << 19,
} GtkDebugFlags;
#ifdef G_ENABLE_DEBUG
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 7cc39c35f8..80c7542b03 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -203,6 +203,7 @@ static const GdkDebugKey gtk_debug_keys[] = {
{ "snapshot", GTK_DEBUG_SNAPSHOT, "Generate debug render nodes" },
{ "accessibility", GTK_DEBUG_A11Y, "Information about accessibility state changes" },
{ "iconfallback", GTK_DEBUG_ICONFALLBACK, "Information about icon fallback" },
+ { "invert-text-dir", GTK_DEBUG_INVERT_TEXT_DIR, "Invert the default text direction" },
};
/* This checks to see if the process is running suid or sgid
@@ -523,6 +524,7 @@ static void
do_post_parse_initialization (void)
{
GdkDisplayManager *display_manager;
+ GtkTextDirection text_dir;
gint64 before G_GNUC_UNUSED;
if (gtk_initialized)
@@ -536,7 +538,16 @@ do_post_parse_initialization (void)
signal (SIGPIPE, SIG_IGN);
#endif
- gtk_widget_set_default_direction (gtk_get_locale_direction ());
+ text_dir = gtk_get_locale_direction ();
+
+ /* We always allow inverting the text direction, even in
+ * production builds, as SDK/IDE tooling may provide the
+ * ability for developers to test rtl/ltr inverted.
+ */
+ if (gtk_get_debug_flags () & GTK_DEBUG_INVERT_TEXT_DIR)
+ text_dir = (text_dir == GTK_TEXT_DIR_LTR) ? GTK_TEXT_DIR_RTL : GTK_TEXT_DIR_LTR;
+
+ gtk_widget_set_default_direction (text_dir);
gdk_event_init_types ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]