forked from AuroraMiddleware/gtk
inspector: Make css editor respect inspected display
Stop using gdk_display_get_default and use the inspected display instead.
This commit is contained in:
parent
1437b0856c
commit
174d8b72a5
@ -23,6 +23,7 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include <glib/gi18n-lib.h>
|
#include <glib/gi18n-lib.h>
|
||||||
|
|
||||||
|
#include "window.h"
|
||||||
#include "css-editor.h"
|
#include "css-editor.h"
|
||||||
|
|
||||||
#include "gtkcssprovider.h"
|
#include "gtkcssprovider.h"
|
||||||
@ -42,6 +43,7 @@ struct _GtkInspectorCssEditorPrivate
|
|||||||
{
|
{
|
||||||
GtkWidget *view;
|
GtkWidget *view;
|
||||||
GtkTextBuffer *text;
|
GtkTextBuffer *text;
|
||||||
|
GdkDisplay *display;
|
||||||
GtkCssProvider *provider;
|
GtkCssProvider *provider;
|
||||||
GtkToggleButton *disable_button;
|
GtkToggleButton *disable_button;
|
||||||
guint timeout;
|
guint timeout;
|
||||||
@ -157,11 +159,14 @@ static void
|
|||||||
disable_toggled (GtkToggleButton *button,
|
disable_toggled (GtkToggleButton *button,
|
||||||
GtkInspectorCssEditor *ce)
|
GtkInspectorCssEditor *ce)
|
||||||
{
|
{
|
||||||
|
if (!ce->priv->display)
|
||||||
|
return;
|
||||||
|
|
||||||
if (gtk_toggle_button_get_active (button))
|
if (gtk_toggle_button_get_active (button))
|
||||||
gtk_style_context_remove_provider_for_display (gdk_display_get_default (),
|
gtk_style_context_remove_provider_for_display (ce->priv->display,
|
||||||
GTK_STYLE_PROVIDER (ce->priv->provider));
|
GTK_STYLE_PROVIDER (ce->priv->provider));
|
||||||
else
|
else
|
||||||
gtk_style_context_add_provider_for_display (gdk_display_get_default (),
|
gtk_style_context_add_provider_for_display (ce->priv->display,
|
||||||
GTK_STYLE_PROVIDER (ce->priv->provider),
|
GTK_STYLE_PROVIDER (ce->priv->provider),
|
||||||
GTK_STYLE_PROVIDER_PRIORITY_USER);
|
GTK_STYLE_PROVIDER_PRIORITY_USER);
|
||||||
}
|
}
|
||||||
@ -326,22 +331,35 @@ static void
|
|||||||
create_provider (GtkInspectorCssEditor *ce)
|
create_provider (GtkInspectorCssEditor *ce)
|
||||||
{
|
{
|
||||||
ce->priv->provider = gtk_css_provider_new ();
|
ce->priv->provider = gtk_css_provider_new ();
|
||||||
gtk_style_context_add_provider_for_display (gdk_display_get_default (),
|
|
||||||
GTK_STYLE_PROVIDER (ce->priv->provider),
|
|
||||||
GTK_STYLE_PROVIDER_PRIORITY_USER);
|
|
||||||
|
|
||||||
g_signal_connect (ce->priv->provider, "parsing-error",
|
g_signal_connect (ce->priv->provider, "parsing-error",
|
||||||
G_CALLBACK (show_parsing_error), ce);
|
G_CALLBACK (show_parsing_error), ce);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
destroy_provider (GtkInspectorCssEditor *ce)
|
destroy_provider (GtkInspectorCssEditor *ce)
|
||||||
{
|
{
|
||||||
gtk_style_context_remove_provider_for_display (gdk_display_get_default (),
|
g_signal_handlers_disconnect_by_func (ce->priv->provider, show_parsing_error, ce);
|
||||||
GTK_STYLE_PROVIDER (ce->priv->provider));
|
|
||||||
g_clear_object (&ce->priv->provider);
|
g_clear_object (&ce->priv->provider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
add_provider (GtkInspectorCssEditor *ce,
|
||||||
|
GdkDisplay *display)
|
||||||
|
{
|
||||||
|
gtk_style_context_add_provider_for_display (display,
|
||||||
|
GTK_STYLE_PROVIDER (ce->priv->provider),
|
||||||
|
GTK_STYLE_PROVIDER_PRIORITY_USER);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
remove_provider (GtkInspectorCssEditor *ce,
|
||||||
|
GdkDisplay *display)
|
||||||
|
{
|
||||||
|
gtk_style_context_remove_provider_for_display (display,
|
||||||
|
GTK_STYLE_PROVIDER (ce->priv->provider));
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_inspector_css_editor_init (GtkInspectorCssEditor *ce)
|
gtk_inspector_css_editor_init (GtkInspectorCssEditor *ce)
|
||||||
{
|
{
|
||||||
@ -355,7 +373,6 @@ constructed (GObject *object)
|
|||||||
GtkInspectorCssEditor *ce = GTK_INSPECTOR_CSS_EDITOR (object);
|
GtkInspectorCssEditor *ce = GTK_INSPECTOR_CSS_EDITOR (object);
|
||||||
|
|
||||||
create_provider (ce);
|
create_provider (ce);
|
||||||
set_initial_text (ce);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -366,6 +383,8 @@ finalize (GObject *object)
|
|||||||
if (ce->priv->timeout != 0)
|
if (ce->priv->timeout != 0)
|
||||||
g_source_remove (ce->priv->timeout);
|
g_source_remove (ce->priv->timeout);
|
||||||
|
|
||||||
|
if (ce->priv->display)
|
||||||
|
remove_provider (ce, ce->priv->display);
|
||||||
destroy_provider (ce);
|
destroy_provider (ce);
|
||||||
|
|
||||||
g_list_free_full (ce->priv->errors, css_error_free);
|
g_list_free_full (ce->priv->errors, css_error_free);
|
||||||
@ -392,4 +411,13 @@ gtk_inspector_css_editor_class_init (GtkInspectorCssEditorClass *klass)
|
|||||||
gtk_widget_class_bind_template_callback (widget_class, query_tooltip_cb);
|
gtk_widget_class_bind_template_callback (widget_class, query_tooltip_cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
gtk_inspector_css_editor_set_display (GtkInspectorCssEditor *ce,
|
||||||
|
GdkDisplay *display)
|
||||||
|
{
|
||||||
|
ce->priv->display = display;
|
||||||
|
add_provider (ce, display);
|
||||||
|
set_initial_text (ce);
|
||||||
|
}
|
||||||
|
|
||||||
// vim: set et sw=2 ts=2:
|
// vim: set et sw=2 ts=2:
|
||||||
|
@ -49,8 +49,8 @@ typedef struct _GtkInspectorCssEditorClass
|
|||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
GType gtk_inspector_css_editor_get_type (void);
|
GType gtk_inspector_css_editor_get_type (void);
|
||||||
void gtk_inspector_css_editor_set_object (GtkInspectorCssEditor *ce,
|
void gtk_inspector_css_editor_set_display (GtkInspectorCssEditor *ce,
|
||||||
GObject *object);
|
GdkDisplay *display);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
@ -267,6 +267,7 @@ gtk_inspector_window_constructed (GObject *object)
|
|||||||
g_object_set_data (G_OBJECT (iw->inspected_display), "-gtk-inspector", iw);
|
g_object_set_data (G_OBJECT (iw->inspected_display), "-gtk-inspector", iw);
|
||||||
|
|
||||||
gtk_inspector_object_tree_set_display (GTK_INSPECTOR_OBJECT_TREE (iw->object_tree), iw->inspected_display);
|
gtk_inspector_object_tree_set_display (GTK_INSPECTOR_OBJECT_TREE (iw->object_tree), iw->inspected_display);
|
||||||
|
gtk_inspector_css_editor_set_display (GTK_INSPECTOR_CSS_EDITOR (iw->css_editor), iw->inspected_display);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -416,6 +417,7 @@ gtk_inspector_window_class_init (GtkInspectorWindowClass *klass)
|
|||||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, controllers);
|
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, controllers);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, magnifier);
|
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, magnifier);
|
||||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, sidebar_revealer);
|
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, sidebar_revealer);
|
||||||
|
gtk_widget_class_bind_template_child (widget_class, GtkInspectorWindow, css_editor);
|
||||||
|
|
||||||
gtk_widget_class_bind_template_callback (widget_class, gtk_inspector_on_inspect);
|
gtk_widget_class_bind_template_callback (widget_class, gtk_inspector_on_inspect);
|
||||||
gtk_widget_class_bind_template_callback (widget_class, on_object_activated);
|
gtk_widget_class_bind_template_callback (widget_class, on_object_activated);
|
||||||
|
@ -71,6 +71,7 @@ typedef struct
|
|||||||
GtkWidget *controllers;
|
GtkWidget *controllers;
|
||||||
GtkWidget *magnifier;
|
GtkWidget *magnifier;
|
||||||
GtkWidget *sidebar_revealer;
|
GtkWidget *sidebar_revealer;
|
||||||
|
GtkWidget *css_editor;
|
||||||
|
|
||||||
GtkWidget *selected_widget;
|
GtkWidget *selected_widget;
|
||||||
|
|
||||||
|
@ -519,7 +519,7 @@
|
|||||||
<property name="name">css</property>
|
<property name="name">css</property>
|
||||||
<property name="title" translatable="yes">CSS</property>
|
<property name="title" translatable="yes">CSS</property>
|
||||||
<property name="child">
|
<property name="child">
|
||||||
<object class="GtkInspectorCssEditor"/>
|
<object class="GtkInspectorCssEditor" id="css_editor"/>
|
||||||
</property>
|
</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
|
Loading…
Reference in New Issue
Block a user