1
Index: xfce_4_4/src/client.c
2
===================================================================
3
--- xfce_4_4/src/client.c (revision 26362)
4
+++ xfce_4_4/src/client.c (revision 26363)
11
clientUpdateIconPix (Client * c);
15
if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_VISIBLE))
18
- g_timeout_add_full (G_PRIORITY_DEFAULT,
19
- CLIENT_BLINK_TIMEOUT,
20
+ g_timeout_add_full (G_PRIORITY_DEFAULT,
21
+ CLIENT_BLINK_TIMEOUT,
22
(GtkFunction) urgent_cb,
25
@@ -1183,11 +1183,11 @@
28
c->xsync_alarm = XSyncCreateAlarm (display_info->dpy,
41
return (c->xsync_alarm != None);
43
TRACE ("entering clientXSyncResetTimeout");
45
clientXSyncClearTimeout (c);
46
- c->xsync_timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT,
47
- CLIENT_XSYNC_TIMEOUT,
48
- (GtkFunction) clientXSyncTimeout,
49
+ c->xsync_timeout_id = g_timeout_add_full (G_PRIORITY_DEFAULT,
50
+ CLIENT_XSYNC_TIMEOUT,
51
+ (GtkFunction) clientXSyncTimeout,
56
update_icon_idle_cb (gpointer data)
61
TRACE ("entering update_icon_idle_cb");
66
if (c->icon_timeout_id == 0)
68
- c->icon_timeout_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
69
+ c->icon_timeout_id = g_idle_add_full (G_PRIORITY_DEFAULT_IDLE,
70
update_icon_idle_cb, c, NULL);
79
Initialize "old" fields once the position is ensured, to avoid
80
initially maximized or fullscreen windows being placed offscreen
83
for (index = screen_info->windows_stack; index; index = g_list_next (index))
85
Client *c = (Client *) index->data;
86
- if ((c->type & WINDOW_REGULAR_FOCUSABLE)
87
+ if ((c->type & WINDOW_REGULAR_FOCUSABLE)
88
&& !FLAG_TEST (c->flags, CLIENT_FLAG_ICONIFIED | CLIENT_FLAG_SKIP_TASKBAR))
90
FLAG_SET (c->xfwm_flags, XFWM_FLAG_WAS_SHOWN);
95
- TRACE ("Setting WM_STATE_DEMANDS_ATTENTION flag on \"%s\" (0x%lx)", c->name, c->window);
96
+ TRACE ("Setting WM_STATE_DEMANDS_ATTENTION flag on \"%s\" (0x%lx)", c->name, c->window);
97
FLAG_SET (c->flags, CLIENT_FLAG_DEMANDS_ATTENTION);
98
clientSetNetState (c);
100
@@ -2779,7 +2779,7 @@
106
if (FLAG_TEST (c->xfwm_flags, XFWM_FLAG_VISIBLE))
109
@@ -4064,7 +4064,7 @@
111
g1 = myScreenGrabKeyboard (screen_info, myDisplayGetCurrentTime (display_info));
112
g2 = myScreenGrabPointer (screen_info, ButtonMotionMask | ButtonReleaseMask,
113
- myDisplayGetCursorMove (display_info),
114
+ myDisplayGetCursorMove (display_info),
115
myDisplayGetCurrentTime (display_info));
118
@@ -4470,7 +4470,7 @@
119
|| (!clientCkeckTitle (c) && (frame_y < screen_info->margins [STRUTS_TOP])))
121
temp = c->y + c->height;
122
- c->y = CLAMP (c->y, screen_info->margins [STRUTS_TOP] + frame_top,
123
+ c->y = CLAMP (c->y, screen_info->margins [STRUTS_TOP] + frame_top,
124
MAX (disp_max_y - min_visible, screen_info->height - screen_info->margins [STRUTS_BOTTOM] - min_visible));
125
clientSetHeight (c, temp - c->y);
126
c->y = temp - c->height;
127
@@ -4956,32 +4956,39 @@
128
status = EVENT_FILTER_STOP;
131
- if (xevent->type == EnterNotify)
132
+ switch (xevent->type)
134
- c->button_pressed[b] = TRUE;
135
- frameDraw (c, FALSE);
137
+ if ((xevent->xcrossing.mode != NotifyGrab) && (xevent->xcrossing.mode != NotifyUngrab))
139
+ c->button_pressed[b] = TRUE;
140
+ frameDraw (c, FALSE);
144
+ if ((xevent->xcrossing.mode != NotifyGrab) && (xevent->xcrossing.mode != NotifyUngrab))
146
+ c->button_pressed[b] = FALSE;
147
+ frameDraw (c, FALSE);
150
+ case ButtonRelease:
154
+ if (xevent->xunmap.window == c->window)
157
+ c->button_pressed[b] = FALSE;
164
+ status = EVENT_FILTER_CONTINUE;
167
- else if (xevent->type == LeaveNotify)
169
- c->button_pressed[b] = FALSE;
170
- frameDraw (c, FALSE);
172
- else if (xevent->type == ButtonRelease)
176
- else if ((xevent->type == UnmapNotify) && (xevent->xunmap.window == c->window))
179
- c->button_pressed[b] = FALSE;
181
- else if ((xevent->type == KeyPress) || (xevent->type == KeyRelease))
186
- status = EVENT_FILTER_CONTINUE;