157
windows_updated_callback (LauncherApplication *application,
158
LauncherSession *session)
160
LauncherApplication *new_app;
161
LauncherAppman *appman;
162
LauncherSessionPrivate *priv;
163
GSList *l, *found_windows = NULL;
166
g_return_if_fail (LAUNCHER_IS_SESSION (session));
167
g_return_if_fail (LAUNCHER_IS_APPLICATION (application));
169
priv = session->priv;
171
appman = launcher_appman_get_default ();
173
for (l = priv->new_windows; l; l = l->next)
177
if (launcher_application_owns_window (application, window))
179
found_windows = g_slist_prepend (found_windows, window);
180
if (g_slist_length (launcher_application_get_windows (application)) == 1)
182
g_signal_emit (session, _session_signals[APP_OPENED], 0, application);
187
for (l = found_windows; l; l = l->next)
189
priv->new_windows = g_slist_remove_all (priv->new_windows, l->data);
192
g_slist_free (found_windows);
194
priv->callback_count--;
196
if (priv->callback_count <= 0)
198
priv->callback_count = 0;
200
for (l = priv->new_windows; l; l = l->next)
202
new_app = launcher_appman_get_application_for_wnck_window (appman, window);
203
g_signal_emit (session, _session_signals[APP_OPENED], 0, new_app);
206
g_slist_free (priv->new_windows);
207
priv->new_windows = NULL;
155
212
on_window_opened (WnckScreen *screen,
156
213
WnckWindow *window,
157
214
LauncherSession *session)
179
237
iter = g_sequence_iter_next (iter))
181
239
app = g_sequence_get (iter);
182
launcher_application_update_windows (app);
184
found = launcher_application_owns_window (app, window);
188
if (g_slist_length (launcher_application_get_windows (app)) == 1)
189
g_signal_emit (session, _session_signals[APP_OPENED], 0, app);
196
app = launcher_appman_get_application_for_wnck_window (appman, window);
197
g_signal_emit (session, _session_signals[APP_OPENED], 0, app);
241
priv->callback_count++;
242
launcher_application_update_windows_with_callback (app,
243
(LauncherApplicationNotifyFinished) windows_updated_callback,