[Xfce4-commits] [xfce/xfwm4] 01/01: Add support for GTK hide titlebar on maximize

noreply at xfce.org noreply at xfce.org
Wed Jan 7 23:15:48 CET 2015


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

olivier pushed a commit to branch master
in repository xfce/xfwm4.

commit c6842b38ea34a5ae28404d6c6af877ab8b5402dc
Author: Olivier Fourdan <fourdan at xfce.org>
Date:   Wed Jan 7 23:12:28 2015 +0100

    Add support for GTK hide titlebar on maximize
    
    Signed-off-by: Olivier Fourdan <fourdan at xfce.org>
---
 src/client.c     |   95 ++++++++++++++++++++++++++++++++++++++----------------
 src/client.h     |   14 +++++---
 src/display.c    |    3 +-
 src/display.h    |    3 +-
 src/events.c     |   12 ++++++-
 src/events.h     |    2 +-
 src/frame.c      |   31 ++++++++++--------
 src/hints.c      |    2 +-
 src/hints.h      |    3 +-
 src/moveresize.c |   10 +++---
 src/netwm.c      |   40 +----------------------
 src/netwm.h      |    3 +-
 src/xsync.c      |   36 ++++++++++-----------
 13 files changed, 138 insertions(+), 116 deletions(-)

diff --git a/src/client.c b/src/client.c
index 05b28fa..2605780 100644
--- a/src/client.c
+++ b/src/client.c
@@ -264,7 +264,6 @@ void
 clientUpdateAllFrames (ScreenInfo *screen_info, int mask)
 {
     Client *c;
-    XWindowChanges wc;
     guint i;
 
     g_return_if_fail (screen_info != NULL);
@@ -272,7 +271,7 @@ clientUpdateAllFrames (ScreenInfo *screen_info, int mask)
     TRACE ("entering clientRedrawAllFrames");
     for (c = screen_info->clients, i = 0; i < screen_info->client_count; c = c->next, i++)
     {
-        unsigned long configure_flags = 0L;
+        unsigned short configure_flags = 0;
 
         if (mask & UPDATE_BUTTON_GRABS)
         {
@@ -310,11 +309,7 @@ clientUpdateAllFrames (ScreenInfo *screen_info, int mask)
         }
         if (configure_flags != 0L)
         {
-            wc.x = c->x;
-            wc.y = c->y;
-            wc.width = c->width;
-            wc.height = c->height;
-            clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, configure_flags);
+            clientReconfigure (c, configure_flags);
         }
         if (mask & UPDATE_FRAME)
         {
@@ -817,7 +812,7 @@ clientConfigure (Client *c, XWindowChanges * wc, unsigned long mask, unsigned sh
 }
 
 void
-clientReconfigure (Client *c)
+clientReconfigure (Client *c, unsigned short flags)
 {
     XWindowChanges wc;
 
@@ -826,7 +821,7 @@ clientReconfigure (Client *c)
     wc.y = c->y;
     wc.width = c->width;
     wc.height = c->height;
-    clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, NO_CFG_FLAG);
+    clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, flags);
 }
 
 void
