[Xfce4-commits] [xfce/xfwm4] 23/32: events: replace client_event with event filter

noreply at xfce.org noreply at xfce.org
Tue Dec 5 09:22:09 CET 2017


This is an automated email from the git hooks/post-receive script.

o   l   i   v   i   e   r       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository xfce/xfwm4.

commit c8d622b4274e154ab503f7f06bf49d7fa022ed0f
Author: Viktor Odintsev <zakhams at gmail.com>
Date:   Tue Jul 4 02:08:28 2017 +0300

    events: replace client_event with event filter
---
 src/display.c |  3 ++-
 src/display.h |  1 +
 src/events.c  | 41 ++++++++++-------------------------------
 3 files changed, 13 insertions(+), 32 deletions(-)

diff --git a/src/display.c b/src/display.c
index adc961d..fcd8282 100644
--- a/src/display.c
+++ b/src/display.c
@@ -177,7 +177,8 @@ myDisplayInitAtoms (DisplayInfo *display_info)
         "XFWM4_COMPOSITING_MANAGER",
         "XFWM4_TIMESTAMP_PROP",
         "_XROOTPMAP_ID",
-        "_XSETROOT_ID"
+        "_XSETROOT_ID",
+        "_GTK_READ_RCFILES"
     };
 
     g_assert (ATOM_COUNT == G_N_ELEMENTS (atom_names));
diff --git a/src/display.h b/src/display.h
index 6b562e2..0babd34 100644
--- a/src/display.h
+++ b/src/display.h
@@ -270,6 +270,7 @@ enum
     XFWM4_TIMESTAMP_PROP,
     XROOTPMAP,
     XSETROOT,
+    GTK_READ_RCFILES,
     ATOM_COUNT
 };
 
diff --git a/src/events.c b/src/events.c
index c7a8ceb..ff590ab 100644
--- a/src/events.c
+++ b/src/events.c
@@ -82,7 +82,6 @@
                                  ButtonPressMask | \
                                  ButtonReleaseMask)
 
-static GdkAtom atom_rcfiles = GDK_NONE;
 static xfwmWindow menu_event_window;
 
 /* Forward decl. */
@@ -102,9 +101,7 @@ static void show_window_menu         (Client *c,
 static gboolean show_popup_cb        (GtkWidget * widget,
                                       GdkEventButton * ev,
                                       gpointer data);
-static gboolean client_event_cb      (GtkWidget * widget,
-                                      GdkEventClient * ev,
-                                      gpointer data);
+static gboolean set_reload           (DisplayInfo *display_info);
 
 typedef enum
 {
@@ -2057,6 +2054,11 @@ handleClientMessage (DisplayInfo *display_info, XClientMessageEvent * ev)
                 clientReceiveNetWMPong (screen_info, (guint32) ev->data.l[1]);
             }
         }
+        else if (ev->message_type == display_info->atoms[GTK_READ_RCFILES])
+        {
+            TRACE ("window (0x%lx) has received a GTK_READ_RCFILES event", ev->window);
+            set_reload (display_info);
+        }
         else
         {
             TRACE ("unidentified client message for window 0x%lx", ev->window);
@@ -2646,13 +2648,10 @@ show_popup_cb (GtkWidget * widget, GdkEventButton * ev, gpointer data)
 }
 
 static gboolean
-set_reload (GObject * obj, GdkEvent * ev, gpointer data)
+set_reload (DisplayInfo *display_info)
 {
-    DisplayInfo *display_info;
-
     TRACE ("setting reload flag so all prefs will be reread at next event loop");
 
-    display_info = (DisplayInfo *) data;
     display_info->reload = TRUE;
     return (TRUE);
 }
@@ -2714,24 +2713,6 @@ cursor_theme_cb (GObject * obj, GParamSpec * pspec, gpointer data)
 }
 
 static gboolean
-client_event_cb (GtkWidget * widget, GdkEventClient * ev, gpointer data)
-{
-    TRACE ("entering client_event_cb");
-
-    if (!atom_rcfiles)
-    {
-        atom_rcfiles = gdk_atom_intern ("_GTK_READ_RCFILES", FALSE);
-    }
-
-    if (ev->message_type == atom_rcfiles)
-    {
-        set_reload (G_OBJECT (widget), (GdkEvent *) ev, data);
-    }
-
-    return (FALSE);
-}
-
-static gboolean
 refresh_font_cb (GObject * obj, GdkEvent * ev, gpointer data)
 {
     DisplayInfo * display_info;
@@ -2861,8 +2842,6 @@ initPerScreenCallbacks (ScreenInfo *screen_info)
     screen_info->button_handler_id =
         g_signal_connect (G_OBJECT (myScreenGetGtkWidget (screen_info)),
                           "button_press_event", G_CALLBACK (show_popup_cb), (gpointer) NULL);
-    g_signal_connect (G_OBJECT (myScreenGetGtkWidget (screen_info)), "client_event",
-                      G_CALLBACK (client_event_cb), NULL);
     g_object_connect (G_OBJECT(screen_info->gscr),
                       "signal::size-changed",
                       G_CALLBACK(size_changed_cb), (gpointer) (screen_info),
@@ -2880,9 +2859,9 @@ initPerDisplayCallbacks (DisplayInfo *display_info)
 
     settings = gtk_settings_get_default ();
     g_object_connect (settings,
-                      "signal::notify::gtk-theme-name",
-                      G_CALLBACK (set_reload),  (gpointer) (display_info),
-                      "signal::notify::gtk-font-name",
+                      "swapped-signal::notify::gtk-theme-name",
+                      G_CALLBACK (set_reload), (gpointer) (display_info),
+                      "swapped-signal::notify::gtk-font-name",
                       G_CALLBACK (set_reload), (gpointer) (display_info),
                       "signal::notify::gtk-double-click-time",
                       G_CALLBACK (double_click_time_cb), (gpointer) (display_info),

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list