~desrt/indicator-appmenu/hud-rewrite-wip

« back to all changes in this revision

Viewing changes to src/hudwindowsource.c

  • Committer: Ryan Lortie
  • Date: 2012-03-15 18:25:31 UTC
  • Revision ID: desrt@desrt.ca-20120315182531-z4h6j4oizu4rb8of
hud-service: window source: track the active collector more explicitly

Show diffs side-by-side

added added

removed removed

Lines of Context:
67
67
  BamfWindow *active_window;
68
68
  BamfApplication *active_application;
69
69
  const gchar *active_desktop_file;
 
70
  HudSource *active_collector;
70
71
};
71
72
 
72
73
typedef GObjectClass HudWindowSourceClass;
194
195
                                         gpointer     user_data)
195
196
{
196
197
  HudWindowSource *source = user_data;
197
 
  HudSource *collector;
198
198
  BamfWindow *window;
199
199
  BamfApplication *application;
200
200
  const gchar *desktop_file;
239
239
 
240
240
  g_debug ("new active window (xid %u)", bamf_window_get_xid (window));
241
241
 
242
 
  collector = hud_window_source_get_collector (source);
243
 
  if (collector)
244
 
    g_signal_handlers_disconnect_by_func (collector, hud_window_source_collector_changed, source);
245
 
 
 
242
 
 
243
  if (source->active_collector)
 
244
    g_signal_handlers_disconnect_by_func (source->active_collector, hud_window_source_collector_changed, source);
 
245
 
 
246
  g_clear_object (&source->active_collector);
246
247
  g_clear_object (&source->active_application);
247
248
  g_clear_object (&source->active_window);
248
249
  source->active_window = g_object_ref (window);
249
250
  source->active_application = g_object_ref (application);
250
251
  source->active_desktop_file = desktop_file;
 
252
  source->active_collector = g_object_ref (hud_window_source_get_collector (source));
251
253
 
252
 
  collector = hud_window_source_get_collector (source);
253
 
  g_signal_connect_object (collector, "changed", G_CALLBACK (hud_window_source_collector_changed), source, 0);
 
254
  g_signal_connect_object (source->active_collector, "changed",
 
255
                           G_CALLBACK (hud_window_source_collector_changed), source, 0);
254
256
 
255
257
  hud_source_changed (HUD_SOURCE (source));
256
258
}
261
263
                          const gchar *search_string)
262
264
{
263
265
  HudWindowSource *source = HUD_WINDOW_SOURCE (hud_source);
264
 
  HudSource *collector;
265
 
 
266
 
  collector = hud_window_source_get_collector (source);
267
 
 
268
 
  if (collector)
269
 
    hud_source_search (collector, results_array, search_string);
 
266
 
 
267
  if (source->active_collector)
 
268
    hud_source_search (source->active_collector, results_array, search_string);
270
269
}
271
270
 
272
271
static void