@@ -1517,7 +1512,6 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
 {
     ScreenInfo *screen_info;
     XWindowAttributes attr;
-    XWindowChanges wc;
     XSetWindowAttributes attributes;
     Client *c = NULL;
     gboolean shaped;
@@ -1754,8 +1748,9 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
     /* workarea will be updated when shown, no need to worry here */
     clientGetNetStruts (c);
 
-    c->has_frame_extents = FALSE;
+    /* GTK 3.x stuff */
     clientGetGtkFrameExtents(c);
+    clientGetGtkHideTitlebar(c);
 
     /* Once we know the type of window, we can initialize window position */
     if (!FLAG_TEST (c->xfwm_flags, XFWM_FLAG_SESSION_MANAGED))
@@ -1887,11 +1882,7 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
     XRaiseWindow (display_info->dpy, c->window);
 
     TRACE ("now calling configure for the new window \"%s\" (0x%lx)", c->name, c->window);
-    wc.x = c->x;
-    wc.y = c->y;
-    wc.width = c->width;
-    wc.height = c->height;
-    clientConfigure (c, &wc, CWX | CWY | CWHeight | CWWidth, CFG_NOTIFY | CFG_FORCE_REDRAW);
+    clientReconfigure (c, CFG_NOTIFY | CFG_FORCE_REDRAW);
 
     /* Notify the compositor about this new window */
     compositorAddWindow (display_info, c->frame, c);
@@ -1932,8 +1923,6 @@ clientFrame (DisplayInfo *display_info, Window w, gboolean recapture)
     clientSetNetState (c);
 
 #ifdef HAVE_XSYNC
-    c->xsync_waiting = FALSE;
-    c->xsync_enabled = FALSE;
     c->xsync_counter = None;
     c->xsync_alarm = None;
     c->xsync_timeout_id = 0;
@@ -3082,8 +3071,6 @@ void clientSetLayerNormal (Client *c)
 void
 clientUpdateMaximizeSize (Client *c)
 {
-    XWindowChanges wc;
-
     g_return_if_fail (c != NULL);
     TRACE ("entering clientUpdateMaximizeSize");
     TRACE ("Update maximized size for client \"%s\" (0x%lx)", c->name, c->window);
@@ -3092,12 +3079,7 @@ clientUpdateMaximizeSize (Client *c)
     if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED))
     {
         clientRecomputeMaximizeSize (c);
-
-        wc.x = c->x;
-        wc.y = c->y;
-        wc.width = c->width;
-        wc.height = c->height;
-        clientConfigure (c, &wc, CWX | CWY | CWWidth | CWHeight, CFG_NOTIFY);
+        clientReconfigure (c, CFG_NOTIFY);
     }
 }
 
@@ -3417,8 +3399,7 @@ clientTile (Client *c, gint cx, gint cy, tilePositionType tile, gboolean send_co
                             frameBottom (c));
 
         clientSetNetActions (c);
-
-        clientConfigure (c, &wc, CWWidth | CWHeight | CWX | CWY, CFG_FORCE_REDRAW);
+        clientReconfigure (c, CFG_FORCE_REDRAW);
     }
     clientSetNetState (c);
 
@@ -3943,6 +3924,64 @@ clientGetLeader (Client *c)
     return NULL;
 }
 
+gboolean
+clientGetGtkFrameExtents (Client * c)
+{
+    ScreenInfo *screen_info;
+    DisplayInfo *display_info;
+    gulong *extents;
+    int nitems;
+    int i;
+
+    g_return_val_if_fail (c != NULL, FALSE);
+    TRACE ("entering clientGetGtkFrameExtents for \"%s\" (0x%lx)", c->name, c->window);
+
+    screen_info = c->screen_info;
+    display_info = screen_info->display_info;
+    extents = NULL;
+    FLAG_UNSET (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS);
+
+    if (getCardinalList (display_info, c->window, GTK_FRAME_EXTENTS, &extents, &nitems))
+    {
+        if (nitems == SIDE_COUNT)
+        {
+            FLAG_SET (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS);
+            for (i = 0; i < SIDE_COUNT; i++)
+            {
+                c->frame_extents[i] = (int) extents[i];
+            }
+        }
+    }
+
+    if (extents)
+    {
+        XFree (extents);
+    }
+
+    return FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS);
+}
+
+gboolean
+clientGetGtkHideTitlebar (Client * c)
+{
+    ScreenInfo *screen_info;
+    DisplayInfo *display_info;
+    long val;
+
+    g_return_val_if_fail (c != NULL, FALSE);
+    TRACE ("entering clientGetGtkHideTitlebar for \"%s\" (0x%lx)", c->name, c->window);
+
+    screen_info = c->screen_info;
+    display_info = screen_info->display_info;
+    FLAG_UNSET (c->flags, CLIENT_FLAG_HIDE_TITLEBAR);
+
+    if (getHint (display_info, c->window, GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED, &val) &&( val != 0))
+    {
+        FLAG_SET (c->flags, CLIENT_FLAG_HIDE_TITLEBAR);
+    }
+    return FLAG_TEST (c->flags, CLIENT_FLAG_HIDE_TITLEBAR);
+}
+
 #ifdef HAVE_LIBSTARTUP_NOTIFICATION
 char *
 clientGetStartupId (Client *c)
