diff options
author | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2020-07-08 19:38:51 -0300 |
---|---|---|
committer | Juan Pablo Ugarte <juanpablougarte@gmail.com> | 2020-07-08 19:38:51 -0300 |
commit | 7c17877ed3ad0683fda6c59e6cbe9b42b653178e (patch) | |
tree | 05d5a1537bc9f7cc0d075399b18198cf22caf070 /src/glade-window.c | |
parent | 18d6b7c49b76051bc0e475b41390315bf71b40d9 (diff) | |
download | glade-7c17877ed3ad0683fda6c59e6cbe9b42b653178e.tar.gz |
GladeWindow: add CSS optimization for Quartz backend
Disable shadows and animations on OSX to improve performance.
Add glade_window_get_gdk_backend()
Diffstat (limited to 'src/glade-window.c')
-rw-r--r-- | src/glade-window.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/glade-window.c b/src/glade-window.c index 888dd40e..b12ad494 100644 --- a/src/glade-window.c +++ b/src/glade-window.c @@ -2101,6 +2101,7 @@ static void glade_window_init (GladeWindow *window) { GladeWindowPrivate *priv; + GtkStyleContext *ctx; window->priv = priv = glade_window_get_instance_private (window); @@ -2119,6 +2120,10 @@ glade_window_init (GladeWindow *window) gtk_box_set_homogeneous (GTK_BOX (priv->save_button_box), FALSE); priv->registration = glade_registration_new (); + + /* Add Gdk backend as a class */ + ctx = gtk_widget_get_style_context (GTK_WIDGET (window)); + gtk_style_context_add_class (ctx, glade_window_get_gdk_backend ()); } static void @@ -2555,3 +2560,63 @@ glade_window_registration_notify_user (GladeWindow *window) /* translators: Text to show in the statusbar if the user did not completed the survey and choose not to show the notification dialog again */ _("Go to Help -> Registration & User Survey and complete our survey!")); } + +#ifdef GDK_WINDOWING_X11 +#include "gdk/gdkx.h" +#endif + +#ifdef GDK_WINDOWING_QUARTZ +#include "gdk/gdkquartz.h" +#endif + +#ifdef GDK_WINDOWING_WIN32 +#include "gdk/gdkwin32.h" +#endif + +#ifdef GDK_WINDOWING_WAYLAND +#include "gdk/gdkwayland.h" +#endif + +#ifdef GDK_WINDOWING_BROADWAY +#include "gdk/gdkbroadway.h" +#endif + +const gchar * +glade_window_get_gdk_backend () +{ + GdkDisplay *display = gdk_display_get_default (); + +#ifdef GDK_WINDOWING_X11 + if (GDK_IS_X11_DISPLAY (display)) + return "X11"; + else +#endif + +#ifdef GDK_WINDOWING_QUARTZ + if (GDK_IS_QUARTZ_DISPLAY (display)) + return "Quartz"; + else +#endif + +#ifdef GDK_WINDOWING_WIN32 + if (GDK_IS_WIN32_DISPLAY (display)) + return "Win32"; + else +#endif + +#ifdef GDK_WINDOWING_WAYLAND + if (GDK_IS_WAYLAND_DISPLAY (display)) + return "Wayland"; + else +#endif + +#ifdef GDK_WINDOWING_BROADWAY + if (GDK_IS_BROADWAY_DISPLAY (display)) + return "Broadway"; + else +#endif + { + return "Unknown"; + } +} + |