[Xfce4-commits] [xfce/xfwm4] 01/04: Code cleanup and even less flicker
noreply at xfce.org
noreply at xfce.org
Mon Jan 19 22:54:30 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 80e4240c47395569e0272f064f3c30cbfe01c54a
Author: Olivier Fourdan <fourdan at xfce.org>
Date: Mon Jan 19 20:23:19 2015 +0100
Code cleanup and even less flicker
Signed-off-by: Olivier Fourdan <fourdan at xfce.org>
---
src/cycle.c | 138 +++++++++++++++++++++++++++--------------------------------
1 file changed, 63 insertions(+), 75 deletions(-)
diff --git a/src/cycle.c b/src/cycle.c
index e7747c1..511fc1d 100644
--- a/src/cycle.c
+++ b/src/cycle.c
@@ -221,6 +221,20 @@ clientCycleActivate (Client *c)
clientCycleFocusAndRaise (c);
}
+static gboolean
+clientCycleUpdateWireframe (Client *c, ClientCycleData *passdata)
+{
+ if (c)
+ {
+ if (passdata->wireframe)
+ {
+ wireframeUpdate (c, passdata->wireframe);
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
static eventFilterStatus
clientCycleEventFilter (XEvent * xevent, gpointer data)
{
@@ -275,60 +289,54 @@ clientCycleEventFilter (XEvent * xevent, gpointer data)
break; /* No need to go any further */
gone |= (c == removed);
c = tabwinRemoveClient(passdata->tabwin, removed);
- /* Walk through */
+ cycling = clientCycleUpdateWireframe (c, passdata);
+ break;
case KeyPress:
- key_pressed = (xevent->type == KeyPress);
- if (gone || key_pressed)
+ key = myScreenGetKeyPressed (screen_info, (XKeyEvent *) xevent);
+ /*
+ * We cannot simply check for key == KEY_CANCEL here because of the
+ * modidier being pressed, so we need to look at the keycode directly.
+ */
+ if (xevent->xkey.keycode == cancel)
{
- if (key_pressed)
- {
- key = myScreenGetKeyPressed (screen_info, (XKeyEvent *) xevent);
- /*
- * We cannot simply check for key == KEY_CANCEL here because of the
- * modidier being pressed, so we need to look at the keycode directly.
- */
- if (xevent->xkey.keycode == cancel)
- {
- c2 = tabwinSelectHead (passdata->tabwin);
- cycling = FALSE;
- }
- else if (xevent->xkey.keycode == up)
- {
- c2 = tabwinSelectDelta(passdata->tabwin, -1, 0);
- }
- else if (xevent->xkey.keycode == down)
- {
- c2 = tabwinSelectDelta(passdata->tabwin, 1, 0);
- }
- else if (xevent->xkey.keycode == left)
- {
- c2 = tabwinSelectDelta(passdata->tabwin, 0, -1);
- }
- else if (xevent->xkey.keycode == right)
- {
- c2 = tabwinSelectDelta(passdata->tabwin, -0, 1);
- }
- else if (key == KEY_CYCLE_REVERSE_WINDOWS)
- {
- TRACE ("Cycle: previous");
- c2 = tabwinSelectPrev(passdata->tabwin);
- }
- else if (key == KEY_CYCLE_WINDOWS)
- {
- TRACE ("Cycle: next");
- c2 = tabwinSelectNext(passdata->tabwin);
- }
- if (c2)
- {
- c = c2;
- }
+ c2 = tabwinSelectHead (passdata->tabwin);
+ cycling = FALSE;
+ }
+ else if (xevent->xkey.keycode == up)
+ {
+ c2 = tabwinSelectDelta(passdata->tabwin, -1, 0);
+ }
+ else if (xevent->xkey.keycode == down)
+ {
+ c2 = tabwinSelectDelta(passdata->tabwin, 1, 0);
+ }
+ else if (xevent->xkey.keycode == left)
+ {
+ c2 = tabwinSelectDelta(passdata->tabwin, 0, -1);
+ }
+ else if (xevent->xkey.keycode == right)
+ {
+ c2 = tabwinSelectDelta(passdata->tabwin, -0, 1);
+ }
+ else if (key == KEY_CYCLE_REVERSE_WINDOWS)
+ {
+ TRACE ("Cycle: previous");
+ c2 = tabwinSelectPrev(passdata->tabwin);
+ }
+ else if (key == KEY_CYCLE_WINDOWS)
+ {
+ TRACE ("Cycle: next");
+ c2 = tabwinSelectNext(passdata->tabwin);
+ }
+ if (c2)
+ {
+ clientCycleUpdateWireframe (c2, passdata);
+ }
- /* If last key press event had not our modifiers pressed, finish cycling */
- if (!(xevent->xkey.state & modifiers))
- {
- cycling = FALSE;
- }
- }
+ /* If last key press event had not our modifiers pressed, finish cycling */
+ if (!(xevent->xkey.state & modifiers))
+ {
+ cycling = FALSE;
}
break;
case KeyRelease:
@@ -369,14 +377,13 @@ clientCycleEventFilter (XEvent * xevent, gpointer data)
c2 = tabwinSelectNext(passdata->tabwin);
}
}
- }
- if (c2)
- {
- c = c2;
+ if (c2)
+ {
+ clientCycleUpdateWireframe (c2, passdata);
+ }
}
break;
case ButtonRelease:
- return EVENT_FILTER_STOP;
break;
case EnterNotify:
case LeaveNotify:
@@ -388,7 +395,6 @@ clientCycleEventFilter (XEvent * xevent, gpointer data)
passdata->inside = (xevent->xcrossing.type == EnterNotify);
}
}
- return EVENT_FILTER_STOP;
break;
default:
status = EVENT_FILTER_CONTINUE;
@@ -401,24 +407,6 @@ clientCycleEventFilter (XEvent * xevent, gpointer data)
gtk_main_quit ();
}
- if (status == EVENT_FILTER_STOP)
- {
- if (cycling)
- {
- if (c)
- {
- if (passdata->wireframe)
- {
- wireframeUpdate (c, passdata->wireframe);
- }
- }
- else
- {
- cycling = FALSE;
- }
- }
- }
-
return status;
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list