diff --git a/src/client.h b/src/client.h
index ab09a4b..b820fe5 100644
--- a/src/client.h
+++ b/src/client.h
@@ -161,6 +161,11 @@
 #define CLIENT_FLAG_DEMANDS_ATTENTION   (1L<<17)
 #define CLIENT_FLAG_HAS_SHAPE           (1L<<18)
 #define CLIENT_FLAG_FULLSCREN_MONITORS  (1L<<19)
+#define CLIENT_FLAG_HAS_FRAME_EXTENTS   (1L<<20)
+#define CLIENT_FLAG_HIDE_TITLEBAR       (1L<<21)
+#define CLIENT_FLAG_XSYNC_WAITING       (1L<<22)
+#define CLIENT_FLAG_XSYNC_ENABLED       (1L<<23)
+#define CLIENT_FLAG_XSYNC_EXT_COUNTER   (1L<<24)
 
 #define WM_FLAG_DELETE                  (1L<<0)
 #define WM_FLAG_INPUT                   (1L<<1)
@@ -312,7 +317,6 @@ struct _Client
     unsigned long wm_flags;
     unsigned long xfwm_flags;
     gint fullscreen_monitors[4];
-    gboolean has_frame_extents;
     gint frame_extents[SIDE_COUNT];
 
     /* Termination dialog */
@@ -342,9 +346,6 @@ struct _Client
     XSyncValue xsync_value;
     XSyncValue next_xsync_value;
     guint xsync_timeout_id;
-    gboolean xsync_waiting;
-    gboolean xsync_enabled;
-    gboolean xsync_extended_counter;
 #endif /* HAVE_XSYNC */
 };
 
@@ -370,7 +371,8 @@ void                     clientConfigure                        (Client *,
                                                                  XWindowChanges *,
                                                                  unsigned long,
                                                                  unsigned short);
-void                     clientReconfigure                      (Client *);
+void                     clientReconfigure                      (Client *,
+                                                                 unsigned short);
 void                     clientMoveResizeWindow                 (Client *,
                                                                  XWindowChanges *,
                                                                  unsigned long);
@@ -470,6 +472,8 @@ int                      clientGetButtonState                   (Client *,
                                                                  int,
                                                                  int);
 Client                  *clientGetLeader                        (Client *);
+gboolean                 clientGetGtkFrameExtents               (Client *);
+gboolean                 clientGetGtkHideTitlebar               (Client *);
 #ifdef HAVE_LIBSTARTUP_NOTIFICATION
 char                    *clientGetStartupId                     (Client *);
 #endif /* HAVE_LIBSTARTUP_NOTIFICATION */
diff --git a/src/display.c b/src/display.c
index 5e124d7..f156412 100644
--- a/src/display.c
+++ b/src/display.c
@@ -16,7 +16,7 @@
         MA 02110-1301, USA.
 
 
