[gnome-panel] libpanel-applet: remove PanelPlug
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] libpanel-applet: remove PanelPlug
- Date: Wed, 21 Sep 2016 15:05:17 +0000 (UTC)
commit 3b248c0474992cfb5239f283fe1c7fbd83656831
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Wed Sep 21 16:42:16 2016 +0300
libpanel-applet: remove PanelPlug
data/theme/Adwaita/gnome-panel-dark.css | 3 +-
data/theme/Adwaita/gnome-panel.css | 3 +-
data/theme/HighContrast/gnome-panel.css | 4 +-
doc/reference/libpanel-applet/Makefile.am | 1 -
libpanel-applet/Makefile.am | 4 +-
libpanel-applet/panel-applet-factory.c | 9 +-
libpanel-applet/panel-applet-private.h | 2 -
libpanel-applet/panel-applet.c | 248 +----------------------------
libpanel-applet/panel-plug-private.h | 32 ----
libpanel-applet/panel-plug.c | 98 -----------
10 files changed, 6 insertions(+), 398 deletions(-)
---
diff --git a/data/theme/Adwaita/gnome-panel-dark.css b/data/theme/Adwaita/gnome-panel-dark.css
index e4e3ed3..873a753 100644
--- a/data/theme/Adwaita/gnome-panel-dark.css
+++ b/data/theme/Adwaita/gnome-panel-dark.css
@@ -1,5 +1,4 @@
-panel-toplevel,
-panel-plug {
+panel-toplevel {
background-color: #393f3f;
}
diff --git a/data/theme/Adwaita/gnome-panel.css b/data/theme/Adwaita/gnome-panel.css
index 19f8d00..2552c95 100644
--- a/data/theme/Adwaita/gnome-panel.css
+++ b/data/theme/Adwaita/gnome-panel.css
@@ -1,5 +1,4 @@
-panel-toplevel,
-panel-plug {
+panel-toplevel {
background-color: #e8e8e7;
}
diff --git a/data/theme/HighContrast/gnome-panel.css b/data/theme/HighContrast/gnome-panel.css
index 1b1e85f..1567d27 100644
--- a/data/theme/HighContrast/gnome-panel.css
+++ b/data/theme/HighContrast/gnome-panel.css
@@ -1,5 +1,4 @@
-panel-toplevel,
-panel-plug {
+panel-toplevel {
background-color: #ffffff;
}
@@ -31,7 +30,6 @@ panel-applet > menubar > menuitem:hover > image {
color: #ffffff;
}
-
#tasklist-button,
#clock-applet-button,
#showdesktop-button {
diff --git a/doc/reference/libpanel-applet/Makefile.am b/doc/reference/libpanel-applet/Makefile.am
index 1ee58f8..ced67bb 100644
--- a/doc/reference/libpanel-applet/Makefile.am
+++ b/doc/reference/libpanel-applet/Makefile.am
@@ -51,7 +51,6 @@ IGNORE_HFILES = \
panel-applet-factory.h \
panel-applet-marshal.h \
panel-applet-private.h \
- panel-plug-private.h \
$(NULL)
# Images to copy into HTML directory.
diff --git a/libpanel-applet/Makefile.am b/libpanel-applet/Makefile.am
index 891fa5a..5048a03 100644
--- a/libpanel-applet/Makefile.am
+++ b/libpanel-applet/Makefile.am
@@ -23,9 +23,7 @@ libpanel_applet_la_SOURCES = \
panel-applet-factory.c \
panel-applet-bindings.h \
panel-applet-bindings.c \
- panel-applet-private.h \
- panel-plug.c \
- panel-plug-private.h
+ panel-applet-private.h
libpanel_applet_la_LIBADD = \
$(LIBPANEL_APPLET_LIBS) \
diff --git a/libpanel-applet/panel-applet-factory.c b/libpanel-applet/panel-applet-factory.c
index 904fa61..2c53964 100644
--- a/libpanel-applet/panel-applet-factory.c
+++ b/libpanel-applet/panel-applet-factory.c
@@ -190,8 +190,6 @@ panel_applet_factory_get_applet (PanelAppletFactory *factory,
gint screen_num;
GVariant *props;
GVariant *return_value;
- GdkScreen *screen;
- guint32 xid;
guint32 uid;
const gchar *object_path;
@@ -209,11 +207,6 @@ panel_applet_factory_get_applet (PanelAppletFactory *factory,
set_applet_constructor_properties (applet, props);
g_variant_unref (props);
- screen = screen_num != -1 ?
- gdk_display_get_screen (gdk_display_get_default (), screen_num) :
- gdk_screen_get_default ();
-
- xid = panel_applet_get_xid (PANEL_APPLET (applet), screen);
uid = factory->next_uid++;
object_path = panel_applet_get_object_path (PANEL_APPLET (applet));
@@ -223,7 +216,7 @@ panel_applet_factory_get_applet (PanelAppletFactory *factory,
return_value = g_variant_new ("(obuu)",
object_path,
factory->out_of_process,
- xid,
+ 0,
uid);
g_dbus_method_invocation_return_value (invocation, return_value);
diff --git a/libpanel-applet/panel-applet-private.h b/libpanel-applet/panel-applet-private.h
index f531542..11f58be 100644
--- a/libpanel-applet/panel-applet-private.h
+++ b/libpanel-applet/panel-applet-private.h
@@ -25,8 +25,6 @@
G_BEGIN_DECLS
-guint32 panel_applet_get_xid (PanelApplet *applet,
- GdkScreen *screen);
const gchar *panel_applet_get_object_path (PanelApplet *applet);
GtkWidget *panel_applet_get_applet_widget (const gchar *factory_id,
guint uid);
diff --git a/libpanel-applet/panel-applet.c b/libpanel-applet/panel-applet.c
index c645010..4a48cb9 100644
--- a/libpanel-applet/panel-applet.c
+++ b/libpanel-applet/panel-applet.c
@@ -45,7 +45,6 @@
#include "panel-applet-factory.h"
#include "panel-applet-marshal.h"
#include "panel-applet-enums.h"
-#include "panel-plug-private.h"
/**
* SECTION:applet
@@ -76,7 +75,6 @@
*/
struct _PanelAppletPrivate {
- GtkWidget *plug;
GtkWidget *applet;
GDBusConnection *connection;
@@ -1056,71 +1054,11 @@ panel_applet_can_focus (GtkWidget *widget)
return !container_has_focusable_child (GTK_CONTAINER (widget));
}
-/* Taken from libbonoboui/bonobo/bonobo-plug.c */
static gboolean
panel_applet_button_event (PanelApplet *applet,
GdkEventButton *event)
{
- GtkWidget *widget;
- GdkWindow *window;
- GdkWindow *socket_window;
- XEvent xevent;
-
- if (!applet->priv->out_of_process)
- return FALSE;
-
- widget = applet->priv->plug;
-
- if (!gtk_widget_is_toplevel (widget))
- return FALSE;
-
- window = gtk_widget_get_window (widget);
- socket_window = gtk_plug_get_socket_window (GTK_PLUG (widget));
-
- if (event->type == GDK_BUTTON_PRESS) {
- GdkDisplay *display;
- GdkSeat *seat;
-
- xevent.xbutton.type = ButtonPress;
-
- display = gdk_display_get_default ();
- seat = gdk_display_get_default_seat (display);
-
- /* X does an automatic pointer grab on button press
- * if we have both button press and release events
- * selected.
- * We don't want to hog the pointer on our parent.
- */
- gdk_seat_ungrab (seat);
- } else {
- xevent.xbutton.type = ButtonRelease;
- }
-
- xevent.xbutton.display = GDK_WINDOW_XDISPLAY (window);
- xevent.xbutton.window = GDK_WINDOW_XID (socket_window);
- xevent.xbutton.root = GDK_WINDOW_XID (gdk_screen_get_root_window
- (gdk_window_get_screen (window)));
- /*
- * FIXME: the following might cause
- * big problems for non-GTK apps
- */
- xevent.xbutton.x = 0;
- xevent.xbutton.y = 0;
- xevent.xbutton.x_root = 0;
- xevent.xbutton.y_root = 0;
- xevent.xbutton.state = event->state;
- xevent.xbutton.button = event->button;
- xevent.xbutton.same_screen = TRUE; /* FIXME ? */
-
- gdk_error_trap_push ();
-
- XSendEvent (GDK_WINDOW_XDISPLAY (window),
- GDK_WINDOW_XID (socket_window),
- False, NoEventMask, &xevent);
-
- gdk_error_trap_pop_ignored ();
-
- return TRUE;
+ return FALSE;
}
static gboolean
@@ -1337,131 +1275,6 @@ panel_applet_focus (GtkWidget *widget,
return ret;
}
-static cairo_surface_t *
-panel_applet_create_foreign_surface_for_display (GdkDisplay *display,
- GdkVisual *visual,
- Window xid)
-{
- Window window;
- gint x, y;
- guint width, height, border, depth;
-
- if (!XGetGeometry (GDK_DISPLAY_XDISPLAY (display), xid, &window,
- &x, &y, &width, &height, &border, &depth))
- return NULL;
-
- return cairo_xlib_surface_create (GDK_DISPLAY_XDISPLAY (display),
- xid, gdk_x11_visual_get_xvisual (visual),
- width, height);
-}
-
-static cairo_pattern_t *
-panel_applet_get_pattern_from_pixmap (PanelApplet *applet,
- Window xid,
- int x,
- int y)
-{
- GdkWindow *window;
- int width;
- int height;
- cairo_t *cr;
- cairo_surface_t *background;
- cairo_surface_t *surface;
- cairo_pattern_t *pattern;
-
- g_return_val_if_fail (PANEL_IS_APPLET (applet), NULL);
-
- if (!gtk_widget_get_realized (GTK_WIDGET (applet)))
- return NULL;
-
- window = gtk_widget_get_window (GTK_WIDGET (applet));
-
- gdk_error_trap_push ();
- background = panel_applet_create_foreign_surface_for_display (gdk_window_get_display (window),
- gdk_window_get_visual (window),
- xid);
- gdk_error_trap_pop_ignored ();
-
- /* background can be NULL if the user changes the background very fast.
- * We'll get the next update, so it's not a big deal. */
- if (!background ||
- cairo_surface_status (background) != CAIRO_STATUS_SUCCESS) {
- if (background)
- cairo_surface_destroy (background);
- return NULL;
- }
-
- width = gdk_window_get_width (window);
- height = gdk_window_get_height (window);
- surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, width, height);
-
- gdk_error_trap_push ();
- cr = cairo_create (surface);
- cairo_set_source_surface (cr, background, -x, -y);
- cairo_rectangle (cr, 0, 0, width, height);
- cairo_fill (cr);
- gdk_error_trap_pop_ignored ();
-
- cairo_surface_destroy (background);
-
- pattern = NULL;
-
- if (cairo_status (cr) == CAIRO_STATUS_SUCCESS)
- pattern = cairo_pattern_create_for_surface (surface);
-
- cairo_destroy (cr);
- cairo_surface_destroy (surface);
-
- return pattern;
-}
-
-static cairo_pattern_t *
-panel_applet_get_background (PanelApplet *applet)
-{
- cairo_pattern_t *pattern = NULL;
- GVariant *variant;
- GVariantIter iter;
- GError *error = NULL;
-
- g_return_val_if_fail (PANEL_IS_APPLET (applet), NULL);
-
- if (!gtk_widget_get_realized (GTK_WIDGET (applet)) || !applet->priv->background)
- return NULL;
-
- variant = g_variant_parse (NULL, applet->priv->background,
- NULL, NULL, &error);
- if (!variant) {
- g_warning ("Error parsing background %s: %s\n", applet->priv->background, error->message);
- g_error_free (error);
- return NULL;
- }
-
- g_variant_iter_init (&iter, variant);
- switch (g_variant_iter_n_children (&iter)) {
- case 4: {
- gdouble red, green, blue, alpha;
-
- g_variant_get (variant, "(dddd)", &red, &green, &blue, &alpha);
- pattern = cairo_pattern_create_rgba (red, green, blue, alpha);
- }
- break;
- case 3: {
- guint32 xid;
- int x, y;
-
- g_variant_get (variant, "(uii)", &xid, &x, &y);
- pattern = panel_applet_get_pattern_from_pixmap (applet, xid, x, y);
- }
- break;
- default:
- break;
- }
-
- g_variant_unref (variant);
-
- return pattern;
-}
-
static void
panel_applet_set_background_string (PanelApplet *applet,
const gchar *background)
@@ -1495,24 +1308,6 @@ panel_applet_style_updated (GtkWidget *widget)
static void
panel_applet_handle_background (PanelApplet *applet)
{
- GdkWindow *window;
- cairo_pattern_t *pattern;
-
- if (applet->priv->plug == NULL)
- return;
-
- window = gtk_widget_get_window (applet->priv->plug);
-
- if (window == NULL)
- return;
-
- pattern = panel_applet_get_background (applet);
-
- gdk_window_set_background_pattern (window, pattern);
- gtk_widget_queue_draw (applet->priv->plug);
-
- if (pattern)
- cairo_pattern_destroy (pattern);
}
static void
@@ -1745,33 +1540,6 @@ panel_applet_init (PanelApplet *applet)
gdk_x11_display_set_window_scale (gdk_display_get_default (), 1);
}
-static GObject *
-panel_applet_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_properties)
-{
- GObject *object;
- PanelApplet *applet;
-
- object = G_OBJECT_CLASS (panel_applet_parent_class)->constructor (type,
- n_construct_properties,
- construct_properties);
- applet = PANEL_APPLET (object);
-
- if (!applet->priv->out_of_process)
- return object;
-
- applet->priv->plug = panel_plug_new ();
-
- g_signal_connect_swapped (G_OBJECT (applet->priv->plug), "embedded",
- G_CALLBACK (panel_applet_setup),
- applet);
-
- gtk_container_add (GTK_CONTAINER (applet->priv->plug), GTK_WIDGET (applet));
-
- return object;
-}
-
static void
panel_applet_constructed (GObject *object)
{
@@ -1794,7 +1562,6 @@ panel_applet_class_init (PanelAppletClass *klass)
gobject_class->get_property = panel_applet_get_property;
gobject_class->set_property = panel_applet_set_property;
- gobject_class->constructor = panel_applet_constructor;
gobject_class->constructed = panel_applet_constructed;
gobject_class->finalize = panel_applet_finalize;
@@ -2279,19 +2046,6 @@ panel_applet_factory_setup_in_process (const gchar *factory_id,
callback, data);
}
-guint32
-panel_applet_get_xid (PanelApplet *applet,
- GdkScreen *screen)
-{
- if (applet->priv->out_of_process == FALSE)
- return 0;
-
- gtk_window_set_screen (GTK_WINDOW (applet->priv->plug), screen);
- gtk_widget_show (applet->priv->plug);
-
- return gtk_plug_get_id (GTK_PLUG (applet->priv->plug));
-}
-
const gchar *
panel_applet_get_object_path (PanelApplet *applet)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]