-        xfwm4    - (c) 2002-2011 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
@@ -76,6 +76,7 @@ myDisplayInitAtoms (DisplayInfo *display_info)
     static const char *atom_names[] = {
         "COMPOSITING_MANAGER",
         "_GTK_FRAME_EXTENTS",
+        "_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED",
         "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR",
         "KWM_WIN_ICON",
         "_MOTIF_WM_HINTS",
diff --git a/src/display.h b/src/display.h
index a058f69..4560cde 100644
--- a/src/display.h
+++ b/src/display.h
@@ -16,7 +16,7 @@
         MA 02110-1301, USA.
 
 
-        xfwm4    - (c) 2002-2011 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
@@ -171,6 +171,7 @@ enum
 {
     COMPOSITING_MANAGER = 0,
     GTK_FRAME_EXTENTS,
+    GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED,
     KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR,
     KWM_WIN_ICON,
     MOTIF_WM_HINTS,
diff --git a/src/events.c b/src/events.c
index 4c38d08..c0b1e30 100644
--- a/src/events.c
+++ b/src/events.c
@@ -17,7 +17,7 @@
 
 
         oroborus - (c) 2001 Ken Lynch
-        xfwm4    - (c) 2002-2011 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
@@ -1917,6 +1917,16 @@ handlePropertyNotify (DisplayInfo *display_info, XPropertyEvent * ev)
             clientGetGtkFrameExtents (c);
             clientUpdateMaximizeSize (c);
         }
+        else if (ev->atom == display_info->atoms[GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED])
+        {
+            TRACE ("client \"%s\" (0x%lx) has received a GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED notify", c->name, c->window);
+            clientGetGtkHideTitlebar (c);
+            if (FLAG_TEST (c->flags, CLIENT_FLAG_MAXIMIZED))
+            {
+                clientUpdateMaximizeSize (c);
+                clientReconfigure (c, CFG_FORCE_REDRAW);
+            }
+        }
 #ifdef HAVE_STARTUP_NOTIFICATION
         else if (ev->atom == display_info->atoms[NET_STARTUP_ID])
         {
diff --git a/src/events.h b/src/events.h
index f497cd9..d83dba5 100644
--- a/src/events.h
+++ b/src/events.h
@@ -17,7 +17,7 @@
 
 
         oroborus - (c) 2001 Ken Lynch
-        xfwm4    - (c) 2002-2011 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
diff --git a/src/frame.c b/src/frame.c
index 4da599a..b200f33 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -17,7 +17,7 @@
 
 
         oroborus - (c) 2001 Ken Lynch
-        xfwm4    - (c) 2002-2011 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
@@ -39,6 +39,13 @@
 #include "frame.h"
 #include "compositor.h"
 
+#define CLIENT_HAS_TITLE(c) \
+        (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER) &&    \
+         !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN) &&      \
+         (!FLAG_TEST_ALL (c->flags, CLIENT_FLAG_MAXIMIZED) ||  \
+          !(FLAG_TEST (c->flags, CLIENT_FLAG_HIDE_TITLEBAR) && \
+            (c->screen_info->params->borderless_maximize))))
+
 typedef struct
 {
     xfwmPixmap pm_title;
@@ -120,8 +127,7 @@ frameTop (Client * c)
     TRACE ("entering frameTop");
 
     g_return_val_if_fail (c != NULL, 0);
-    if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
-        && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
+    if (CLIENT_HAS_TITLE (c))
     {
         return c->screen_info->title[TITLE_3][ACTIVE].height;
     }
@@ -216,7 +222,7 @@ frameExtentLeft (Client * c)
     TRACE ("entering frameExtentLeft");
 
     g_return_val_if_fail (c != NULL, 0);
-    if (c->has_frame_extents)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS))
     {
         return -c->frame_extents[SIDE_LEFT];
     }
@@ -229,7 +235,7 @@ frameExtentRight (Client * c)
     TRACE ("entering frameExtentRight");
 
     g_return_val_if_fail (c != NULL, 0);
-    if (c->has_frame_extents)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS))
     {
         return -c->frame_extents[SIDE_RIGHT];
     }
@@ -242,7 +248,7 @@ frameExtentTop (Client * c)
     TRACE ("entering frameExtentTop");
 
     g_return_val_if_fail (c != NULL, 0);
-    if (c->has_frame_extents)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS))
     {
         return -c->frame_extents[SIDE_TOP];
     }
@@ -255,7 +261,7 @@ frameExtentBottom (Client * c)
     TRACE ("entering frameExtentBottom");
 
     g_return_val_if_fail (c != NULL, 0);
-    if (c->has_frame_extents)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS))
     {
         return -c->frame_extents[SIDE_BOTTOM];
     }
@@ -268,7 +274,7 @@ frameExtentX (Client * c)
     TRACE ("entering frameExtentX");
 
     g_return_val_if_fail (c != NULL, 0);
-    if (c->has_frame_extents)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS))
     {
         return c->x + c->frame_extents[SIDE_LEFT];
     }
@@ -281,7 +287,7 @@ frameExtentY (Client * c)
     TRACE ("entering frameExtentY");
 
     g_return_val_if_fail (c != NULL, 0);
-    if (c->has_frame_extents)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS))
     {
         return c->y + c->frame_extents[SIDE_TOP];
     }
@@ -294,7 +300,7 @@ frameExtentWidth (Client * c)
     TRACE ("entering frameExtentWidth");
 
     g_return_val_if_fail (c != NULL, 0);
-    if (c->has_frame_extents)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS))
     {
         return MAX (0, c->width - c->frame_extents[SIDE_LEFT]
                                 - c->frame_extents[SIDE_RIGHT]);
@@ -308,7 +314,7 @@ frameExtentHeight (Client * c)
     TRACE ("entering frameExtentHeight");
 
     g_return_val_if_fail (c != NULL, 0);
-    if (c->has_frame_extents)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS))
     {
         return MAX (0, c->height - c->frame_extents[SIDE_TOP]
                                  - c->frame_extents[SIDE_BOTTOM]);
@@ -1060,8 +1066,7 @@ frameDrawWin (Client * c)
         }
     }
 
-    if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_HAS_BORDER)
-        && !FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
+    if (CLIENT_HAS_TITLE (c))
     {
         /* First, hide the buttons that we don't have... */
         for (i = 0; i < BUTTON_COUNT; i++)
diff --git a/src/hints.c b/src/hints.c
index cb9d34a..2f1fd48 100644
--- a/src/hints.c
+++ b/src/hints.c
@@ -18,7 +18,7 @@
 
         oroborus - (c) 2001 Ken Lynch
         Metacity - (c) 2001 Havoc Pennington
-        xfwm4    - (c) 2002-2011 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
diff --git a/src/hints.h b/src/hints.h
index 29c9b5b..4648a3d 100644
--- a/src/hints.h
+++ b/src/hints.h
@@ -18,7 +18,7 @@
 
         oroborus - (c) 2001 Ken Lynch
         Metacity - (c) 2001 Havoc Pennington
-        xfwm4    - (c) 2002-2011 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
@@ -273,7 +273,6 @@ gboolean                 setAtomIdManagerOwner                  (DisplayInfo *,
                                                                  Window);
 void                     updateXserverTime                      (DisplayInfo *);
 guint32                  getXServerTime                         (DisplayInfo *);
-
 #ifdef ENABLE_KDE_SYSTRAY_PROXY
 gboolean                 checkKdeSystrayWindow                  (DisplayInfo *,
                                                                  Window);
diff --git a/src/moveresize.c b/src/moveresize.c
index 07979f8..fb453b5 100644
--- a/src/moveresize.c
+++ b/src/moveresize.c
@@ -1275,16 +1275,18 @@ clientResizeConfigure (Client *c, int pw, int ph)
         return;
     }
 #ifdef HAVE_XSYNC
-    if (!c->xsync_waiting)
+    if (!FLAG_TEST (c->flags, CLIENT_FLAG_XSYNC_WAITING))
     {
-        if ((display_info->have_xsync) && (c->xsync_enabled) && (c->xsync_counter))
+        if ((display_info->have_xsync) &&
+            (FLAG_TEST (c->flags, CLIENT_FLAG_XSYNC_ENABLED)) &&
+            (c->xsync_counter))
         {
             clientXSyncRequest (c);
         }
         else
         {
 #endif /* HAVE_XSYNC */
-            clientReconfigure (c);
+            clientReconfigure (c, NO_CFG_FLAG);
 #ifdef HAVE_XSYNC
         }
     }
@@ -1732,7 +1734,7 @@ clientResize (Client * c, int handle, XEvent * ev)
     clientDestroyXSyncAlarm (c);
 #endif /* HAVE_XSYNC */
 
-    clientReconfigure (c);
+    clientReconfigure (c, NO_CFG_FLAG);
 
     if (!passdata.released)
     {
diff --git a/src/netwm.c b/src/netwm.c
index 66e641f..4e45ddc 100644
--- a/src/netwm.c
+++ b/src/netwm.c
@@ -16,7 +16,7 @@
         MA 02110-1301, USA.
 
 
-        xfwm4    - (c) 2002-2011 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
@@ -1590,41 +1590,3 @@ clientRemoveUserTimeWin (Client * c)
         XSelectInput (display_info->dpy, c->user_time_win, NoEventMask);
     }
 }
-
-gboolean
-clientGetGtkFrameExtents (Client * c)
-{
-    ScreenInfo *screen_info;
-    DisplayInfo *display_info;
-    gulong *extents;
-    int nitems;
-    int i;
-
-    g_return_val_if_fail (c != NULL, FALSE);
-    TRACE ("entering clientGetGtkFrameExtents for \"%s\" (0x%lx)", c->name, c->window);
-
-    screen_info = c->screen_info;
-    display_info = screen_info->display_info;
-    c->has_frame_extents = FALSE;
-    extents = NULL;
-
-    if (getCardinalList (display_info, c->window, GTK_FRAME_EXTENTS, &extents, &nitems))
-    {
-        if (nitems == SIDE_COUNT)
-        {
-            c->has_frame_extents = TRUE;
-            for (i = 0; i < SIDE_COUNT; i++)
-            {
-                c->frame_extents[i] = (int) extents[i];
-            }
-        }
-    }
-
-    if (extents)
-    {
-        XFree (extents);
-    }
-
-    return c->has_frame_extents;
-}
-
diff --git a/src/netwm.h b/src/netwm.h
index ed266e3..c0bd213 100644
--- a/src/netwm.h
+++ b/src/netwm.h
@@ -16,7 +16,7 @@
         MA 02110-1301, USA.
 
 
-        xfwm4    - (c) 2002-2011 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
@@ -68,6 +68,5 @@ void                     clientReceiveNetWMPong                 (ScreenInfo *,
 gboolean                 clientGetUserTime                      (Client *);
 void                     clientAddUserTimeWin                   (Client *);
 void                     clientRemoveUserTimeWin                (Client *);
-gboolean                 clientGetGtkFrameExtents               (Client *);
 
 #endif /* INC_NETWM_H */
diff --git a/src/xsync.c b/src/xsync.c
index 18a3979..fc5744b 100644
--- a/src/xsync.c
+++ b/src/xsync.c
@@ -16,7 +16,7 @@
         MA 02110-1301, USA.
 
 
-        xfwm4    - (c) 2002-2014 Olivier Fourdan
+        xfwm4    - (c) 2002-2015 Olivier Fourdan
 
  */
 
@@ -60,12 +60,12 @@ clientCreateXSyncAlarm (Client *c)
     display_info = screen_info->display_info;
 
     clientDestroyXSyncAlarm (c);
-    if (c->xsync_extended_counter)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_XSYNC_EXT_COUNTER))
     {
         /* Get the counter value from the client, if not, bail out... */
         if (!XSyncQueryCounter(display_info->dpy, c->xsync_counter, &c->xsync_value))
         {
-            c->xsync_extended_counter = None;
+            FLAG_UNSET (c->flags, CLIENT_FLAG_XSYNC_EXT_COUNTER);
             return FALSE;
         }
     }
@@ -76,7 +76,7 @@ clientCreateXSyncAlarm (Client *c)
     }
 
     c->next_xsync_value = c->xsync_value;
-    if (!c->xsync_extended_counter ||
+    if (!FLAG_TEST (c->flags, CLIENT_FLAG_XSYNC_EXT_COUNTER) ||
         (XSyncValueLow32(c->next_xsync_value) % 2 == 0))
     {
         addToXSyncValue (&c->next_xsync_value, 1);
@@ -139,18 +139,18 @@ clientGetXSyncCounter (Client * c)
         switch (nitems)
         {
             case 0:
-                c->xsync_extended_counter = FALSE;
-                c->xsync_enabled = FALSE;
+                FLAG_UNSET (c->flags, CLIENT_FLAG_XSYNC_EXT_COUNTER);
+                FLAG_UNSET (c->flags, CLIENT_FLAG_XSYNC_ENABLED);
                 break;
             case 1:
                 c->xsync_counter = (XSyncCounter) data[0];
-                c->xsync_extended_counter = FALSE;
-                c->xsync_enabled = TRUE;
+                FLAG_UNSET (c->flags, CLIENT_FLAG_XSYNC_EXT_COUNTER);
+                FLAG_SET (c->flags, CLIENT_FLAG_XSYNC_ENABLED);
                 break;
             default:
                 c->xsync_counter = (XSyncCounter) data[1];
-                c->xsync_extended_counter = TRUE;
-                c->xsync_enabled = TRUE;
+                FLAG_SET (c->flags, CLIENT_FLAG_XSYNC_EXT_COUNTER);
+                FLAG_SET (c->flags, CLIENT_FLAG_XSYNC_ENABLED);
                 break;
         }
     }
@@ -160,7 +160,7 @@ clientGetXSyncCounter (Client * c)
         XFree (data);
     }
 
-    return c->xsync_enabled;
+    return FLAG_TEST (c->flags, CLIENT_FLAG_XSYNC_ENABLED);
 }
 
 void
@@ -170,8 +170,8 @@ clientXSyncClearTimeout (Client * c)
 
     TRACE ("entering clientXSyncClearTimeout");
 
-    c->xsync_waiting = FALSE;
-    clientReconfigure (c);
+    FLAG_UNSET (c->flags, CLIENT_FLAG_XSYNC_WAITING);
+    clientReconfigure (c, NO_CFG_FLAG);
 
     if (c->xsync_timeout_id)
     {
@@ -194,7 +194,7 @@ clientXSyncTimeout (gpointer data)
         clientXSyncClearTimeout (c);
 
         /* Disable XSync for this client */
-        c->xsync_enabled = FALSE;
+        FLAG_UNSET (c->flags, CLIENT_FLAG_XSYNC_ENABLED);
     }
     return (FALSE);
 }
@@ -226,7 +226,7 @@ clientXSyncRequest (Client * c)
 
     TRACE ("entering clientXSyncRequest");
 
-    if (c->xsync_waiting)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_XSYNC_WAITING))
     {
         return;
     }
@@ -246,11 +246,11 @@ clientXSyncRequest (Client * c)
     xev.data.l[1] = (long) myDisplayGetCurrentTime (display_info);
     xev.data.l[2] = (long) XSyncValueLow32 (next_value);
     xev.data.l[3] = (long) XSyncValueHigh32 (next_value);
-    xev.data.l[4] = (long) (c->xsync_extended_counter ? 1 : 0);
+    xev.data.l[4] = (long) (FLAG_TEST (c->flags, CLIENT_FLAG_XSYNC_EXT_COUNTER) ? 1 : 0);
     XSendEvent (display_info->dpy, c->window, FALSE, NoEventMask, (XEvent *) &xev);
 
     clientXSyncResetTimeout (c);
-    c->xsync_waiting = TRUE;
+    FLAG_SET (c->flags, CLIENT_FLAG_XSYNC_WAITING);
 }
 
 void
@@ -260,7 +260,7 @@ clientXSyncUpdateValue (Client *c, XSyncValue value)
     TRACE ("entering clientXSyncUpdateValue");
 
     c->xsync_value = value;
-    if (c->xsync_extended_counter)
+    if (FLAG_TEST (c->flags, CLIENT_FLAG_XSYNC_EXT_COUNTER))
     {
         if (XSyncValueLow32(c->xsync_value) % 2 == 0)
         {

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


More information about the Xfce4-commits mailing list